Shapely: docs: Aclaración de la documentación de STRtree

Creado en 30 jul. 2018  ·  4Comentarios  ·  Fuente: Toblerity/Shapely

Me gustaría (ligeramente) mejorar la documentación del STRTree.

http://shapely.readthedocs.io/en/stable/manual.html#str -packed-r-tree dice

Shapely proporciona una interfaz para el árbol R de GEOS de solo consulta empaquetado mediante el algoritmo Sort-Tile-Recursive. Pase una lista de objetos geométricos al constructor STRtree para crear un árbol R que pueda consultar con otro objeto geométrico.

A continuación, el ejemplo muestra dos consultas que devuelven objetos Geometry.

Esperaba poder usar STRTree como el módulo rtree: pasar números de índice para poder hacer coincidir las geometrías con las características (Fiona), pero ese parece no ser el caso. STRTree simplemente toma una lista de objetos Geometry y, en una consulta, devuelve los objetos Geometry intersecantes que conoce. No hay orden ni índices. ¿Es eso correcto?

Si es así, solo agregaría una oración sobre lo que devuelve el método de consulta. Para las descripciones de clase (p. ej., Punto), los atributos se presentan en prosa, pero si esto debería generar una nueva entrada .. method:: , simplemente dígalo. :)

documentation

Comentario más útil

Todos 4 comentarios

@kannes no somos flexibles en este momento sobre lo que se almacena, pero almacenamos el objeto de geometría, así como todos sus atributos. Puede agregar atributos a un objeto de geometría después de que se haya creado porque estos objetos de geometría almacenan sus atributos en un miembro __dict__ ( geom.myattr se lee como geom.__dict__['myattr'] ). No vamos a cambiar este comportamiento de Shapely en el corto plazo, por lo que el siguiente código debería funcionar al menos hasta un hipotético Shapely 2.0:

>>> from shapely.strtree import STRtree
>>> from shapely.geometry import Point
>>> pt = Point(0.0, 0.0)
>>> pt.name = 'foo'
>>> tree = STRtree([pt])
>>> tree.query(Point(1.0, 1.0).buffer(2.0))
[<shapely.geometry.point.Point object at 0x109254208>]
>>> results = tree.query(Point(1.0, 1.0).buffer(2.0))
>>> respt = results[0]
>>> respt
<shapely.geometry.point.Point object at 0x109254208>
>>> respt.name
'foo'

Hay una discusión relacionada en el #615.

Gracias, actualizaré esto

¡Hecho!

[editar: eliminado el desorden de git]

Una representación gráfica de las geometrías de ejemplo y la geometría de consulta sería excelente para mostrar cómo devuelve geometrías cuyas extensiones se cruzan.

No estoy seguro si debería sugerir usar deepcopy para evitar mutar los objetos originales.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

benediktbrandt picture benediktbrandt  ·  3Comentarios

MarkWieczorek picture MarkWieczorek  ·  4Comentarios

mromanie picture mromanie  ·  3Comentarios

ispmarin picture ispmarin  ·  3Comentarios

dopplershift picture dopplershift  ·  3Comentarios