W jaki sposób można obliczyć punkt środkowy polilinii za pomocą struktury geoprzetwarzania , np. W skrypcie Python?
Właściwość polyline.centroid zwraca True centroid, jeśli jest w obiekcie lub na obiekcie; w przeciwnym razie zwracany jest punkt etykiety . Środek ciężkości rzadko znajduje się na nieprostych liniach, co jest bezużyteczne dla moich celów.
Narzędzie Polecaj wierzchołki do punktów ma opcję punktu środkowego, ale wymaga to ArcInfo, którego obecnie nie mam.
Opcją może być dodanie miar do polilinii i utworzenie zdarzenia trasy 50% wzdłuż linii.
Innym obejściem jest użycie opcji Oblicz geometrię w ArcMap, ale idealnie muszę zautomatyzować ten proces w skrypcie.
Jakieś lepsze / szybsze sugestie?
W tej chwili jestem ograniczony do ArcGIS 10.0 (bez dostępu do licencji na poziomie ArcInfo).
źródło
Odpowiedzi:
Łamana klasa ma nową metodę o nazwie „positionAlongLine” w ArcGIS 10.1. To zwrócić PointGeometry przedmiotu z dokładnie jednym punkcie, w określonej odległości od wyjściowego końca linii, lub ułamek odległości między początkiem i końcem . Aby znaleźć punkt środkowy, wystarczy zrobić
positionAlongLine(0.5,True)
. Aby znaleźć punkty środkowe linii i dodać ich współrzędne do tabeli atrybutów, możesz wykonać Kalkulator pola na następującej instrukcji:!Shape!.positionAlongLine(0.5,True).firstPoint.X
!Shape!.positionAlongLine(0.5,True).firstPoint.Y
Zauważ, że aby działało, musisz używać parsera Python w kalkulatorze polowym.
Jeśli chcesz uzyskać dostęp do tego obiektu punktowego w Pythonie, wykonaj następujące czynności:
źródło
Z licencją ET Geo Wizards możesz wypróbować funkcję „Polyline to Point” z opcją „Punkty środkowe” i „Usuń duplikaty punktów” (opcjonalnie): http://www.ian-ko.com/ET_GeoWizards/UserGuide/convertPl2Pnt. htm
Możesz wdrożyć ET Geo Wizards w następujący sposób:
Zmienne wejściowe funkcji ET znajdują się na stronie: http://www.ian-ko.com/ET_GeoWizards/UserGuide/Scripting/scripting_PolylineToPoint.htm
źródło