From: <js...@us...> - 2007-11-16 20:16:24
|
Revision: 4343 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4343&view=rev Author: jswhit Date: 2007-11-16 12:16:22 -0800 (Fri, 16 Nov 2007) Log Message: ----------- workarounds for an a bug in proj4 for tmerc projection. Modified Paths: -------------- trunk/toolkits/basemap-testing/lib/matplotlib/toolkits/basemap/basemap.py trunk/toolkits/basemap-testing/lib/matplotlib/toolkits/basemap/proj.py Modified: trunk/toolkits/basemap-testing/lib/matplotlib/toolkits/basemap/basemap.py =================================================================== --- trunk/toolkits/basemap-testing/lib/matplotlib/toolkits/basemap/basemap.py 2007-11-16 20:02:16 UTC (rev 4342) +++ trunk/toolkits/basemap-testing/lib/matplotlib/toolkits/basemap/basemap.py 2007-11-16 20:16:22 UTC (rev 4343) @@ -229,8 +229,12 @@ projparams['a'] = rsphere[1] projparams['b'] = rsphere[0] except: - projparams['a'] = rsphere - projparams['b'] = rsphere + if projection == 'tmerc': + # use Ra instead of R because of obscure bug + # in proj4 for tmerc projection. + projparams['Ra'] = rsphere + else: + projparams['R'] = rsphere # set units to meters. projparams['units']='m' # check for sane values of lon_0, lat_0, lat_ts, lat_1, lat_2 @@ -483,7 +487,7 @@ self.urcrnrlon = urcrnrlon; self.urcrnrlat = urcrnrlat elif projection == 'ortho': - if projparams['a'] != projparams['b']: + if not projparams.has_key('R'): raise ValueError, 'orthographic projection only works for perfect spheres - not ellipsoids' if lat_0 is None or lon_0 is None: raise ValueError, 'must specify lat_0 and lon_0 for Orthographic basemap' @@ -1452,6 +1456,10 @@ if self.projection in ['merc','cyl','mill','moll','robin','sinu']: lons = npy.arange(self.llcrnrlon,self.urcrnrlon+0.01,0.01) + elif self.projection in ['tmerc']: + lon_0 = self.projparams['lon_0'] + # tmerc only defined within +/- 90 degrees of lon_0 + lons = npy.arange(lon_0-90,lon_0+90.01,0.01) else: lons = npy.arange(0,360.01,0.01) # make sure latmax degree parallel is drawn if projection not merc or cyl or miller Modified: trunk/toolkits/basemap-testing/lib/matplotlib/toolkits/basemap/proj.py =================================================================== --- trunk/toolkits/basemap-testing/lib/matplotlib/toolkits/basemap/proj.py 2007-11-16 20:02:16 UTC (rev 4342) +++ trunk/toolkits/basemap-testing/lib/matplotlib/toolkits/basemap/proj.py 2007-11-16 20:16:22 UTC (rev 4343) @@ -54,7 +54,10 @@ self.rmajor = projparams['a'] self.rminor = projparams['b'] except: - self.rmajor = projparams['R'] + try: + self.rmajor = projparams['R'] + except: + self.rmajor = projparams['Ra'] self.rminor = self.rmajor if self.rmajor == self.rminor: self.ellipsoid = False This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |