Calcul de la largeur du polygone dans ArcGIS Desktop?


10

Existe-t-il un calcul facile de la largeur d'un polygone à l'aide d'ArcGIS 9.3.1 ou 10?

J'ai trouvé des scripts pour 9.1 mais ils ne fonctionneront pas. Je peux utiliser la largeur au point le plus large, au point le plus étroit ou à une moyenne. Il n'a pas besoin d'être exact mais doit être quelque peu automatisé car j'ai quelques centaines à calculer.


1
Au cas où quelqu'un d'autre viendrait chercher une réponse des années plus tard: gis.stackexchange.com/a/181801/10919
Tom

Réponses:


6

La largeur du polygone peut être obtenue en utilisant un rectangle de délimitation de zone minimale. Ce lien ... conteneurs de délimitation ... a fournit une solution. Calculez cela comme le minimum de la "longueur" et de la "largeur" ​​du rectangle. Il est disponible à tous les niveaux de licence pour ArcMap (mis à jour en janvier 2016)


Cette réponse a 5 ans. Y a-t-il eu des mises à jour d'ArcGIS ou d'autres méthodes pour ce faire depuis la publication de cette réponse?
dassouki

1
@Dassouki Dan Patterson (qui a posté ailleurs dans ce fil) codait ce type de solutions depuis des années. Il est le premier endroit où j'irais pour rechercher des mises à jour et de nouvelles solutions dans ArcGIS.
whuber

@whuber a mis à jour le lien ... merci pour l'

1

Ce n'est qu'une réponse partielle à votre question, mais cela peut être un pointeur dans la bonne direction. Pour clarifier, cela trouvera la largeur de l'enveloppe polygonale au point le plus large. Ajoutez un attribut avec le type de champ double à votre entité. Ouvrez la calculatrice de champ, puis cliquez sur Avancé. Collez ce code dans le bloc de code et définissez le champ que vous avez créé égal à Ouput

Dim Output As Double
Dim pPoly as IPolygon
Set pPoly = [Shape]
Dim pEnve as IEnvelope
Set pEnve = pPoly.Envelope
Output = pEnve.Width

Fonctionne en 9.3.1. Publié à l'origine ici .


Cela semble être la largeur de l'enveloppe: cela ne semble pas être ce que le PO demande.
whuber

J'ai modifié ma réponse pour clarifier cela, merci de l'avoir signalé. La question initiale indiquait qu'elle n'avait pas besoin d'être exacte, donc la largeur de l'enveloppe peut être suffisante.
Zachary

1
Malheureusement, la largeur de l'enveloppe est à peu près inexacte . Par exemple, lorsque l'entité est alignée avec sa largeur dans une direction verticale, la "largeur" ​​de l'enveloppe estime en fait la longueur de l' entité . Votre idée d'exploiter la largeur de l'enveloppe a été utilisée dans un code qui fait systématiquement pivoter l'entité dans la recherche de la largeur minimale de l'enveloppe: dans de nombreux cas, cela a une prétention légitime d'être une estimation raisonnable de la largeur. Je crois que Dan Patterson a une contribution de cette nature sur ArcScripts.
whuber
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.