Shapely: ドキュメント:STRTreeドキュメントの明確化

作成日 2018年07月30日  ·  4コメント  ·  ソース: Toblerity/Shapely

STRTreeのドキュメントを(少し)改善したいと思います。

http://shapely.readthedocs.io/en/stable/manual.html#str-packed-r-treeによると

Shapelyは、Sort-Tile-Recursiveアルゴリズムを使用してパックされたクエリのみのGEOSRツリーへのインターフェイスを提供します。 ジオメトリオブジェクトのリストをSTRtreeコンストラクタに渡して、別のジオメトリオブジェクトでクエリできるRツリーを作成します。

次に、この例は、Geometryオブジェクトを返す2つのクエリを示しています。

rtreeモジュールと同じようにSTRTreeを使用できることを望んでいました。ジオメトリを(Fiona)機能に一致させるためにインデックス番号を渡すのですが、そうではないようです。 STRTreeは、Geometryオブジェクトのリストを取得し、クエリで、認識している交差するGeometryオブジェクトを返します。 順序やインデックスはありません。 あれは正しいですか?

もしそうなら、私はクエリメソッドが返すものについて1つの文を追加するだけです。 クラスの説明(例:Point)の場合、属性は散文で表示されますが、これで新しい.. method::エントリを取得する必要がある場合は、そのように言ってください。 :)

documentation

最も参考になるコメント

全てのコメント4件

@kannes現時点では、何が格納されるかについては柔軟ではありませんが、ジオメトリオブジェクトとそのすべての属性を格納します。 これらのジオメトリオブジェクトは属性を__dict__メンバーに格納するため、作成後に属性をジオメトリオブジェクトに追加できます( geom.myattrgeom.__dict__['myattr']として読み取られます)。 Shapelyのこの動作をすぐに変更する予定はないため、次のコードは、少なくとも架空のShapely2.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'

#615にはいくつかの関連する議論があります。

ありがとう、私はこれを更新します

終わり!

[編集:めちゃくちゃにされたgitの混乱を削除]

ジオメトリの例とクエリジオメトリのグラフィック表現は、エクステントが交差するジオメトリを返す方法をさらに示すのに役立ちます。

元のオブジェクトの変更を避けるために、ディープコピーの使用を提案する必要があるかどうかはわかりません。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

romainfontaine picture romainfontaine  ·  5コメント

FuriousRococo picture FuriousRococo  ·  5コメント

ispmarin picture ispmarin  ·  3コメント

mikedh picture mikedh  ·  6コメント

dopplershift picture dopplershift  ·  3コメント