L'utilisateur peut convertir un fichier CSV en un fichier XML par ligne de commande en utilisant l’outil https://bitbucket.org/enroute-mobi/csv-to-netex/downloads/.
Via l’utilisation d’un modèle XML, il peut donc convertir un fichier CSV en fichier NeTEx et ensuite l’importer dans Chouette.
Pré-requis
Télécharger l’exécutable sur https://bitbucket.org/enroute-mobi/csv-to-netex/downloads/ selon votre système d’exploitation
Fournir un fichier CSV (encodage UTF-8) contenant uniquement les attributs à convertir (sans l’entête de la table)
Créer un fichier XML qui servira de modèle pour le fichier NeTEx à générer (il doit être créé dans le même dossier que l’exécutable téléchargé plus haut).
Vous trouverez ci-dessous plusieurs fichiers XML d’exemple que vous pourrez utiliser pour convertir vos fichiers CSV en fichiers NeTEx.
Exemple 1 - Convertir les attributs de Points d’Intérêt (POI)
Pour générer des Points d’intérêt au format NeTEx, vous pouvez utiliser le modèle suivant :
<PointOfInterest version="any" id="{{ index .Cells 0 }}"> <Name>{{ index .Cells 2 }}</Name> <Centroid> <Location> <Longitude>{{ index .Cells 6 }}</Longitude> <Latitude>{{ index .Cells 7 }}</Latitude> </Location> </Centroid> <PostalAddress version="any" id=""> <CountryName>France</CountryName> <AddressLine1>{{ index .Cells 5 }}</AddressLine1> <Town>{{ index .Cells 4 }}</Town> <PostCode>{{ index .Cells 3 }}</PostCode> </PostalAddress> <classifications> <PointOfInterestClassificationView> <Name>{{ index .Cells 1 }}</Name> </PointOfInterestClassificationView> </classifications> <validityConditions> <AvailabilityCondition version="any" id="1"> <dayTypes> <DayType version="any" id="1"> <properties> <PropertyOfDay> <DaysOfWeek>{{ index .Cells 8 }}</DaysOfWeek> </PropertyOfDay> </properties> </DayType> </dayTypes> <timebands> <Timeband version="any" id="1"> <StartTime>{{ index .Cells 9 }}</StartTime> <EndTime>{{ index .Cells 10 }}</EndTime> </Timeband> </timebands> </AvailabilityCondition> <AvailabilityCondition version="any" id="2"> <dayTypes> <DayType version="any" id="2"> <Name>Working day</Name> <properties> <PropertyOfDay> <DaysOfWeek>{{ index .Cells 11 }}</DaysOfWeek> </PropertyOfDay> </properties> </DayType> </dayTypes> <timebands> <Timeband version="any" id="2"> <StartTime>{{ index .Cells 12 }}</StartTime> <EndTime>{{ index .Cells 13 }}</EndTime> </Timeband> </timebands> </AvailabilityCondition> </validityConditions> </PointOfInterest>
En utilisant ce modèle, les colonnes de votre fichier CSV doivent être classés dans cet ordre :
id,catégorie,nom,codepostal,ville,adresse,téléphone,email,longitude,latitude,jours d'ouverture,heure d'ouverture,heure de fermeture,jours d'ouverture,heure d'ouverture,heure de fermeture
La colonne Id est ce qui va permettre à Chouette d’identifier un POI. L’id doit être unique pour chaque point d’intérêt.
Exemple 2 - Convertir les attributs d’arrêts
Pour ajouter un code spécifique à vos arrêts, vous pouvez utiliser ce modèle
<Quay id="{{ index .Cells 0 }}"> <KeyValue typeOfKey="ALTERNATE_IDENTIFIER"> <Key>code</Key> <Value>{{ index .Cells 1 }}</Value> </KeyValue> </Quay>
Exemple 3 - Convertir les attributs de lignes
Pour ajouter des codes spécifique à vos lignes, vous pouvez utiliser ce modèle. Ici vous devrez renseigner:
l’ID de la ligne,
la valeur dans l’espace de code choisi,
le nom de la ligne.
<Line id="{{ index .Cells 0 }}"> <keyList> <KeyValue typeOfKey="ALTERNATE_IDENTIFIER"> <Key>test</Key> <Value>{{ index .Cells 1 }}</Value> </KeyValue> </keyList> <Name>{{ index .Cells 2 }}</Name> </Line>
En utilisant ce modèle, les colonnes de votre fichier CSV doivent être classés dans cet ordre :
id,valeur du code,nom
Exécuter la ligne de commande sur Windows
Pour lancer la requête de votre conversion CSV vers NeTEx, il faut exécuter une ligne sur l’invite de commande au niveau de l’emplacement du fichier où se trouvent le fichier CSV et le fichier XML modèle.
csv-to-netex.exe --template TEMPLATE_FILE CSV_INPUT > OUTPUT_FILE
TEMPLATE_FILE est à modifier avec votre fichier XML modèle créé.
CSV_INPUT est à modifier avec votre fichier CSV
OUTPUT_FILE est à modifier avec le nom du fichier NeTEx à générer
Une fois les commande exécutées, un fichier NeTEx apparaît dans le même emplacement.
Exécuter la ligne de commande sur Mac
Pour lancer la requête de votre conversion CSV vers NeTEx, il faut exécuter sur la console une ligne de commande au niveau de l’emplacement du fichier où se trouvent le fichier CSV et le fichier XML modèle.
$ csv-to-netex.exe --template TEMPLATE_FILE CSV_INPUT > OUTPUT_FILE
Une fois les commande exécutées, un fichier CSV apparaît dans le même emplacement.
TEMPLATE_FILE est à modifier avec votre fichier XML modèle créé.
CSV_INPUT est à modifier avec votre fichier CSV
OUTPUT_FILE est à modifier avec le nom du fichier NeTEx à générer
Exécuter la ligne de commande sur Linux
Pour lancer la requête de votre conversion CSV vers NeTEx, il faut exécuter sur la console une ligne de commande au niveau de l’emplacement du fichier où se trouvent le fichier CSV et le fichier XML modèle.
csv-to-netex.exe --template TEMPLATE_FILE CSV_INPUT > OUTPUT_FILE
Une fois les commande exécutées, un fichier CSV apparaît dans le même emplacement.
TEMPLATE_FILE est à modifier avec votre fichier XML modèle créé.
CSV_INPUT est à modifier avec votre fichier CSV
OUTPUT_FILE est à modifier avec le nom du fichier NeTEx à générer