Consiglio di utilizzare OGR / GDAL , che fa parte di libreria GDAL . OGR supporta un formato virtuale che consente la specifica tramite un file XML. Se converti il tuo foglio di lavoro Excel in un CSV, puoi generare un VRT per accedere ai dati.
Supponendo che tu abbia qualcosa del genere example.csv
:
Lat,Long,Year,Name
34.0,-120.0,2010-05-01,Off Santa Rosa Island
Puoi creare un VRT example.vrt
come segue:
<OGRVRTDataSource>
<OGRVRTLayer name="example">
<SrcDataSource>example.csv</SrcDataSource>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding="PointFromColumns" x="Long" y="Lat"/>
</OGRVRTLayer>
</OGRVRTDataSource>
A partire da GDAL 1.7, è possibile specificare ulteriormente i tipi di dati dei campi degli attributi usando il <Field>
elemento all'interno di <OGRVRTLayer>
, in questo modo:
<Field name="date" src="Year" type="Date" />
Tenere presente che gli shapefile memorizzano gli attributi nel DBASE IV formato che ha meno flessibilità nei tipi di dati rispetto a Excel. Dopo aver specificato il tuo file VRT, puoi utilizzare la normale toolchain OGR per convertire i dati in uno Shapefile:
ogr2ogr -f "ESRI Shapefile" example.shp example.vrt
Sfortunatamente, il numero 4 non è possibile: la specifica dello shapefile consente una singola proiezione (visualizzabile qui example.prj
dopo l'ultimo passaggio).