Saya mencoba menemukan di mana beberapa garis berpotongan poligon untuk dua geodataframe yang berbeda:
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])
Beginilah bentuk geodataframe di atas (satu memiliki poligon dan lainnya memiliki dua baris). Tampaknya bagi saya seolah kedua garis memotong poligon:
Namun, output intersect sangat membingungkan:
print(line_gdf.intersects(poly_gdf))
0 Benar
1 salah
print(line1.intersects(polygon))
print(line2.intersects(polygon))
Benar
Benar
Mengapa geopandas
intersect
metode ini memberikan output yang berbeda dengan yang standar shapely
?
Saya menggunakan Python 3.5.3 dan Geopandas 0.2.1 semua di Anaconda.
print(line.intersects(polygon))
salah ketik. Saya telah memperbarui pertanyaan untuk merujuk pada line1
apa yang awalnya saya maksudkan.
line_gdf.info
menegaskan bahwa Anda hanya memiliki satu kolom geometri. Saya bingung. Saya akan menindaklanjuti jika saya menemukan sesuatu.
print(line.intersects(polygon))
Anda mengakses variabel yang tidak didefinisikan sejauh yang saya bisa lihat. Anda telah mendefinisikanline1
danline2
sebelumnya dalam kode. Saya tidak tahu mengapa itu akan mengembalikan Benar.