Dircograph a été conçu pour vérifier des fichiers de mesures horodatés, avec ou sans données de localisation GPS.
Il est entièrement écrit dans le langage Python.
Dans un dossier il lit des fichiers de mesures en format CSV, des photos, des vidéos et des fichiers de son. Voir plus bas pour les détails.
S'il y a des positions GPS, il affiche le trajet, et permet d'afficher un fond de carte ou satellite GoogleMap.
Dans un premier temps il lit les fichiers pour fabriquer une base de données (c'est le fichier Log.h5). C'est une opération qui peut être longue.
Ensuite, à chaque fois que l'on veut exploiter les logs, c'est ce fichier qui est lu. Au niveau des performances, l'exploitation d'un fichier d'1 million de lignes et une vingtaine de variables a été possible avec une parfaite fluidité sur un PC portable de bureautique.
Tous les fichiers doivent se trouver dans un dossier unique, qui contient tout ou partie des éléments suivants :
Nom du fichier : il doit avoir l'extension .csv
Le fichier se présente sous la forme de mesures en colonnes séparées par des ";"
La ligne NE DOIT PAS se terminer par ";"
1ère ligne : Le nom des colonnes avec le type de données entre crochets (optionnel). Si le type n'est pas fourni, il sera demandé.
exemple :
[date]Date ; [int]Heure ; [latitude]Latitude ; [longitude]Longitude ; [float]Altitude ; [float]HDOP; [int]Mode;
Chaque fichier doit contenir impérativement une colonne de datation en milli-secondes.
Les types de données possibles :
Lignes suivantes : Les données. Noter que si une colonne de date en ms est impérative, il n'y a pas de restriction particulière : Les dates peuvent être différentes entre les fichiers, et dans un même fichier, deux lignes successives peuvent avoir un écart variable de plusieurs millisecondes. Par contre les dates doivent être croissantes.
Les nombres peuvent être encadrés par des espaces ou des tabulations, même si ce n'est pas particulièrement souhaitable.
Exemple : ;50 ; sera analysé comme ;50;
Exemple du fichier gps.csv :
%[date]Date ; [int]Heure ; [latitude]Latitude ; [longitude]Longitude ; [float]Altitude ; [float]HDOP; [int]Mode
2300;83359;48.8094833333;1.88326666667;68;1.4;1
3300;83400;48.809485;1.88326666667;68;1.4;1
4300;83401;48.809485;1.883265;68.2;1.4;1
.....
Les valeurs manquantes dans les fichiers
Un nombre qui n'est pas écrit dans un format valide est considéré comme une valeur manquante. Exemple, pour un entier, "aa" ou "" ou "nan" ... seront ignorés sans que ce soit une erreur.
Exemple 1 de valeurs manquantes :
%[date]Date ; [int]var1 ; [float]var2
2500 ;aa;bb
2500;;x
aa, bb, x sont des valeurs manquantes. A la date 2500, il y a aussi une valeur manquante pour var1
Des lignes de date identiques se complètent :
Exemple :
[date] date;[float]var1;[float]var2
2000;50;
2000;;25
est équivalent à la ligne
2000;50;25
Si pour la même date, une variable prend plusieurs valeurs, il en résultera l'affichage d'autant de points de mesure à la même abscisse.
exemple :
[date] date;[float]var1
2000;25
2000;30
provoquera l'affichage d'un segment vertical à la date 2000.
Dircograph permet d'afficher des photos horodatées au format jpeg, ce qui forme un film.
Les photos doivent être dans un répertoire. on peut créer plusieurs répertoires s'il y a plusieurs sources de photos.
Le nom des photos : date en ms suivi de l'extension jpg
exemple : 5600.jpg est l'image prise au temps 5600
Les vidéos doivent impérativement être au format MJPEG. C'est le seul format supporté.
Chaque vidéo doit se trouver dans un dossier qui lui est propre
Les fichiers sons doivent être dans un répertoire.
Nom des fichiers : date en ms suivi de .mp3
exemple : 5600.mp3 pour un fichier de son qui commence au temps 5600 ms.
Cela se fait en ajoutant dans le dossier REP_INSTALL/Marks des fichiers portant l'extension .csv.
Renommer marks.csv_example en marks.csv, ainsi que marks_xy.csv_example et relancer DircoGraph pour tester.
Les coordonnées sont soit en coordonnées géographiques (latitudes, longitudes), soit en coordonnées Lambert.
le format des données est indiqué dans le fichier readme.txt
Exemple de fichiers :
deg ; mark ; BLUE VIOLET ; 2.0 ; circle
Latitude ; longitude ; nom (optional)
48.78536 ; 2.09877 ; F1
48.78752 ; 2.09151 ;
48.78770 ; 2.08942 ;
48.78782 ; 2.08912 ; A3
xy ; line ; sienna ; 1.0 ; circle
lambert x ; lambert y ;
582654.828;120498.663;
582679.168;120492.957;
582703.508;120487.250;
582727.848;120481.544;
582736.926;120479.416;
582741.795;120478.278;
582746.670;120477.166
Les indicateurs permettent des calculs sur les données, à partir d'un ou plusieurs fichiers CSV
Voir à titre d'exemple les fichiers vitmax.py et vitmoy.py dans le dossier REP_INSTALL/Indicators
L'affichage est optimisé pour n'afficher que quelques milliers de points pour le trajet et chaque courbe.
En effet, afficher tous les points pourrait-être beaucoup trop long.
Mais dans certains cas, on a besoin d'afficher tous les points sans exception. Par exemple pour rechercher des valeurs aberrantes, ou lorsque des signaux périodiques s'affichent mal (Shanon).

Il est probable que la base de données soit corrompue, ou que la restauration automatique de l'affichage ait un problème.
Fermer Dircograph. A la racine du dossier de log, supprimer les fichiers Log.h5 (c'est la base de données), et screen.xml (c'est le fichier de configuration de l'affichage).
Relancer Dircograph et regénérer la base de données.
Ils sont définis par des expressions rationnelles, dans tablesmanager.py, vers la ligne 70.
Chercher par exemple : FLOATVALUE_MODEL
On peut automatiser la génération du fichier Log.h5, qui est une étape qui peut être longue.
Testé sous Linux (en étant dans le répertoire d'installation de DircoGraph:
python DircoGraph.py -b repertoire_de_log configuration
repertoire_de_log : Comme son nom l'indique, un dossier de données
configuration : une configuration
Il faut donc préalablement défini une configuration, par l'interface graphique.
la configuration est extraite de ~/.dircograph
Ce n'est pas testé sous Windows, mais il faut essayer quelque chose du genre :
cd c:\program files\DircoGraph
Python27\python.exe Dircograph.py -b c:\.......\repertoire_de_log configuration
Oui. Il suffit de ne pas définir des colonnes de type latitude et longitude.
Dircograph a été conçu aussi pour ça. Exemple, un appareil de mesures écrit dans un fichier régulièrement au cours du temps. Vous pouvez suivre l'évolution avec Dircograph.
Nota : Cela marchait encore récemment, avant un certain nombre de modifications.J'espère que ça fonctionne toujours...
Oui. Editez DircoGraph.py
et décommentez la ligne qui vous intéresse :
# To choose French :
#langid = wx.LANGUAGE_FRENCH
# To choose English
#langid = wx.LANGUAGE_ENGLISH
Tout variable qui ne correspond pas au format de son type est considérée comme une valeur manquante.
Voici comment c'est pris en charge :
Non. Dircograph est limité à l'affichage des trajets pour la France.
La raison est que l'algorithme qui transforme les coordonnées sphériques en x,y est propre à la France. A ma connaissance,chaque région ou État utilise un algorithme particulier, ce qui complique l'implémentation. Si quelqu'un a un algorithme général, je suis preneur ...
La solution alternative serait d'autoriser des fichiers avec les coordonnées X,Y déjà calculées, comme c'est le cas déjà pour les points de repères. A faire prochainement.