I have noticed that matplotlib.toolkits.basemap.Basemap supports a smaller

set of projection arguments than the underlying function

matplotlib.toolkits.basemap.pyproj.Proj and was wondering if there is a

fundamental limitation on the functionality of Basemap that prevents it from

handling proj arguments such as x_0, y_0, ellps, datum, and init?

I would like to be able to use all of the very nice functionality built into

Basemap on standard projections such as Oregon State Plane Coordinate

System-North NAD27 (which can be generated using pyproj.Proj with the

following proj arguments:

orspcs_m = matplotlib.toolkits.basemap.pyproj.Proj(\

proj='lcc',lat_1=44.33333333333334,lat_2=46,lat_0=43.66666666666666,\

lon_0=-120.5,x_0=609601.2192024384, y_0=0,ellps='clrk66',datum='NAD27')

or even more simply by

orspcs_m = matplotlib.toolkits.basemap.pyproj.Proj(init='epsg:32026')

or

orspcs_m = matplotlib.toolkits.basemap.pyproj.Proj(init='nad27:3601')

but Basemap() won't accept the necessary arguments

Would this be a matter of modifying the Basemap __init__ function to

recognize a longer list of possible arguments or is there a larger issue I'm

not seeing, or a bunch more code that would require modification?

thanks,

Charles Seaton

Research Associate

OHSU/ STC-CMOP

## ···

--

View this message in context: http://www.nabble.com/projections-in-matplotlib.toolkits.basemap-Basemap-vs.-pyproj.Proj-tf4617163.html#a13186371

Sent from the matplotlib - users mailing list archive at Nabble.com.

Charles Seaton wrote:

I have noticed that matplotlib.toolkits.basemap.Basemap supports a smaller

set of projection arguments than the underlying function

matplotlib.toolkits.basemap.pyproj.Proj and was wondering if there is a

fundamental limitation on the functionality of Basemap that prevents it from

handling proj arguments such as x_0, y_0, ellps, datum, and init?

I would like to be able to use all of the very nice functionality built into

Basemap on standard projections such as Oregon State Plane Coordinate

System-North NAD27 (which can be generated using pyproj.Proj with the

following proj arguments:

orspcs_m = matplotlib.toolkits.basemap.pyproj.Proj(\

proj='lcc',lat_1=44.33333333333334,lat_2=46,lat_0=43.66666666666666,\

lon_0=-120.5,x_0=609601.2192024384, y_0=0,ellps='clrk66',datum='NAD27')

or even more simply by

orspcs_m = matplotlib.toolkits.basemap.pyproj.Proj(init='epsg:32026')

or orspcs_m = matplotlib.toolkits.basemap.pyproj.Proj(init='nad27:3601')

but Basemap() won't accept the necessary arguments

Would this be a matter of modifying the Basemap __init__ function to

recognize a longer list of possible arguments or is there a larger issue I'm

not seeing, or a bunch more code that would require modification?

thanks,

Charles Seaton

Research Associate

OHSU/ STC-CMOP

Charles: Unfortunately, there's more to making a map than getting the map projection transformation right. There's lots of special case code for different projections in basemap to take care of coastline polygons that go over the edge of the map region, drawing of meridians and parallels, drawing the map projection boundary, etc.

It looks like the projection you want is lambert conformal with a Clark66 ellipsoid. You should be able to use Basemap with projection='lcc', and rsphere set to a tuple that defines the Clark66 ellipsoid. Is there a reason that won't work?

-Jeff

## ···

--

Jeffrey S. Whitaker Phone : (303)497-6313

NOAA/OAR/CDC R/PSD1 FAX : (303)497-6449

325 Broadway Boulder, CO, USA 80305-3328