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?
Respuestas
¿Demasiados anuncios?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:
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:
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)
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:
- Utilice Get Count para contar cuántos polígonos hay en un shapefile
- Ejecutar Multipart to Singlepart en el shapefile
- 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