Shapely: docs : clarification de la documentation de STRTree

Créé le 30 juil. 2018  ·  4Commentaires  ·  Source: Toblerity/Shapely

Je voudrais (légèrement) améliorer la documentation pour le STRTree.

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

Shapely fournit une interface à l'arborescence GEOS R-requête uniquement emballée à l'aide de l'algorithme Sort-Tile-Recursive. Transmettez une liste d'objets géométriques au constructeur STRtree pour créer un arbre R que vous pouvez interroger avec un autre objet géométrique.

L'exemple montre ensuite deux requêtes qui renvoient des objets Geometry.

J'espérais pouvoir utiliser STRTree comme le module rtree : transmettre des numéros d'index pour pouvoir faire correspondre les géométries aux entités (Fiona), mais cela ne semble pas être le cas. STRTree prend simplement une liste d'objets Geometry et, sur une requête, renvoie les objets Geometry qui se croisent et dont il a connaissance. Il n'y a ni ordre ni indices. Est-ce exact?

Si tel est le cas, j'ajouterais simplement une phrase sur ce que la méthode de requête renvoie. Pour les descriptions de classe (par exemple Point), les attributs sont présentés en prose, mais si cela doit obtenir une nouvelle entrée .. method:: , dites-le simplement. :)

documentation

Commentaire le plus utile

Tous les 4 commentaires

@kannes, nous ne sommes pas flexibles pour le moment sur ce qui est stocké, mais nous stockons l'objet géométrique ainsi que tous ses attributs. Vous pouvez ajouter des attributs à un objet géométrique après sa création car ces objets géométriques stockent leurs attributs dans un membre __dict__ ( geom.myattr est lu comme geom.__dict__['myattr'] ). Nous n'allons pas changer ce comportement de Shapely de si tôt, donc le code suivant devrait fonctionner au moins jusqu'à un hypothétique 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'

Il y a une discussion connexe au #615.

Merci, je vais mettre à jour ça

Fait!

[edit : supprimé foutu git mess]

Une représentation graphique des géométries d'exemple et de la géométrie de requête serait formidable pour montrer davantage comment elle renvoie des géométries dont les étendues se croisent.

Je ne sais pas si je devrais suggérer d'utiliser deepcopy pour éviter de faire muter les objets d'origine.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

sgillies picture sgillies  ·  5Commentaires

ispmarin picture ispmarin  ·  3Commentaires

FuriousRococo picture FuriousRococo  ·  5Commentaires

LostFan123 picture LostFan123  ·  5Commentaires

dopplershift picture dopplershift  ·  3Commentaires