Estou tentando descobrir onde várias linhas cruzam um polígono para dois geodataframes diferentes:
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])
É assim que os quadros de geodata acima se parecem (um com um polígono e o outro com duas linhas). Parece-me que as duas linhas cruzam o polígono:
No entanto, a saída de interseção é muito confusa:
print(line_gdf.intersects(poly_gdf))
0 Verdadeiro
1 Falso
print(line1.intersects(polygon))
print(line2.intersects(polygon))
Verdade
Verdade
Por que o geopandas intersectmétodo fornece uma saída diferente da padrão shapely?
Estou usando o Python 3.5.3 e o Geopandas 0.2.1 no Anaconda.
print(line.intersects(polygon))foi um erro de digitação. Atualizei a pergunta para me referir a line1qual foi o que eu originalmente quis dizer.
line_gdf.infoconfirma que você possui apenas uma coluna geométrica única. Estou perplexo. Vou acompanhar se encontrar alguma coisa.

print(line.intersects(polygon))que está acessando uma variável que não está definida, tanto quanto eu posso ver. Você definiuline1eline2anteriormente no código. Não sei por que isso retornaria True.