Comment ArcGIS Desktop calcule-t-il le point INTÉRIEUR pour Entité à point?

11

Permettez-moi de revenir en arrière et de dire que d'après ce que je comprends, il existe deux façons courantes de calculer le centroïde d'un polygone dans ArcGIS Desktop:

  1. Utilisation de Calculer la géométrie sur les champs de la table attributaire de la classe d'entités.
  2. Utilisation Data Management -> Features -> Feature to Pointde la boîte à outils.

Ces deux résultats donnent le même résultat - le centroïde géométrique du polygone. Cependant, rien ne garantit que le point se trouve à l'intérieur du polygone.

L'outil Feature to Point a une option de case à cocher à l'intérieur, qui selon la documentation:

Utilise un emplacement contenu par une fonction d'entrée comme emplacement de point de sortie.

Ce que je voudrais savoir, c'est comment ce point est calculé par ArcGIS Desktop et quelle est sa signification "théorique", si cela a du sens.

mindless.panda
la source
2
Étant donné le flou général de la documentation d'ESRI, vous devrez probablement procéder à une rétro-ingénierie de la procédure en testant. Lorsque j'ai fait cela avec AV 3.x il y a 15 ans, l'algorithme a été (1) trouver le centroïde géométrique puis (2) le déplacer horizontalement jusqu'au point le plus proche à l'intérieur du polygone.
whuber
@whuber - dans ce cas, le point intérieur peut être différent même si le centroïde lui-même est à l'intérieur du polygone, ce qui me fait penser que c'est un calcul complètement différent
mindless.panda
3
Ce message du forum sur le site d'ESRI est intéressant et semble indiquer qu'il s'agit d'une boîte noire.
mindless.panda
En utilisant python dans 9.3.1, j'ai comparé quelques façons possibles de générer un «centroïde». Peut être vu ici ! dans les forums ESRI.
SaultDon
@mindless Dans l'ancien algorithme, si le centroïde était à l'intérieur du polygone, bien sûr il n'était pas déplacé: il coïncide avec le point le plus proche à l'intérieur du polygone. Cependant, le message que vous avez trouvé sur le forum rend cette question sans objet: ESRI a changé l'algorithme. Je ne dirais pas que c'est "complètement différent". Il s'agit peut-être d'un raffinement de l'ancien. Cependant, il ne sera pas facile de procéder à une rétro-ingénierie.
whuber

Réponses:

4

Les algorithmes sont propriétaires mais il y a deux concepts de base ici. Le centroïde utilise un algorithme de centre de gravité (il existe de nombreuses façons de le calculer). La case à cocher "à l'intérieur" calcule un centroïde mais déplace ensuite le point à l'intérieur s'il tombe à l'extérieur, comme cela est souhaitable dans certains cas.

Au niveau d'ArcObjects, ces approches sont définies comme le centroïde et le point d'étiquette . Voir le lien Centroid pour des exemples d'images.

Craig Williams
la source
Bien que cela ne nous dise pas comment le point intérieur est calculé, il nous dit qu'il est synonyme du point d'étiquette.
mindless.panda
1

Nous avons utilisé ArcMap 10.3. Fonction calculée (1) pour pointer avec l'option intérieure (2) fonction pour pointer sans option intérieure (3) centroïde en calculant la géométrie.

Les points de (2) et (3) partagent l'emplacement, parfois ces points sont en dehors du polygone. (1) crée des points à l'intérieur des polygones, comme prévu, pour la plupart identiques aux points de (3) et (2). Parfois, les points de (1) sont différents, même lorsque les points de (3) ou (2) sont à l'intérieur du polygone (!): Nous ne pouvons pas détecter la nécessité d'un décalage spatial pour recevoir un point intérieur.

Les points décalés de (1) ne sont pas strictement décalés dans la direction WE ou NS. Parfois, des points décalés inutilement sont situés à une position qui ne représente certainement pas un point de gravité et sont inattendus.

Le travail scientifique doit être reproductible. Nous ne pouvons pas trouver de documentation pour l'algorithme ni expliquer un décalage, surtout là où il n'est pas nécessaire. Par conséquent, le centroïde de la fonctionnalité ESRI n'est pas applicable.

Christoph
la source