Polecam używanie OGR / GDAL , który jest częścią biblioteki GDAL . OGR obsługuje format wirtualny, który umożliwia specyfikację za pomocą pliku XML. Po przekonwertowaniu arkusza programu Excel na plik CSV można wygenerować VRT w celu uzyskania dostępu do danych.
Zakładając, że masz coś takiego example.csv
:
Lat,Long,Year,Name
34.0,-120.0,2010-05-01,Off Santa Rosa Island
Możesz utworzyć VRT example.vrt
w następujący sposób:
<OGRVRTDataSource>
<OGRVRTLayer name="example">
<SrcDataSource>example.csv</SrcDataSource>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding="PointFromColumns" x="Long" y="Lat"/>
</OGRVRTLayer>
</OGRVRTDataSource>
Począwszy od GDAL 1.7, możesz dodatkowo określić typy danych pól atrybutów, używając <Field>
elementu wewnątrz <OGRVRTLayer>
, na przykład:
<Field name="date" src="Year" type="Date" />
Należy pamiętać, że pliki kształtów przechowują atrybuty w formacie DBASE IV , który ma mniejszą elastyczność typów danych niż Excel. Po określeniu pliku VRT możesz użyć zwykłego łańcucha narzędzi OGR do konwersji danych do pliku Shapefile:
ogr2ogr -f "ESRI Shapefile" example.shp example.vrt
Niestety, # 4 nie jest możliwe - specyfikacja pliku shapefile pozwala na pojedyncze rzutowanie (widoczne tutaj example.prj
po ostatnim kroku).