मैं Shapely / Geopandas का उपयोग करते हुए एक दूसरे को दो लाइनें खींचने की कोशिश कर रहा हूं, लेकिन तड़क का परिणाम बहुत ही अजीब है। मैंने कोशिश की :
import geopandas as gpd
from shapely.geometry import *
from shapely.ops import snap
lines1 = gpd.GeoDataFrame.from_file('lines1.shp')
lines1 = lines1.to_crs({'init': 'epsg:2227'})
lines2 = gpd.GeoDataFrame.from_file('lines2.shp')
lines2 = lines2.to_crs({'init': 'epsg:2227'})
res = lines1
lines2_union = lines2.geometry.unary_union
res.geometry = res.geometry.apply(lambda x: snap(x, lines2_union, 14))
res.to_file('result.shp', driver="ESRI Shapefile")
और यह परिणाम मिला:
लाइनों 1 = लाल लाइनें
लाइनें 2 = काली रेखाएँ
तड़क के बाद (एक सहिष्णुता के रूप में 14 के साथ): नीली रेखाएं तड़क के परिणाम हैं
इस मामले में लाइनें सही ढंग से तड़क रही हैं
एक और उदाहरण जहां यह उम्मीद के मुताबिक काम नहीं किया: (तड़कने से पहले)
और यहाँ तड़क के बाद परिणाम है। केवल एक भाग काली रेखा (दक्षिण की ओर) में तड़क जाता है। हालांकि मूल पंक्तियां बहुत करीब हैं और 14 जाल के भीतर हैं
यदि मैं सहनशीलता बढ़ाता हूं तो मुझे एक गलत आउटपुट मिलता है, कुछ ऐसा है (स्नैपिंग की सहिष्णुता के रूप में 20 को परिभाषित करने के बाद, ग्रीन लाइन परिणाम है):
तड़क क्यों ठीक से काम नहीं कर रहा है पर कोई विचार? इस समस्या को हल करने के बारे में कोई सुझाव?