2011-05-19 24 views
5

Todo,Quadtree Python puro Implementación

Hay algunos ejemplos de la aplicación de un árbol de cuatro ramas usando Python, pero mi pregunta es, ¿alguien sabe de una clase escrito en Python puro como en un solo archivo .py que puede fácilmente incluir en mi proyecto? Los tres paquetes más populares se enumeran aquí Are any of these quad-tree libraries any good? pero no he tenido suerte con su uso debido a todas las dependencias necesarias para ejecutarlos. Realmente estoy buscando algo ligero y relativamente simple de usar. Me gustaría llamar al guión pasando los límites de todo el mundo y trabajando desde allí. myMethod((-180,-90,180,90))

Gracias, Adam

+2

¿Qué hay de la segunda biblioteca en la pregunta a la que vinculó (http://stackoverflow.com/questions/2298517/are-any-of-these-quad-tree-libraries-any- good)? Las dependencias son triviales a ninguna. – NPE

Respuesta

1

Tome un vistazo a Rect. Necesitarás 2 archivos. Puedes unirlos en uno.

+0

Las páginas wiki (y de hecho todo el proyecto) en code.google.com para el paquete [Rect] (http://pypi.python.org/pypi/Rect) parecen haber desaparecido. ¿Alguien sabe de un enlace actualizado para la información faltante? – Inactivist

+1

Eso es desafortunado. El tar.gz todavía está disponible en PyPi. – moraes

3

PyQuadTree es un módulo bastante liviano (que construí basado en el código de otra persona). Está escrito en Python puro, no tiene dependencias y no requiere instalación ni compilación en absoluto. Es un archivo .py único que se puede incluir fácilmente como parte de un proyecto más grande, que suena como lo que se pregunta aquí.

También tiene documentación y es compatible con Python 2x y 3x.

+0

No tengo experiencia con Quadtrees, pero tengo que implementarlo para un proyecto de análisis de trayectoria. Si su módulo puede ser útil con el análisis de trayectorias (datos de trayectoria que consiste en una secuencia de coordenadas x, y) – Liza

+0

, hágamelo saber amablemente. Si por trayectoria solo quiere decir una geometría de línea que representa movimiento, eso funciona bien. Pero a la lib no le importa el tipo de geometría, todo lo que necesita es un cuadro delimitador (xmin, ymin, xmax, ymax). De modo que puede insertar muchas bboxes de trayectoria diferentes en el árbol, y luego puede consultar el árbol para ver rápidamente qué trayectorias se encuentran en un área. Ve al repositorio de github vinculado en la entrada del blog para leer específicamente cómo usarlo. –

+0

Muchas gracias por responder. Por favor, eche un vistazo aquí https://stackoverflow.com/questions/44147628/implementing-quadtree-on-a-data-frame Estoy tratando de implementar esto en un marco de datos, también no estoy seguro de cómo consultar el árbol para saber qué trayectorias pertenecen a qué cuadrantes. Incluso un poco de ayuda será muy útil. Gracias. – Liza

Cuestiones relacionadas