Mehr

Auswahl nach Attribut in Shapefiles mit Open-Source-Python-Modulen

Auswahl nach Attribut in Shapefiles mit Open-Source-Python-Modulen


Normalerweise verwende ich ArcGis 9.3.1, aber wenn ich ein Python-Skript ausführe, das Select_by_attribute (von gp) enthält, wird das Skript sehr, sehr langsam ausgeführt. Gibt es eine Möglichkeit, eine Auswahl nach Attribut auf einem Open-Source-Python-Modul (wie Shapely?) durchzuführen? Wird es schneller?


Sie werden wahrscheinlich schnellere Ergebnisse erzielen, wenn Sie Ihrem Shapefile geeignete Attributindizes hinzufügen, wie unter Ändern von Indizes in Shapefiles durch Indizieren eines Attributs beschrieben, oder Ihre Daten in eine FileGDB verschieben und dort Indizes hinzufügen.

Alle Leistungsvorteile der Verwendung einer OpenSource-Option werden wahrscheinlich dadurch aufgewogen, dass die Ergebnisse der Abfrage anschließend wieder in Ihre ESRI-Geoverarbeitung integriert werden müssen – es sei denn, Sie möchten den gesamten Prozess auf OpenSource verschieben. Shapely dient zum Bearbeiten von Geometrie, um Features nach Attributen auszuwählen, können Sie OGR und den Shapefile-Treiber verwenden.


Ich habe die Python-Module nicht verwendet, aber ich habe die verwendet ogr2ogr Dienstprogramm zum Unterteilen von Datensätzen aus Shapefiles durch Attributauswahl und stellte fest, dass es um Größenordnungen schneller ist als die Verwendung von Arcgis-Geoverarbeitung (10 Sekunden gegenüber 6 Minuten). Beispiel für eine ogr2ogr-Auswahlabfrage:

SELECT * from polylayer WHERE prop_value > 220000.0 ORDER BY prop_value DESC

Um es in der Arcgis-Welt zu halten, habe ich gesehengp.Select_analysissei schneller alsgp.Select_by_attribute. Ich habe nicht recherchiert, ob das immer stimmt oder nur eine momentane Besonderheit.


Schau das Video: 2014 - Pirmin Kalberer: Neues in QGIS