Tôi đang cố gắng tìm nơi nhiều đường cắt nhau một đa giác cho hai geodataframes khác nhau:
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])
Đây là những gì các geodataframes ở trên trông giống như (một cái có đa giác và cái kia có hai dòng). Dường như với tôi như thể cả hai dòng giao nhau với đa giác:
Tuy nhiên, đầu ra giao nhau rất khó hiểu:
print(line_gdf.intersects(poly_gdf))
0 Đúng
1 sai
print(line1.intersects(polygon))
print(line2.intersects(polygon))
Thật
Thật
Tại sao geopandas
intersect
phương thức đưa ra một đầu ra khác với tiêu chuẩn shapely
?
Tôi đang sử dụng Python 3.5.3 và Geopandas 0.2.1 tất cả trên Anaconda.
print(line.intersects(polygon))
là một lỗi đánh máy. Tôi đã cập nhật câu hỏi để đề cập đến line1
ý nghĩa ban đầu của tôi.
line_gdf.info
xác nhận rằng bạn chỉ có một cột hình học duy nhất. Tôi bối rối. Tôi sẽ theo dõi nếu tôi tìm thấy bất cứ điều gì.
print(line.intersects(polygon))
bạn truy cập vào một biến không được xác định xa như tôi có thể thấy. Bạn đã xác địnhline1
vàline2
sớm hơn trong mã. Tôi không biết tại sao điều đó sẽ trở lại đúng.