複数のラインが2つの異なるジオデータフレームのポリゴンと交差する場所を見つけようとしています。
from shapely.geometry import Polygon, LineString
import geopandas as gpd
polygon = Polygon([(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)])
line1 = LineString([(0.5, 0.5), (0.7, 0.7)])
line2 = LineString([(0.9, 0.9), (0.2, 0.6)])
poly_gdf = gpd.GeoDataFrame(geometry=[polygon])
line_gdf = gpd.GeoDataFrame(geometry=[line1, line2])
これは、上記のジオデータフレームは次のようになります(1つにはポリゴンがあり、もう1つには2つの線があります)。両方の線がポリゴンと交差しているように見えます。
ただし、交差出力は非常に混乱します。
print(line_gdf.intersects(poly_gdf))
0真
1誤り
print(line1.intersects(polygon))
print(line2.intersects(polygon))
本当
本当
なぜgeopandas
intersect
メソッドは標準のshapely
ものに異なる出力を与えるのですか?
AnacondaでPython 3.5.3とGeopandas 0.2.1をすべて使用しています。
print(line.intersects(polygon))
はタイプミスでした。質問を更新して、line1
私が最初に何を意味していたかを示します。
line_gdf.info
ジオメトリ列が1つしかないことを確認します。私は困惑しています。何か見つけたらフォローアップします。
print(line.intersects(polygon))
あなたが私が見る限りでは定義されていない変数にアクセスしていると言うとき。コードで定義しline1
、それline2
以前に。それがTrueを返す理由はわかりません。