Wenn ich beispielsweise eine rechteckige und georeferenzierte Rasterdatei in ein ArcMap 10-Dokument geladen habe (.tiff mit zugehörigem tfw), wie kann ich den Mittelpunkt leicht finden und diesen Punkt in einer Punktvektorebene speichern?
Wie kann ich den Prozess auf alle anwenden, wenn ich mehrere solcher Raster in meinem ArcMap-Dokument habe?
Leider habe ich keine Python-Erfahrung. Daher ist eine programmatische Lösung in Ordnung, aber ich benötige spezielle Anweisungen zum Laden eines vorhandenen Skripts in ArcGIS 10 und zum Ausführen auf den betreffenden Rastern. (Übrigens sind die Raster alle in ihren separaten Ebenen).
Antworten:
Obwohl die ursprüngliche Frage für 10.0 war, habe ich den folgenden Code für 10.3.1 aktualisiert.
Kopieren Sie diese und fügen Sie sie in das Python-Fenster in arcmap ein, um die RasterCenter-Funktion zu erstellen:
Anschließend können Sie das Python-Fenster verwenden, um Ihre Feature-Class durch Aufrufen zu erstellen
Wenn Sie beispielsweise ein Raster mit dem Namen DEM haben, rufen Sie RasterCenter ("dem") im Python-Fenster auf und fügen eine Ebene mit dem Namen "dem_center" mit einem einzelnen Punkt in der Mitte des Rasters hinzu. Die Ebene wird im Speicher gespeichert. Wenn Sie sie also behalten möchten, exportieren Sie sie.
Um noch einen Schritt weiter zu gehen, können Sie das Skript in einer .py-Datei speichern und die .py-Datei im Suchpfad für Python ablegen. Speichern Sie es beispielsweise als RasterCenter.py und platzieren Sie es in PYTHONPATH (normalerweise ist der Ort dafür C: \ Python26 \ ArcGIS10.0 \ Lib).
Dann könnten Sie tun:
quelle
Sehr einfach, einfach die Rastereigenschaften abrufen und den Mittelpunkt aus min, max x und y berechnen
Und die übliche Fehlerprüfung etc ....
Fügen Sie dann mit einem updateCursor zu Ihrer Punktetabelle hinzu
quelle