Jaka jest różnica między tokenami „SHAPE @ XY” i „SHAPE @ TRUECENTROID” dostępu do danych?


9

Kursor wyszukiwania dostępu do danych .

Jaka jest różnica między tokenami "SHAPE@XY"a "SHAPE@TRUECENTROID"?

Zwrócili te same współrzędne na testowym wielokącie:

>>> cursor = arcpy.da.SearchCursor("test", "SHAPE@XY")
>>> for row in cursor:
...     print row[0]
...     
(559389.3838043335, 4239093.201390337)

>>> cursor = arcpy.da.SearchCursor("test", "SHAPE@TRUECENTROID")
>>> for row in cursor:
...     print row[0]
...     
(559389.3838043335, 4239093.201390337)

wprowadź opis zdjęcia tutaj

Zachowywał się tak samo w przypadku wieloczęściowej operacji wielokąta. Czy kiedykolwiek zwraca różne wyniki?

Odpowiedzi:


4

Byłem również tego ciekawy, więc trochę zapytałem i przeprowadziłem badania. to co znalazłem było

SHAPE@XY A tuple of the feature's centroid x,y coordinates.
SHAPE@TRUECENTROID —A tuple of the feature's true centroid x,y coordinates.

W tym artykule opisano, jak są one identyczne w około 95% przypadków, ale spowoduje niewielką różnicę w pozostałych 5%

https://geonet.esri.com/thread/92121

cytowany z artykułu „Więc chodzi o to, że użycie tokena SHAPE @ XY jest mylące. To samo, co uzyskanie wartości SHAPE @ TRUECENTROID dla X&Y. Dotyczy to również SHAPE @ X lub SHAPE @ Y. Spowoduje to problemy dla osób, które chcą geokodować adresy lokalizacji, a następnie przeprowadzać wszelkiego rodzaju analizy przestrzenne, w których ważne jest liczenie punktów w paczkach. Będą działki o dziwnych kształtach, które powinny mieć punkt w środku, ale go nie mają, oraz punkty w innych paczkach które nie powinny tam być, ale są umieszczone ze względu na środek ciężkości nieparzystej paczki. Używam tokena SHAPE @, aby uniknąć tego problemu, ale to oznacza, że ​​więcej pamięci jest zajęte, aby pomieścić cały obiekt geom wielokąta zamiast samego centroid, co sprawia, że ​​skrypt działa wolniej ”.


Naprawdę liczyłem na punkt wewnętrzny, więc jest to bardzo pomocne. Dzięki.
Emil Brundage

Czy nie ma punktu wewnętrznego? Być może po prostu zadeklaruj za pomocą SHAPE @, aby zwrócić geometrię i użyj labelPoint ( resources.arcgis.com/de/help/main/10.1/index.html#//… ), który z pewnością znajduje się w geometrii lub na niej.
Michael Stimson,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.