Quelle est la différence entre les jetons «SHAPE @ XY» et «SHAPE @ TRUECENTROID» d'accès aux données?

9

Curseur de recherche d'accès aux données .

Quelle est, le cas échéant, la différence entre les jetons "SHAPE@XY"et "SHAPE@TRUECENTROID"?

Ils ont renvoyé les mêmes coordonnées sur un polygone de test:

>>> 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)

entrez la description de l'image ici

Il s'est comporté de la même manière pour une entité surfacique multipartie. Retourne-t-il jamais des résultats différents?

Emil Brundage
la source

Réponses:

4

J'étais également curieux de cela, alors j'ai demandé un peu et fait des recherches. ce que j'ai trouvé était

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.

Cet article décrit comment ils sont identiques dans environ 95% des cas, mais entraînera une légère différence avec les 5% restants.

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

cité de l'article "Donc, le point de ce post est que l'utilisation du jeton SHAPE @ XY est trompeuse. C'est la même chose que d'obtenir la valeur SHAPE @ TRUECENTROID pour X&Y. Cela est également vrai pour SHAPE @ X ou SHAPE @ Y. Cela entraînera des problèmes pour les personnes qui souhaitent géocoder des emplacements d'adresses, puis effectuer tout type d'analyse spatiale où le comptage des points dans les parcelles est important. Il y aura des parcelles de forme étrange qui devraient avoir un point à l'intérieur mais pas, et des points dans d'autres parcelles qui ne devrait pas être là mais sont placés en raison du centre de gravité de la parcelle impaire. J'utilise le jeton SHAPE @ pour éviter ce problème, mais cela signifie que plus de mémoire est consommée pour contenir l'ensemble de l'objet géométrique du polygone au lieu de juste le centroïde, ce qui rend un script plus lent. "

ed.hank
la source
J'espérais vraiment le point intérieur, donc c'est vraiment utile. Merci.
Emil Brundage du
N'y a-t-il pas un point intérieur? Peut-être déclarez simplement avec SHAPE @ pour renvoyer une géométrie et utilisez le labelPoint ( resources.arcgis.com/de/help/main/10.1/index.html#//… ) qui est garanti d'être dans ou sur la géométrie.
Michael Stimson