1 votos

¿Cómo es que arcpy.Clip_analysis() es tan rápido frente a implementaciones que no son de arcpy?

Estoy utilizando una versión de la solución 2 de la respuesta seleccionada aquí para construir un nuevo shapefile de todos los puntos que caen dentro de un objeto poligonal dado (es decir, un clip).

Cuando se ejecuta contra 27K puntos, tarda unos 9 minutos. En arcpy tarda menos de 10 segundos.

No puedo encontrar ninguna documentación sobre el Clip_analysis() (¿es propietario?) así que tengo curiosidad por saber cómo puede ejecutar las comprobaciones de 27K tan rápido?

¿Es multiproceso? ¿Está llamando a algún tipo de map() en la iterable de puntos?

3voto

UnkwnTech Puntos 21942

Tengo entendido que los algoritmos de intersección de polígonos utilizados por la herramienta Clip están escritos a un nivel mucho más bajo que el de Python.

La herramienta Clip está disponible dentro del paquete del sitio ArcPy a través de una envoltura de Python.

2voto

Tony Bolero Puntos 118

Falta de un índice espacial. Estás evaluando cada punto para la intersección si es probable que sea un candidato o no.

Si quieres hacerlo en Python, debes usar algo como Rtree para eliminar rápidamente los puntos que podrían intersecar su polígono de recorte. Para un índice espacial puro de Python puedes probar PyQuadTree .

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