Search code examples
python-3.xgeopandasmap-projectionsproj

How can I add a projection (i.e., epsg=102001) to a Geopandas DF that's in in esri.extra, NOT proj_def.dat file?


I have a Geopandas dataframe with a CRS of epsg:4326 that I would like to transform to a CRC of espg:102001 which has a proj.4 definition as follows:

proj4_102001 = '+proj=aea +lat_1=50 +lat_2=70 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs' 

In my /usr/share/proj directory, the projection is located in the esri.extra file but not in the proj_def.dat file as you can see from the screen shot below:

Screenshot of 1) the results of the Grep command searching for 102001 and 2)an ls of the /usr/share/proj directory

According to the Geopandas documentation, the correct ways to define the projection is as follows:

world = world.to_crs({'init': 'epsg:3395'})

I have tried "world = world.to_crs({'init': 'esri.extra:102001'})" and a number of other variations but none have worked. I have tried searching the internet for solutions including the Proj.4 documentation, but haven't found any. Please let me know if you know how to do this. I am using Ubuntu (Ubuntu-18.04), Python (3.7.1), Geopandas (0.4.0), and Proj.4 (5.2.0).

Thank you in advance.

Tom


Solution

  • You should be able to provide the full projection string in the to_crs function.

    world = world.to_crs('+proj=aea +lat_1=50 +lat_2=70 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs')