আমি শেপলি / জিওপান্ডাস ব্যবহার করে একে অপরের কাছে দুটি লাইন স্ন্যাপ করার চেষ্টা করছি তবে স্ন্যাপিংয়ের ফলাফলটি খুব অদ্ভুত। আমি চেষ্টা করেছিলাম :
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")
এবং এই ফলাফল পেয়েছে:
lines1 = লাল লাইন
লাইন 2 = কালো রেখা
স্নাপিংয়ের পরে (সহনশীলতার হিসাবে 14 দিয়ে): নীল রেখাগুলি হ'ল स्न্পিংয়ের ফলাফল
এই ক্ষেত্রে লাইনগুলি সঠিকভাবে বিচ্ছিন্ন হয়
আর একটি উদাহরণ যেখানে এটি প্রত্যাশার মতো কার্যকর হয়নি: (ছোড়ার আগে)
এবং snapping পরে ফলাফল এখানে। কেবল একটি অংশ কালো রেখায় (দক্ষিণ দিকে) ছড়িয়ে পড়ে। যদিও মূল লাইনগুলি বেশ কাছাকাছি এবং 14 টি ফেটের মধ্যে রয়েছে
যদি আমি সহনশীলতা বৃদ্ধি করি তবে আমি একটি ভুল আউটপুট পেতে পারি, এরকম কিছু (20 টি সংক্ষেপের সহনশীলতা হিসাবে সংজ্ঞায়িত করার পরে, সবুজ রেখার ফলাফল):
কেন स्न্পিং সঠিকভাবে কাজ করছে না সে সম্পর্কে কোনও ধারণা? এই সমস্যাটি কীভাবে সমাধান করবেন সে সম্পর্কে কোনও পরামর্শ?