Ich möchte ein Python-Skript verwenden, das nicht auf arcpy basiert, um beispielsweise ein Shapefile nach Attributen abzufragen, eine neue Ebene aus der Auswahl zu erstellen, Flächen eines Polygons zu berechnen und Polygone in Punkte umzuwandeln.
Hat jemand Codebeispiele für die Verwendung anderer Python-Module oder -Bibliotheken? Ich bin in der Lage, dies leicht mit arcpy zu tun, aber ich wollte andere Optionen erkunden.
python
geoprocessing
Sherpas
quelle
quelle
Antworten:
Das ist seltsam, als ob die Leute plötzlich die Leistungsfähigkeit von Python entdeckten (ohne ArcPy, das unter anderem nur ein Python-Modul ist), siehe zum Beispiel die Frage Shapefile in Python visualisieren :
Sie können alle (Pysal mit Shapely, ...) kombinieren und mit den anderen wissenschaftlichen Modulen mischen.
Suchen Sie daher für Python-Skript-Beispiele nach Pyshp Fiona, ogr, gdal oder shapely in gis.stackexchange oder im Internet (viele Beispiele, nicht nur in Englisch).)
Eines davon in Französisch (die Skripte und Abbildungen sind universell!):
- Python: Verwenden von Vektor- und Rasterebenen in einer geologischen Perspektive, ohne GIS-Software und
eine andere in Englisch:
- GIS mit Python, Shapely und Fiona
und in Spanisch
- Bestimmen von Bereichen unregelmäßiger Polygone mithilfe der Koordinaten der Scheitelpunkte
in gis.stackexchange
- Höhenprofil 10 km pro Seite einer Linie
- Aktualisieren von Attributen mit Pyshp
- Wie erstelle ich ein 3D-Shapefile aus einem Raster?
- Python-Skript zum Ermitteln des Höhenunterschieds zwischen zwei Punkten
- usw
Das von Aaron vorgestellte Skript kann einfacher mit Fiona geschrieben werden, das nur Python-Wörterbücher verwendet:
und wenn du formschön dazu verwendest:
Es gibt auch zwei Bücher:
Python Geospatial Development von Eric Westra.
Lernen der Geodatenanalyse mit Python von Joel Lawhead
Python wird auch als Skriptsprache in anderen GIS-Anwendungen wie QGIS (Quantum GIS), GRASS GIS, gvSIG oder OpenJump oder 3D-Modellierern wie Paraview (und Blender auch!) Verwendet . In all diesen Anwendungen können Sie die meisten Geodatenmodule verwenden (siehe Visualisierung von QGIS-Daten mit Blender ).
quelle
Ich empfehle die USU-Site Geoverarbeitung mit Python unter Verwendung von Open Source GIS , um Ihnen den Einstieg zu erleichtern. Sie verwenden in erster Linie die GDAL / OGR-Bibliothek während der Übungen. Die Installation von GDAL / OGR kann eine Herausforderung sein. Daher kann dieser Blogeintrag hilfreich für Sie sein: Installieren von GDAL (und OGR) für Python unter Windows . Schauen Sie sich auch Alternativen zur Verwendung von Arcpy unter GIS.SE an.
Mit dem folgenden OpenSource-Geoverarbeitungsskriptbeispiel (von der USU-Site) werden Attributdaten extrahiert und in eine Textdatei geschrieben:
quelle
.Destroy
ist eine wunderbare Methode Name: pMöglicherweise interessieren Sie sich für GDAL / OGR .
GDAL wird zum Verarbeiten von Rastern verwendet, während OGR für Vektoren verwendet wird. Beide sind Open Source-Bibliotheken.
Wenn Sie Abhängigkeiten von ArcPy entfernen möchten, können Sie einige Funktionen nachahmen, indem Sie die Informationen in ein Array lesen und Ihre eigenen Berechnungen in reinem Python ausführen.
Ich habe dies kürzlich mit der Auswahl von Punkten in einem Polygon gemacht, wie hier gezeigt . Mithilfe des Ray Casting-Algorithmus wird anhand der Koordinaten der Eckpunkte des Polygons bestimmt, ob ein Punkt innerhalb eines Polygons liegt.
quelle
Ich habe das noch nie persönlich benutzt, aber andere im Büro verwenden es gerne formschön: https://pypi.python.org/pypi/Shapely
quelle