Ermitteln Sie in ArcPy den kürzesten Abstand zwischen zwei Geometrien

8

Ich verwende ArcPy und verwende einen Cursor, um eine Polygon-Feature-Class zu durchlaufen. Für jedes dieser Quellpolygone erstelle ich einen Suchcursor, um alle Polygone in einer zweiten Feature-Class zu finden, die ein gemeinsames Attribut haben. Für jedes dieser übereinstimmenden Polygone möchte ich den Abstand zwischen ihm und dem Suchpolygon messen. Ich plane auch, andere Geometrieunterschiede zu messen (um festzustellen, ob sie gerade verschoben, gedreht, skaliert usw. wurden).

Der Zweck dieser Arbeit besteht darin, einen Änderungsverlauf zwischen Polygon-Datasets zu erstellen, die Features zu unterschiedlichen Zeiten darstellen.

Ich habe die in ArcObjects erwähnte ReturnDistance-Methode gesehen, kann aber nicht herausfinden, wie dies mit ArcPy ausgeführt wird. Ist es möglich und wenn ja, kann jemand mit einem groben Beispielcode helfen? Wenn nicht, werde ich wahrscheinlich die Änderung der Schwerpunktposition zwischen den Polygonen messen.

Danke, Steve

Steve
quelle

Antworten:

1

Diese Antwort wird möglicherweise nicht als richtig angesehen, da sie die Verwendung von ArcPy ausschließt. Ich bin nicht sicher, ob Sie in ArcPy auf ReturnDistance zugreifen können. Sie können jedoch direkt von Python aus auf ArcObjects zugreifen. Dieser Leitfaden von Mark Cederholm hilft Ihnen beim Starten von http://www.pierssen.com/arcgis/upload/misc/python_arcobjects.pdf . Es erfordert von Ihnen einige objektorientierte Programmierkenntnisse, wenn Sie die Grundlagen kennen, sollte dies ausreichen. Ansonsten lesen Sie die Anleitung. In Referenzen finden Sie einige Links zu Codefragmenten. Wenn Sie geduldig genug sind, werden Sie es herausfinden.

Hier haben Sie verschiedene Ansätze für ArcObjects in Python: Zugriff auf ArcObjects von Python aus?

Und hier ist ein Beispiel für ArcObjects in Python (mein Kampf mit diesem Problem): Arcobjects in Python: Weisen Sie Objekten mit Feature- (Form-) Geometrie eine Schnittstelle zu

Ich habe ungefähr 3 Tage gebraucht, um mein eigenes Programm zu schreiben, und ich hatte keine Ahnung von objektorientierter Programmierung, viel Glück.

Tomek
quelle
Ich vermutete, dass dies das sein könnte, was ich tun musste. Vielen Dank für alle Links und die Informationen über Ihre Erfahrungen damit. Ich werde es selbst versuchen.
Steve
11

Diese Antwort ist 3 Jahre zu spät, sodass Sie wahrscheinlich inzwischen eine Problemumgehung haben. Der Vollständigkeit halber ist hier eine bogenförmige Methode zum Messen des Abstands zwischen zwei Objekten.

Geometrie hat eine Methode, distanceTodie:

Gibt den Mindestabstand zwischen zwei Geometrien zurück. Wenn sich die Geometrien schneiden, beträgt der Mindestabstand 0.

Beide Geometrien müssen die gleiche Projektion haben.

Stephen Lead
quelle