मैं यह पता लगाने की कोशिश कर रहा हूं कि कई लाइनें दो अलग-अलग जियोडेटाफ्रेम के लिए बहुभुज को कैसे काटती हैं:
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])
यह वही है जो उपरोक्त जियोडेटाफ्रेम दिखता है (एक में एक बहुभुज है और दूसरी में दो लाइनें हैं)। यह मुझे ऐसा लगता है जैसे कि दोनों रेखाएँ बहुभुज को काटती हैं:
हालाँकि, प्रतिच्छेद आउटपुट बहुत भ्रामक है:
print(line_gdf.intersects(poly_gdf))
0 सच
1 झूठा
print(line1.intersects(polygon))
print(line2.intersects(polygon))
सच
सच
geopandas
intersect
विधि मानक को अलग आउटपुट क्यों देती है shapely
?
मैं एनाकोंडा पर पायथन 3.5.3 और जियोपैन्डास 0.2.1 का उपयोग कर रहा हूं।
print(line.intersects(polygon))
एक टाइपो था। मैंने प्रश्न को अद्यतन करने के लिए कहा line1
है कि मैं मूल रूप से किसका मतलब है।
line_gdf.info
पुष्टि करता है कि आपके पास केवल एक ही ज्यामिति स्तंभ है। मैं उलझन में हूं। अगर मुझे कुछ मिला तो मैं फॉलो करूंगा।
print(line.intersects(polygon))
आप एक वैरिएबल का उपयोग कर रहे हैं, जो अब तक मुझे दिखाई नहीं देता है। आपने पहलेline1
औरline2
कोड में परिभाषित किया है । मुझे नहीं पता कि यह सच क्यों होगा।