6 votos

¿Cómo determinar si un shapefile poligonal es multiparte o monoparte?

El diálogo de propiedades de ArcMap no indica si un shapefile contiene polígonos multiparte o monoparte. ¿Existe alguna otra forma de identificar si un archivo shape poligonal (o cualquier clase de característica) contiene polígonos de una o varias partes?

6voto

FelixIP Puntos 4035

Para ArcGIS v. 10.1 y anteriores crearía un nuevo campo de tipo entero y lo rellenaría utilizando:

 !Shape!.partCount

Observe que el analizador sintáctico está establecido en Python.

Es mucho más rápido con la herramienta Añadir atributos de geometría disponible en las nuevas versiones de ArcGIS. La herramienta crea los campos necesarios para usted. Este es el aspecto de los atributos que se ofrecen para la entrada de puntos de varias partes: enter image description here

He encontrado esta herramienta muy útil en general, por ejemplo, ver la opción seleccionada abajo en la lista disponible para la entrada de polígonos:

enter image description here

3voto

Dave Moore Puntos 1633

Aquí hay un pequeño python script que puedes ejecutar en ArcMap, sólo tienes que poner el nombre de la capa en la parte superior del script y ejecutar. Le dirá qué características son multipartes.

fc_name = r"NAME"
multiparts = []
nonetype = []
row_count = 0

for row in arcpy.da.SearchCursor(fc_name, ["OID@", "SHAPE@"]):
    row_count += 1
    if row[1] is None:
        print "{0} has issue with NoneType".format(row[0])
        nonetype.append(row[0])
    elif row[1].isMultipart is True:
        multiparts.append(row[0])

print "Nonetypes (Zero length typically):"
print nonetype
print "Multi-part:"
print multiparts
print "There are {0} multi-part feature(s) in {1} with {2} features".format(len(multiparts), fc_name, row_count)

0voto

UnkwnTech Puntos 21942

Con una licencia de Data Reviewer puede utilizar el Comprobación de polígono multiparte :

La comprobación de polígono multiparte encuentra características de polígono multiparte y los escribe en la tabla Reviewer como registros. La comprobación puede ejecutarse en una clase de característica completa, un subtipo o un conjunto de características seleccionadas mediante una consulta SQL.

Sin esa licencia la forma en que lo haría es:

  1. Utilice Get Count para contar cuántos polígonos hay en un shapefile
  2. Ejecutar Multipart to Singlepart en el shapefile
  3. Utilice Get Count para contar cuántos polígonos hay en la salida de Multipart a Singlepart

Si los dos recuentos son iguales, entonces su archivo shape no tenía polígonos multiparte. Si hay más en la salida de Multipart a Singlepart entonces su shapefile tenía algunos multiparts

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