Sto cercando di trovare dove più linee intersecano un poligono per due diversi geodataframe:
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])
Ecco come appaiono i suddetti geodataframe (uno ha un poligono e l'altro ha due linee). Mi sembra che entrambe le linee intersecino il poligono:
Tuttavia, l'output dell'intersezione è molto confuso:
print(line_gdf.intersects(poly_gdf))
0 Vero
1 falso
print(line1.intersects(polygon))
print(line2.intersects(polygon))
Vero
Vero
Perché il geopandas
intersect
metodo fornisce un output diverso da quello standard shapely
?
Sto usando Python 3.5.3 e Geopandas 0.2.1 tutti su Anaconda.
print(line.intersects(polygon))
era un errore di battitura. Ho aggiornato la domanda per fare riferimento a line1
ciò che intendevo inizialmente.
line_gdf.info
conferma che hai una sola colonna geometrica. Sono perplesso. Ti seguirò se trovo qualcosa.
print(line.intersects(polygon))
che accedi a una variabile che non è definita per quanto posso vedere. Hai definitoline1
eline2
prima nel codice. Non so perché ciò restituisca True.