জিওপ্যান্ডাস ব্যবহার করে বহুভুজ অঞ্চল পাচ্ছেন?


16

একটি প্রদত্ত geopandas GeoDataFrameধারণকারী বহুভুজ একটি সিরিজ, আমি আমার তালিকার প্রতিটি বৈশিষ্ট্যের কিমি বর্গ এলাকা পেতে চাই।

এটি একটি দুর্দান্ত সাধারণ সমস্যা এবং অতীতে সাধারণত প্রস্তাবিত সমাধানটি ব্যবহার করা shapelyএবং pyprojসরাসরি (যেমন এখানে এবং এখানে ) ছিল।

খাঁটিভাবে এটি করার কোনও উপায় আছে কি geopandas?

উত্তর:


17

যদি জিওডাটাফ্রেমের সিআরএস পরিচিত হয় (EPSG: 4326 ইউনিট = ডিগ্রি, এখানে), আপনার স্ক্রিপ্টে আপনাকে শেপলি বা পাইপ্রোজ লাগবে না কারণ জিওপান্ডাস সেগুলি ব্যবহার করে)।

import geopandas as gpd
test = gpd.read_file("test_wgs84.shp")
print test.crs
test.head(2)

এখানে চিত্র বর্ণনা লিখুন

এখন আপনার জিওডাটা ফ্রেমটি অনুলিপি করুন এবং কার্টেসিয়ান সিস্টেমে প্রক্ষেপণটি পরিবর্তন করুন (রেজিমারের উত্তরের মতো EPSG: 3857, ইউনিট = মি)

tost = test.copy()
tost= tost.to_crs({'init': 'epsg:3857'})
print tost.crs
tost.head(2)

এখানে চিত্র বর্ণনা লিখুন

বর্গকিলোমিটারে এখন এলাকা

tost["area"] = tost['geometry'].area/ 10**6
tost.head(2)

এখানে চিত্র বর্ণনা লিখুন

তবে মার্কেটর প্রক্ষেপণের পৃষ্ঠতলগুলি সঠিক নয়, তাই মিটারে অন্যান্য প্রক্ষেপণের সাথে।

tost= tost.to_crs({'init': 'epsg:32633'})
tost["area"] = tost['geometry'].area/ 10**6
tost.head(2)

এখানে চিত্র বর্ণনা লিখুন


আপনার পাঠ্যটি epsg:3857তবে আপনার কোডটি epsg:3395, দুজনের মধ্যে কোনটি সঠিক?
আলেক্সি বিলোগুর

4
.to_crsফাংশন পাশ পরার pyprojকোন পথে। সমান অঞ্চল প্রক্ষেপণের একটি ভাল উদাহরণ: proj4.org/projections/cea.html যা নিম্নলিখিত হিসাবে পাস করা যেতে পারে:.to_crs({'proj':'cea'})
সুইয়ার

কমপক্ষে মার্কিন সেন্সাস ট্র্যাক্টের শেফফাইলগুলির জন্য, আমি নিশ্চিত করতে পারি যে {'proj':'cea'}নিকটতম অঞ্চল অনুমানের উত্পাদন করে।
Polor বিয়ার

4

আমি বিশ্বাস করি। নিম্নলিখিত কাজ করা উচিত:

gdf['geometry'].to_crs({'init': 'epsg:3395'})\
               .map(lambda p: p.area / 10**6)

এটি জ্যামিতিটিকে সমান-অঞ্চল প্রক্ষেপণে রূপান্তরিত করে, shapelyঅঞ্চলটি নিয়ে আসে (এম ^ 2 এ ফিরে আসে) এবং মানচিত্রকে একটি কিলোমিটার ^ 2 এ নিয়ে যায় (এই শেষ পদক্ষেপটি isচ্ছিক)।


এটা কি সঠিক?
আলেক্সি বিলোগুর

1
EPSG 3857 সমান অঞ্চল নয়। en.wikedia.org/wiki/Map_proication#Equal-area
বর্ণমালা

জিনের epsg:3395সিআরএস ফিট করার জন্য আমি এই উত্তরটি পরিবর্তন করেছি । ধন্যবাদ।
আলেক্সি বিলোগুর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.