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