4. Convertir des formats SIG

4.4. Convertir des valeurs séparées par des virgules (CSV)

Parfois, vous souhaitez reprojeter des coordonnées se trouvant dans un fichier ASCII, par exemple, d’un fichier qui a été enregistré en texte dans un tableur. Ici, nous allons convertir les coordonnées d'un fichier ASCII séparé par des virgules, locations.csv,en un nouveau fichier ASCII locations_reprojected.csv.

Il est recommandé de visualiser d'abord le contenu d'un fichier CSV et de vérifier (1) les coordonnées, et (2) le séparateur de colonnes. Le séparateur n'est pas toujours une virgule et dépend parfois des paramètres de langues utilisés lors de l'exportation à partir du tableur.

1. Visualisez le contenu du fichier locations.csv . Vous pouvez utiliser la commande type à partir de l'invite de commande comme vous l'avez appris dans le tutoriel Ligne de commande.

Nous pouvons voir que les coordonnées sont en lat/lon, ce qui signifie que nous pouvons utiliser EPSG:4326. Le séparateur de colonne est une virgule. La dernière colonne donne les objets avec une chaîne de caractères entre guillemets.

Pour changer la projection du CSV, nous devons d'abord créer une source de données virtuelle en créant un fichier de contrôle XML.

2. Sur votre ordinateur Windows, ouvrez Notepad et tapez/copiez le code XML indiqué ci-dessous. Utilisez des marges de trois espaces.

<OGRVRTDataSource>
   <OGRVRTLayer name="locations">
      <SrcDataSource>locations.csv</SrcDataSource>
      <GeometryType>wkbPoint</GeometryType>
      <LayerSRS>EPSG:4326</LayerSRS>
      <GeometryField encoding="PointFromColumns" x="lon" y="lat"/>
   </OGRVRTLayer>
</OGRVRTDataSource>

3. Enregistrez le fichier sous le nom de locations.vrt dans le dossier gdal_exercises.

Quelques explications à propos du fichier XML:

  • <OGRVRTLayer name="locations"> doit correspondre à <SrcDataSource>locations.csv</SrcDataSource>
  • <LayerSRS>EPSG:4326</LayerSRS> doit correspondre au code EPSG des colonnes de coordonnées
  • <GeometryField encoding="PointFromColumns" x="lon" y="lat"/> indique les colonnes avec les coordonnées que vous voulez convertir.
4. Exécutez la commande suivante:
ogr2ogr -t_srs EPSG:28992 -f "CSV" locations_reprojected.csv locations.vrt -lco GEOMETRY=AS_XY

Dans cet exemple locations.csv avec des coordonnées lat/lon WGS-84 est converti en locations_projected.csv avec la projection Amersfoort/RD New.

5. Utilisez Notepad pour vérifier locations_reprojected.csv. Qu'est-ce qui est enregistré dans chaque colonne?

De la même manière, nous pouvons convertir le fichier séparé par des virgules en un fichier shapefile.

6. Exécutez la commande suivante:
ogr2ogr -f "ESRI Shapefile" -t_srs EPSG:28992 locations.shp locations.vrt

7. Vérifiez le résultat avec ogrinfo.

8. Visualiser le shapefile dans QGIS en traçant les emplacements sur le DEM (MNE), la carte routière et la frontière de la commune de Delft. Faites une belle carte.

9. Convertissez le fichier de localisation en Google KML, ouvrez-le dans Google Earth et découvrez ce à quoi correspond l'emplacement des objets.