Tengo ArcGIS Desktop 10.2 y mi desafío es cómo extraer el número de vértices en cada polígono para todas las entidades como esta:
Tengo muchas parcelas en mi clase de entidad y quiero extraer el número de vértices para todas las entidades por separado, luego quiero mostrar las coordenadas XY para todos los vértices.
para obtener más información, solo quiero convertir los vértices de cada polígono y mostrar el número de cada vértice mirando desde 1 número, así que si tengo un polígono y tiene 4 vértices, quiero convertir el polígono en vértices, mostraré un número de vértices como este (1, 2, 3, 4, 5), luego se muestra xy para cada vértice, creo que la verdadera identificación del desafío, cómo convertir todos los polígonos en vértices y hacer que cada número de vértices comience desde 1 número.
Respuestas:
El siguiente código combina las otras respuestas y agrega un poco para numerar los vértices.
Los puntos están etiquetados en orden de dibujo. El último punto (debajo del primero) no tendrá etiqueta y puede eliminarse seleccionando todos los puntos que tengan valores "DRAW_ORDER" nulos o únicos, si no son necesarios para la reconstrucción. Se puede utilizar una consulta de definición para eliminar los puntos superpuestos de la pantalla.
Los datos XY están presentes, pero lo dejaré a sus deseos de etiquetado / visualización. Vea la respuesta de Aaron sobre agregar un campo XY para etiquetar.
También estaba jugando con FeatureClass en una matriz numpy, pero terminé esto primero.
fuente
La forma más fácil de hacer esto es agregar un nuevo campo entero a la tabla de atributos de la capa de parcelas. Luego, ejecute la calculadora de campo con la siguiente expresión:
El
!Shape!.pointCount
devuelve el número total de vértices en la función. Sin embargo, el primer vértice de cada parte se repite al final, para cerrar la característica. Para manejar esto, reste un vértice para cada parte usando-!Shape!.partCount
.Tenga en cuenta que tendrá que usar el analizador Python para que esta expresión funcione.
fuente
SearchCursor
método en la respuesta de Aaron o una herramienta de geoprocesamiento como Vertices a puntos de entidades (aunque esta herramienta requiere una licencia ArcGIS for Desktop Advanced).dmahr proporcionó una buena solución para contar vértices. Para una forma no programática de etiquetar cada punto con los cables XY, intente el siguiente flujo de trabajo:
Calcule el campo "XY" en la calculadora de campo, donde XY =
str (! x!) + "," + str (! y!)
Características de la etiqueta. Haga clic con el botón derecho en capa> Etiquetas> Campo de etiqueta: XY
Esto produce los siguientes resultados:
También puede realizar estas acciones mediante programación mediante
explode_to_points
un cursor de búsqueda (como inicio).fuente
Si uno no quiere calcular un nuevo campo y solo quiere obtener un número de vértices por capa muy rápidamente (para fines de generalización, como al exponer los conjuntos de datos en la web), entonces es posible crear una herramienta de script personalizada dentro de un caja de herramientas o exponer el código como un complemento de Python.
Código de herramienta de script personalizado:
Código de complemento de Python (seleccione una capa en la tabla de contenido para contar los vértices):
fuente