Dividere o salvare un sottoinsieme di un file SHP di forma ESRI in un nuovo file?
Domanda
Sto lavorando con i file di forma in Geodjango. In questo momento sto cercando di scrivere un test per il codice che si carica in un file di forma e lo salva in un database. Il file di forma ha attualmente un conteggio di 64.118. Vorrei ridurlo a una manciata in modo che il test possa caricarlo rapidamente e confermare che tutto è giusto.
Poiché i file di forma non sono in formato di testo, esiste un'applicazione o una libreria gratuita che posso usare per eliminare una manciata di funzionalità e salvarle in un nuovo file?
Dovrei menzionare che non ho una licenza né l'accesso a nessuna linea di prodotti ESRI.
Soluzione
Hai diverse opzioni per esportare un sottoinsieme di record da un file di forma.
Qualsiasi GIS desktop open source sarà in grado di eseguire questo. Alcuni dei più popolari sono GIS quantico, gvsig o OpenJump. I passaggi esatti varieranno in ciascuno di essi, ma in pratica devi caricare il file di forma, iniziare la modifica, selezionare i record che desideri ed esportarli in un nuovo file di forma.
Il OGR2OGR Lo strumento, parte del pacchetto GDAL consente di trasformare tra diversi formati vettoriali geografici (o all'interno dello stesso formato) e è possibile specificare un'espressione simile a SQL per filtrare il set di dati originale.
OGR2OGR -F "ESRI FAPEFILE" -Where "id <10" new_shapefile.shp enorme_shapefile.shp
Se si utilizza PostGIS e non si desidera installare nessuna delle app precedenti, è possibile utilizzare il pgsql2shp Strumento per esportare un sottoinsieme della tabella Postgis in uno shapefile.
pgsql2shp -f "/path/to/spepfile" -h server -u utente -p password postgisdb "seleziona * dalla tabella dove id <10"
Modificare: In una delle tre opzioni è possibile eseguire un filtro spaziale (cioè le funzionalità che rientrano in una scatola di delimitazione) piuttosto che una selezione basata su attributi.