Birden çok çizginin iki farklı coğrafi veri çerçevesi için bir çokgenin kesiştiği yeri bulmaya çalışıyorum:
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])
Yukarıdaki geodataframes böyle görünüyor (biri çokgene diğeri iki çizgiye sahip). Bana her iki çizginin de poligonla kesiştiği anlaşılıyor:
Ancak, kesişen çıktı çok kafa karıştırıcı:
print(line_gdf.intersects(poly_gdf))
0 Gerçek
1 Yanlış
print(line1.intersects(polygon))
print(line2.intersects(polygon))
Doğru
Doğru
geopandas
intersect
Yöntem neden standart olana farklı bir çıktı veriyor shapely
?
Anaconda'da Python 3.5.3 ve Geopandas 0.2.1 kullanıyorum.
print(line.intersects(polygon))
bir yazım hatasıydı. line1
Asıl ne demek istediğimi belirtmek için soruyu güncelledim .
line_gdf.info
yalnızca tek bir geometri sütununuz olduğunu onaylar. Şoktayım. Bir şey bulursam takip edeceğim.
print(line.intersects(polygon))
Sen erişim bildiğim kadarıyla gördüğünüz gibi tanımlı değil değişken. Sen tanımladığınızline1
veline2
kod önceki. Bunun neden True'ya döneceğini bilmiyorum.