यदि GeoDataFrame के crs को जाना जाता है (EPSG: 4326 यूनिट = डिग्री, यहाँ), तो आपको अपनी स्क्रिप्ट में Shapely, और pyproj की आवश्यकता नहीं है क्योंकि GeoPandas उनका उपयोग करता है)।
import geopandas as gpd
test = gpd.read_file("test_wgs84.shp")
print test.crs
test.head(2)
अब अपने GeoDataFrame को कॉपी करें और प्रोजेक्शन सिस्टम में प्रोजेक्शन को बदलें (EPSG: 3857, unit = m जैसा कि ResMar के उत्तर में है)
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
, दोनों में से कौन सही है?