0

2 つのシェープファイルがあります。1 つは道路網を構成する多くの線を含み、もう 1 つは多くの GPS ポイントを含みます。

これまでのところ、 https: //gis.stackexchange.com/a/128210/52590 にあるコードを使用して、Shapely と Fiona を使用して両方のシェープファイルを開き、intersection() を実行することができました。

交点を取得するコードのコピーを次に示します。

from shapely.geometry import shape, MultiLineString
import fiona

Multilines = MultiLineString([shape(line['geometry']) for line in fiona.open("shapefiles/edges.shp")])
Poly = shape(fiona.open("shapefiles/testBuffer.shp").next()['geometry'])
intersecciones = Multilines.intersection(Poly)

これは、「intersecciones」を印刷すると次のようになります。

> MULTILINESTRING ((339395.1489003573 6295646.564306445,
> 339510.1820952367 6295721.782758819), (339391.2927481248 6295686.99659219, 339410.0625 6295699), (339404.4651918385 6295630.405294137, 339520.18020253 6295708.663279793))

したがって、これは、ライン シェープファイルとポリゴン シェープファイルの最初のポリゴンの間に 3 つの交点があることを意味します。

私が必要なのは、ポリゴンと交差するラインシェープファイルのすべてのラインから、それらが交差する正確なポイントに加えて、2 つの属性 (「Nombre」と「Sentido」) を取得することです。これにより、ポリゴンの中心からの距離を取得できます。ポリゴンから交点まで。

したがって、私の質問は、Shapely またはその他の Python ライブラリを使用して、これらの属性を取得する方法があるかどうかです。また、各ポリゴンを繰り返し処理してデータを保存する最良の方法は何ですか? 交差する線と距離の属性を持つすべてのポリゴンを含む辞書を考えています。最後に、交差点を見つけるためのより効率的な方法はありますか? 1 つのポリゴンを処理するのに約 1 分かかりますが、将来的にはもっと速くする必要があるでしょう。

不足している情報がある場合は、質問を編集できるように教えてください。

よろしくお願いします、フェリペ。

4

2 に答える 2