4. Converteren van GIS formaten

4.4. Converteer Comma Separated Values (CSV) bestanden

Soms wil je de coordinaten in een tekstbestand converteren. Bijvoordbeeld een ASCII bestand uit een spreadsheet programma. Hier gaan we de coordinaten in het CSV bestand locations.csv herprojecteren en opslaan in een nieuw ASCII bestand met de naam locations_reprojected.csv.

Het is goed gebruik om eerst de inhoud van een CSV bestand in een tekst editor (zoals Kladblok) te bekijken en uit te vinden waar de coordinaten staan en welk teken gebruikt wordt om de kolommen te scheiden. Dat is namelijk niet altijd een komma en hangt soms af van de taalinstellingen die het spreadsheetprogramma gebruikt tijdens het exporteren naar CSV formaat.

1. Bekijk de inhoud van locations.csv . Je kan het type commando gebruiken, zoals je hebt geleerd in de tutorial over de opdrachtregelinterface.

We zien dat de coordinaten in de lat/lon kolommen staan. Dat betekent dat we EPSG:4326 moeten gebruiken. De kolommen worden gescheiden met komma's. In de laatste kolom staat tekst, herkenbaar aan de dubbele aanhalingstekens.

Om de projectie van het CSV bestand te veranderen moeten we eerst een virtuele databron maken d.m.v. een XML bestand.

2. Open Kladblok and typ/kopieer de XML code die hieronder staat. Gebruik drie spaties voor het inspringen.

<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. Sla het bestand op als locations.vrt in de gdal_exercises map.

Laten we het XML bestand nader bekijken:

  • <OGRVRTLayer name="locations"> moet overeenkomen met <SrcDataSource>locations.csv</SrcDataSource>
  • <LayerSRS>EPSG:4326</LayerSRS> moet overeenkomen met de EPSG code van de coördinaten in het CSV bestand
  • <GeometryField encoding="PointFromColumns" x="lon" y="lat"/> geeft aan welke kolommen de coördinaten bevatten.
4. Voer het volgende commando uit:
ogr2ogr -t_srs EPSG:28992 -f "CSV" locations_reprojected.csv locations.vrt -lco GEOMETRY=AS_XY

In dit voorbeeld converteren we de lat/lon WGS-84 coordinaten van locations.csv naar Amersfoort/RD Nieuw coordinaten en het resultaat wordt opgeslagen in  locations_projected.csv.

5. Gebruik Kladblok om het resultaat te bekijken. Wat is er opgeslagen in de kolommen?

Op dezelfde wijze kunnen we het CSV bestand converteren naar een shapefile.

6. Voer het volgende commando uit:
ogr2ogr -f "ESRI Shapefile" -t_srs EPSG:28992 locations.shp locations.vrt

7. Bekijk het resultaat met ogrinfo.

8. Visualiseer de shapefile in QGIS door de lokaties over het hoogtemodel, wegenkaart en gemeentegrens van Delft te plotten. Maak er een mooie kaart van.

9. Converteer de lokaties nu naar het Google KML formaat en bekijk in Google Earth wat de lokaties in Delft zijn.