Ich würde empfehlen, OGR / GDAL zu verwenden , das Teil der GDAL- Bibliothek ist. OGR unterstützt ein virtuelles Format, das die Spezifikation über eine XML-Datei ermöglicht. Wenn Sie Ihr Excel-Arbeitsblatt in eine CSV-Datei konvertieren, können Sie eine VRT generieren, um auf die Daten zuzugreifen.
Vorausgesetzt, Sie haben so etwas example.csv
:
Lat,Long,Year,Name
34.0,-120.0,2010-05-01,Off Santa Rosa Island
Sie können eine VRT example.vrt
wie folgt erstellen :
<OGRVRTDataSource>
<OGRVRTLayer name="example">
<SrcDataSource>example.csv</SrcDataSource>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding="PointFromColumns" x="Long" y="Lat"/>
</OGRVRTLayer>
</OGRVRTDataSource>
Ab GDAL 1.7 können Sie zusätzlich die Datentypen von Attributfeldern mithilfe des <Field>
Elements in <OGRVRTLayer>
wie folgt angeben :
<Field name="date" src="Year" type="Date" />
Beachten Sie, dass Shapefiles Attribute im DBASE IV- Format speichern, das in Bezug auf Datentypen weniger flexibel ist als Excel. Sobald Sie Ihre VRT-Datei angegeben haben, können Sie die Daten mit der normalen OGR-Toolchain in ein Shapefile konvertieren:
ogr2ogr -f "ESRI Shapefile" example.shp example.vrt
Leider ist # 4 nicht möglich - die Shapefile-Spezifikation ermöglicht eine einzelne Projektion (hier example.prj
nach dem letzten Schritt sichtbar ).