11 votos

Cómo saber si el polígono tiene un agujero con la calculadora de campo en ArcGIS

Algunos 3rd party software no puede manejar polígonos con agujeros (donut polígonos). Para encontrarlos, yo siempre uso de ArcView 3 calculadora de campo, debido a que:

enter image description here

sin embargo, cuando trato de hacer esto en ArcGIS, me sale esto:

enter image description here

Así que la pregunta es cómo hacer a la derecha en ArcGIS.

20voto

John Kramlich Puntos 286

Parte de recuento no dará la respuesta correcta. Usted podría tener un multi-parte polígono con agujeros no. Ver la imagen de abajo para el escenario.

Multi-part polygons

Esto habría sido una simple consulta pre-ArcGIS 10 como usted podría haber llamado de ArcObjects para preguntar si el polígono tenía un agujero, pero ESRI ha eliminado gran parte de este apoyo en la VBScripting medio ambiente hasta el punto de su bastante inútil ahora, un poco de una pena realmente...

De todos modos, usted puede resolver esta pregunta con algo de Python:

def hasHole(geom):
  parts = geom.partCount
  boundaries = geom.boundary().partCount
  if boundaries > parts:
    return 1
  else:
    return 0

En el cuadro de expresión que pondría a la siguiente:

hasHole(!Shape!)

0voto

user45890 Puntos 18

Se refiere a la diferencia entre las dos expresiones? Si sí, se ve como el de abajo es el uso de Python como el analizador, donde como en la parte superior es el uso de VB. Para cambiar esto en el Campo de la Calculadora de la ventana en ArcGIS, sólo tienes que seleccionar VB en lugar de Python y la parte superior de expresión de la que debe trabajar.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X