.. -*- coding: utf-8 -*- ============= Import/export ============= :Author: Étienne Loks :date: 2012-11-28 :Copyright: CC-BY 3.0 Ce document présente les fonctions d'import et d'export de Chimère. Ce document a été mis à jour pour la version 2.0.0 de Chimère. .. _importing: Import ------ Dans Chimère, le mécanisme d'import est basé sur les objets **Import**. Ces objets sont stockés dans une base de données pour garder trace des imports et pour faciliter la ré-importation depuis une même source. En fait, si cela est possible, la mise à jour de données depuis un même type de source est gérée, de préférence à une ré-importation. .. Note:: La possibilité de réaliser de telles mises à jour est conditionnée à l'existence d'un identifiant unique pour chaque objet de la source. Pour ajouter un objet **Import**, vous devez aller dans *Chimere > Imports* puis cliquer sur **Ajouter**. Après cela, vous aurez à sélectionner votre type de source. Le formulaire suivant dépend de ce type de source. Champs communs à tous les types de source ***************************************** - **Nom par défaut** : si aucun nom ne peut être trouvé dans la source pour ce nouvel objet le nom par défaut sera utilisé. Si ce champ est vide le nom de la catégorie associée sera utilisée. - **SRID** : Chimère tente d'identifier automatiquement le système de coordonnées utilisé par la source. Mais parfois l'information n'est pas présente ou ne peut pas être devinée (par exemple un fichier Shapefile qui utilise un fichier proj non standard). Dans ce cas, Chimère utilise WGS84 par défaut (latitude et longitude). Si vous avez des problèmes avec la localisation des éléments vous devez probablement mettre ici le `SRID `_ correspondant au système de coordonnées de votre source. - **Origine** : si non nul, ce champ va être associé à chaque élément importé afin d'identifier facilement d'où l'élément provient. Pour les imports OSM la source est ajoutée automatiquement. - **Licence** : si non nul, ce champ va être associé à chaque élément importé afin d'identifier facilement la license de l'élément. Pour les imports OSM la license est ajoutée automatiquement. - **Sous-catégories (obligatoire)** : les sous-catégories sélectionnées seront associées automatiquement aux nouveaux éléments importés. Import KML ********** .. image:: static/chimere_admin_import_KML.png - **Adresse Web/fichier source (obligatoire)** : votre fichier KML peut être local ou distant. Vous avez à remplir un des deux champs. - **Filtre**: si vous souhaitez importer seulement un dossier (**Folder**) du fichier KML mettez son nom dans ce champ. - **Fichier zippé**: si votre source est un fichier KMLZ (un fichier KML zippé), cochez cette case. Import Shapefile **************** .. image:: static/chimere_admin_import_shapefile.png - **Adresse Web/fichier source (obligatoire)** : votre fichier Shapefile peut être local ou distant. Vous avez à remplir un des deux champs. - **Fichier zippé**: seuls les fichiers Shapefile zippé sont acceptés aussi cette case devrait être cochée. Import GeoRSS ************* Simple GeoRSS et W3C GeoRSS sont gérés. .. image:: static/chimere_admin_import_georss.png - **Adresse Web (obligatoire)**: seul les flux GeoRSS distant sont gérés. Import CSV ********** Le format du fichier CSV (nombre et ordres des colonnes) géré par Chimère varie en fonction des modèles de propriété que vous avez utilisé sur votre instance Chimère. Aussi, il est recommandé dans un premier temps de faire un export CSV de quelques éléments. Le format du fichier CSV exporté sera compatible avec Chimère pour l'import. En tout cas à cause des champs géographiques ce format n'est pas très pratique pour l'ajout de nouveau contenu mais peut s'avérer utile pour les mises à jour d'information. .. Warning:: Si vous souhaitez mettre à jour des données existantes avec cet import, à moins que vous sachiez éditer du WKT ne modifiez **pas** la colonne qui concerne la géométrie de l'élément. .. image:: static/chimere_admin_import_CSV.png - **Adresse Web/fichier source (obligatoire)** : votre fichier CSV peut être distant ou local. Vous avez à remplir un des deux champs. .. _osm-import: Import OpenStreetMap ******************** .. image:: static/chimere_admin_import_OSM.png Pour importer depuis OSM, Chimère utilise l'API XAPI d'OSM. - **Adresse Web (obligatoire)**: l'URL XAPI à utiliser pour importer. Ce champ doit être rempli par défaut. Par défaut le serveur MapQuest est utilisé car il semble le plus robuste. Si vous avez des problèmes avec l'import de données OSM, vérifiez la disponibilité du serveur utilisé et le cas échéant changez le. - **Filtre sur zone (obligatoire)**: dessinez la section de carte à utiliser pour votre import OSM. - **Filtre sur types (obligatoire)**: choisissez si vous souhaitez importer des routes ou des nœuds. - **Filtre sur les clé/valeur (obligatoire)**: choisissez la paire clé/valeur à utiliser pour filtrer les données OSM. Un lien vers la `page de « Map features » OSM `_ est fourni pour vous aider à trouver les valeurs adaptées. - **Bouton de rafraîchissement**: ce bouton converti vos choix en arguments XAPI adaptés. N'oubliez pas de presser sur ce bouton avant de valider le formulaire. Importer ******** Une fois que le nouvel objet *Import* est créé, sélectionnez le dans la liste des objets, choisissez *Importer* et valider. L'import doit se dérouler normalement. Dans le cas contraire, un message d'erreur explicite doit s'afficher dans la colonne *État* de votre import. Vous pouvez aussi lancer vos imports en ligne de commande (idéal pour les travaux à mettre dans la table *cron*). Dans le répertoire du projet, il est juste nécessaire de lancer la commande :: ./manage.py chimere_import - *import_id* est l'identifiant de l'import Si vous lancez l'import en ligne de commande sans l'identifiant d'import, la liste des imports disponibles est affichée et vous pouvez alors en choisir un. Gérer les données importées *************************** Tous les nouveaux éléments importés ont l'état **Importé**. Pour que ceux-ci soient disponible sur la carte, il est nécessaire de les valider. Si vous ne souhaitez pas afficher certains éléments plutôt que de les supprimer, il est recommandé de les mettre à l'état **Désactivé**. Ainsi lors de la prochaine mise à jour depuis la source, ceux-ci resteront désactivés plutôt que d'apparaître comme nouveaux éléments. .. Warning:: Soyez vigilants avec les doublons entre les données existantes et les données importées. C'est particulièrement important si vous souhaitez exporter vos données vers OSM. Exporter -------- Exporter vers CSV/KML/Shapefile ******************************* Depuis les `listes d'éléments géographiques ` vous pouvez exporter directement vers le format choisi. Tout ce que vous avez à faire c'est de sélectionner les éléments que vous souhaitez exporter, choisir l'action appropriée dans la liste d'action et de valider. Vous pouvez aussi lancer les exports depuis la ligne de commande (idéal pour les travaux à mettre dans la table *cron*). Dans le répertoire du projet, vous avez juste à lancer :: ./manage.py chimere_export \ - *subcategory_id* est l'identifiant de la sous-categorie choisie ; - *CSV|KML|SHP* est le format choisi ; - *marker|route* est pour obtenir points d'intérêts (marker) ou trajets (route) ; - *filename* est le nom du fichier de sortie Si vous lancez la commande sans arguments il vous sera demandé les choix à faire pour votre export. Exporter vers OSM ***************** .. Warning:: Si vous n'êtes pas sûr de ce que vous êtes entrain de faire avec les exports vers OSM : **ne le faites pas !** C'est vraiment important de ne pas plaisanter avec les données des autres. .. Note:: Seuls les exports des nœuds OSM sont gérés. Les exports ne sont pas aussi facile à gérer que les autres exports. Tout d'abord (si cela n'est pas déjà fait) vous avez à définir un import OSM (:ref:`regarder dessus` pour plus de détail). Cela permettra de déterminer : - la zone géographique concernée par votre export ; - la clé/valeur à ajouter à vos éléments (nouveaux ou mis à jour) ; - les sous-catégories concernées par cet export. Si vosu pensez que certains éléments dans ces sous-catégories ne devraient pas être dans la base de données OSM (car ils ne sont pas pertinents ou à cause de question de licence) préalablement marquez les comme **À ne pas exporter vers OSM** dans les *champs d'imports* des :ref:`formulaires concernant les éléments géographiques `. L'export vers OSM dans Chimère est fait de telle sorte à être le plus conservateur possible par rapport à la base de données OSM. C'est pour cela qu'avant tout export, un import est fait. Si le nouvel import a des données mises à jour, les valeurs de ces nouvelles données écraseront les données présentes dans votre Chimère (si vous ne souhaitez pas cela : ne faites pas de ré-imports et de fait pas d'exports). Tous les éléments importés doivent être traités avant de faire un export. Pour lancer un export sélectionnez l'objet *Import* approprié dans la liste des imports. Ensuite sélectionnez l'action **Exporter vers OSM** et validez. Puis on vous demande votre identifiant OSM, votre mot de passe OSM et l'API que vous souhaitez utiliser. Si vous comptez faire des exports régulièrement avec Chimère, il est recommandé de créer un compte spécifique pour cela. L'API de test est disponible pour faire des tests d'export. Si vous souhaitez utiliser l'API de test vous aurez à créer un compte spécifique sur la plateforme de test. .. Warning:: Les données sur la plateforme de test ne sont pas synchronisées avec la plateforme principale. Vous n'aurez pas les mêmes données que les données que vous aurez avec XAPI. Une fois que tout ces champs sont remplis, vous pouvez (enfin !) lancer l'export. Quand vous exportez des couples clés/valeurs sont automatiquement ajoutés/mis à jour : - *name*: obtenu depuis le nom de l'élément dans Chimère. - *source*: pour identifier Chimère comme une source.