4 votos

¿Cómo determinar si todos los puntos de un mapa son idénticos en arcpy?

Mi objetivo final es automatizar los cálculos de densidad del kernel para un gran corpus de datos de puntos; sin embargo, si todos los puntos son idénticos (por ejemplo, si hay 7 puntos apilados unos encima de otros porque tienen los mismos valores long/lat), el función de densidad del núcleo en arcpy no funciona. Dará como resultado el siguiente error:

"Error 010246: All input points are identical A valid window must be specified"

Como esto será un proceso automatizado, necesito una manera de comprobar los puntos en la entrada actual para estar seguro de que no son todos iguales usando python/arcpy. ¿Hay alguna forma de hacerlo?

EDITAR : He especificado un tamaño de cuadrícula y una extensión, por lo que muchos de los errores se han solucionado; sin embargo, los puntos idénticos siguen dándome el "debe especificarse una ventana válida". He intentado utilizar la función FindIdentical para buscar puntos idénticos, pero esto devuelve un archivo DBF, que no puedo leer en el script. ¿Hay alguna manera de leer un DBF fácilmente en python, o puedo encontrar si todo puntos son idénticos de otra manera?

6voto

Hameno Puntos 129

Puede utilizar Buscar idénticos (seleccionando el campo de la forma) y Borrar Idéntico . Ambas herramientas se pueden programar en python.

1voto

Nate Parsons Puntos 120

¿Obtención de la extensión de cada polígono en el shapefile utilizando ArcPy?

Espero que el cálculo de la extensión pueda ayudar...

mi suposición aquí: incluso 7 puntos tienen la misma lat/long, pero el octavo punto es diferente, entonces la función de densidad del núcleo funcionará.

0voto

Tim C Puntos 25946

¿Pensó en buscar encontrar y eliminar características duplicadas si el problema es únicamente de características idénticas? Hay muchos scripts de python para esto. Algunos son : 1 , 2 , 3 .

0voto

JamesArmes Puntos 155

Bueno, he encontrado una manera decente de encontrar si todos los puntos son idénticos que se adapte a mis necesidades. Utilicé la función getExtent() del Clase de capa para encontrar la extensión de los puntos en la capa actual del conjunto de datos. Si la extensión XMin == XMax y YMin == YMax Esto significa que los puntos de datos son todos iguales, ya que la extensión es un único punto.

Al insertar un cheque con un simple if pude elegir no realizar el cálculo de la densidad del núcleo si todos los puntos eran iguales. Si los puntos no son iguales, puedo establecer correctamente una extensión y un tamaño de celda para cada conjunto de datos, y el cálculo de la densidad del núcleo avanza sin problemas.

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