Teilen oder speichern Sie eine Teilmenge einer ESRI Shape SHP-Datei in eine neue Datei?

8

Ich arbeite mit Shape-Dateien in GeoDjango. Im Moment versuche ich einen Test für Code zu schreiben, der in eine Shape-Datei geladen und in einer Datenbank gespeichert wird. Die Shape-Datei hat derzeit eine Feature-Anzahl von 64.118. Ich möchte das auf eine Handvoll reduzieren, damit der Test es schnell laden und bestätigen kann, dass alles in Ordnung ist.

Da Shape-Dateien nicht in einem Textformat vorliegen, gibt es eine kostenlose Anwendung oder Bibliothek, mit der ich eine Handvoll Funktionen ausreizen und in einer neuen Datei speichern kann?

Ich sollte erwähnen, dass ich weder eine Lizenz noch Zugang zu einer ESRI-Produktlinie habe.

    
Eric Palakovich Carr 10.06.2010, 17:07
quelle

1 Antwort

12

Sie haben mehrere Optionen, um eine Teilmenge von Datensätzen aus einer Shapefile zu exportieren.

  • Jedes Open Source Desktop-GIS kann dies durchführen. Einige der beliebtesten sind gvSIG oder openJUMP . Die genauen Schritte variieren in jedem von ihnen, aber im Grunde müssen Sie die Formdatei laden, mit der Bearbeitung beginnen, die gewünschten Datensätze auswählen und sie in eine neue Formdatei exportieren.

  • Mit dem ogr2ogr Tool, das Teil des GDAL-Pakets ist, können Sie zwischen verschiedenen geografischen Vektorformaten (oder innerhalb desselben) umwandeln Format), und Sie können einen SQL-ähnlichen Ausdruck angeben, um das ursprüngliche Dataset zu filtern.

    ogr2ogr -f "ESRI-Shapefile" - wo "id & lt; 10" new_shapefile.shp huge_shapefile.shp

  • Wenn Sie PostGIS verwenden und keine der vorherigen Apps installieren möchten, können Sie das pgsql2shp verwenden Werkzeug, um eine Teilmenge Ihrer PostGIS-Tabelle in eine Shapefile zu exportieren.

    pgsql2shp -f "/ Pfad / zu / Shapefile" -h Server -u Benutzer -P Passwort postgisdb     "SELECT * FROM Tabelle WO ID & lt; 10"

Bearbeiten : In jeder der drei Optionen können Sie einen räumlichen Filter (dh Features, die in eine Bounding Box fallen) statt einer Auswahl basierend auf Attributen durchführen.

    
amercader 11.06.2010, 08:23
quelle

Tags und Links