David Huard wrote:
Hi Jeff,
Here is the output. Thanks for looking into this.
In [1]: from matplotlib.toolkits.basemap import pyproj
In [2]: pyproj.test()
Trying:
from pyproj import Geod
Expecting nothing
ok
Trying:
g = Geod(ellps='clrk66') # Use Clarke 1966 ellipsoid.
Expecting nothing
ok
Trying:
boston_lat = 42.+(15./60.); boston_lon = -71.-(7./60.)
Expecting nothing
ok
Trying:
portland_lat = 45.+(31./60.); portland_lon = -123.-(41./60.)
Expecting nothing
ok
Trying:
newyork_lat = 40.+(47./60.); newyork_lon = -73.-(58./60.)
Expecting nothing
ok
Trying:
london_lat = 51.+(32./60.); london_lon = -(5./60.)
Expecting nothing
ok
Trying:
az12,az21,dist = g.inv(boston_lon,boston_lat,portland_lon,portland_lat)
Expecting nothing
**********************************************************************
File "/usr/local/lib/python2.4/site-packages/matplotlib/toolkits/basemap/pyproj.py", line 401, in matplotlib.toolkits.basemap.pyproj.Geod.__new__
Failed example:
az12,az21,dist = g.inv(boston_lon,boston_lat,portland_lon,portland_lat)
Exception raised:
Traceback (most recent call last):
File " doctest.py", line 1248, in __run
compileflags, 1) in test.globs
File "<doctest matplotlib.toolkits.basemap.pyproj.Geod.__new__[6]>", line 1, in ?
az12,az21,dist = g.inv(boston_lon,boston_lat,portland_lon,portland_lat)
File "/usr/local/lib/python2.4/site-packages/matplotlib/toolkits/basemap/pyproj.py", line 478, in inv
_Geod._inv(self, inx, iny, inz, ind, radians=radians)
File "_geod.pyx", line 123, in _geod.Geod._inv
ValueError: undefined inverse geodesic (may be an antipodal point)
Trying:
print "%7.3f %6.3f %12.3f" % (az12,az21,dist)
Expecting:
-66.531 75.654 4164192.708
**********************************************************************
File "/usr/local/lib/python2.4/site-packages/matplotlib/toolkits/basemap/pyproj.py", line 402, in matplotlib.toolkits.basemap.pyproj.Geod.__new__
Failed example:
print "%7.3f %6.3f %12.3f" % (az12,az21,dist)
Exception raised:
Traceback (most recent call last):
File "doctest.py", line 1248, in __run
compileflags, 1) in test.globs
File "<doctest matplotlib.toolkits.basemap.pyproj.Geod.__new_ _[7]>", line 1, in ?
print "%7.3f %6.3f %12.3f" % (az12,az21,dist)
NameError: name 'az12' is not defined
Trying:
endlon, endlat, backaz = g.fwd(boston_lon, boston_lat, az12, dist)
Expecting nothing
**********************************************************************
File "/usr/local/lib/python2.4/site-packages/matplotlib/toolkits/basemap/pyproj.py", line 406, in matplotlib.toolkits.basemap.pyproj.Geod.__new_ _
Failed example:
endlon, endlat, backaz = g.fwd(boston_lon, boston_lat, az12, dist)
Exception raised:
Traceback (most recent call last):
File "doctest.py", line 1248, in __run
compileflags, 1) in test.globs
File "<doctest matplotlib.toolkits.basemap.pyproj.Geod.__new__[8]>", line 1, in ?
endlon, endlat, backaz = g.fwd(boston_lon, boston_lat, az12, dist)
NameError: name 'az12' is not defined
Trying:
print "%6.3f %6.3f %13.3f" % (endlat,endlon,backaz)
Expecting:
45.517 -123.683 75.654
**********************************************************************
File "/usr/local/lib/python2.4/site-packages/matplotlib/toolkits/basemap/pyproj.py", line 407, in matplotlib.toolkits.basemap.pyproj.Geod.__new__
Failed example:
print "%6.3f %6.3f %13.3f" % (endlat,endlon,backaz)
Exception raised:
Traceback (most recent call last):
File "doctest.py ", line 1248, in __run
compileflags, 1) in test.globs
File "<doctest matplotlib.toolkits.basemap.pyproj.Geod.__new__[9]>", line 1, in ?
print "%6.3f %6.3f %13.3f" % (endlat,endlon,backaz)
NameError: name 'endlat' is not defined
Trying:
lons1 = 3*[newyork_lon]; lats1 = 3*[newyork_lat]
Expecting nothing
ok
Trying:
lons2 = [boston_lon, portland_lon, london_lon]
Expecting nothing
ok
Trying:
lats2 = [boston_lat, portland_lat, london_lat]
Expecting nothing
ok
Trying:
az12,az21,dist = g.inv(lons1,lats1,lons2,lats2)
Expecting nothing
**********************************************************************
File "/usr/local/lib/python2.4/site-packages/matplotlib/toolkits/basemap/pyproj.py", line 414, in matplotlib.toolkits.basemap.pyproj.Geod.__new__
Failed example:
az12,az21,dist = g.inv(lons1,lats1,lons2,lats2)
Exception raised:
Traceback (most recent call last):
File "doctest.py", line 1248, in __run
compileflags, 1) in test.globs
File "<doctest matplotlib.toolkits.basemap.pyproj.Geod.__new_ _[13]>", line 1, in ?
az12,az21,dist = g.inv(lons1,lats1,lons2,lats2)
File "/usr/local/lib/python2.4/site-packages/matplotlib/toolkits/basemap/pyproj.py", line 478, in inv
_Geod._inv(self, inx, iny, inz, ind, radians=radians)
File "_geod.pyx", line 123, in _geod.Geod._inv
ValueError: undefined inverse geodesic (may be an antipodal point)
Trying:
for faz,baz,d in zip(az12,az21,dist): print "%7.3f %7.3f %9.3f" % (faz,baz,d)
Expecting:
54.663 -123.448 288303.720
-65.463 79.342 4013037.318
51.254 -71.576 5579916.649
**********************************************************************
File "/usr/local/lib/python2.4/site-packages/matplotlib/toolkits/basemap/pyproj.py", line 415, in matplotlib.toolkits.basemap.pyproj.Geod.__new__
Failed example:
for faz,baz,d in zip(az12,az21,dist): print "%7.3f %7.3f %9.3f" % (faz,baz,d)
Exception raised:
Traceback (most recent call last):
File "doctest.py", line 1248, in __run
compileflags, 1) in test.globs
File "<doctest matplotlib.toolkits.basemap.pyproj.Geod.__new__[14]>", line 1, in ?
for faz,baz,d in zip(az12,az21,dist): print "%7.3f %7.3f %9.3f" % (faz,baz,d)
NameError: name 'az12' is not defined
Trying:
from pyproj import Geod
Expecting nothing
ok
Trying:
g = Geod(ellps='clrk66') # Use Clarke 1966 ellipsoid.
Expecting nothing
ok
Trying:
boston_lat = 42.+(15./60.); boston_lon = -71.-(7./60.)
Expecting nothing
ok
Trying:
portland_lat = 45.+(31./60.); portland_lon = -123.-(41./60.)
Expecting nothing
ok
Trying:
lonlats = g.npts(boston_lon,boston_lat,portland_lon,portland_lat,10)
Expecting nothing
ok
Trying:
for lon,lat in lonlats: print '%6.3f %7.3f' % (lat, lon)
Expecting:
43.528 -75.414
44.637 -79.883
45.565 -84.512
46.299 -89.279
46.830 -94.156
47.149 -99.112
47.251 -104.106
47.136 -109.100
46.805 -114.051
46.262 -118.924
ok
Trying:
from pyproj import Proj
Expecting nothing
ok
Trying:
p = Proj(proj='utm',zone=10,ellps='WGS84')
Expecting nothing
ok
Trying:
x,y = p(-120.108, 34.36116666)
Expecting nothing
ok
Trying:
print 'x=%9.3f y=%11.3f' % (x,y)
Expecting:
x=765975.641 y=3805993.134
ok
Trying:
print 'lon=%8.3f lat=%5.3f' % p(x,y,inverse=True)
Expecting:
lon=-120.108 lat=34.361
ok
Trying:
lons = (-119.72,-118.40,-122.38)
Expecting nothing
ok
Trying:
lats = (36.77, 33.93, 37.62 )
Expecting nothing
ok
Trying:
x,y = p(lons, lats)
Expecting nothing
ok
Trying:
print 'x: %9.3f %9.3f %9.3f' % x
Expecting:
x: 792763.863 925321.537 554714.301
ok
Trying:
print 'y: %9.3f %9.3f %9.3f' % y
Expecting:
y: 4074377.617 3763936.941 4163835.303
ok
Trying:
lons, lats = p(x, y, inverse=True) # inverse transform
Expecting nothing
ok
Trying:
print 'lons: %8.3f %8.3f %8.3f' % lons
Expecting:
lons: -119.720 -118.400 -122.380
ok
Trying:
print 'lats: %8.3f %8.3f %8.3f' % lats
Expecting:
lats: 36.770 33.930 37.620
ok
Trying:
p1 = Proj(init='epsg:26915')
Expecting nothing
ok
Trying:
p2 = Proj(init='epsg:26715')
Expecting nothing
ok
Trying:
x1, y1 = p1(-92.199881,38.56694)
Expecting nothing
ok
Trying:
x2, y2 = transform(p1,p2,x1,y1)
Expecting nothing
ok
Trying:
print '%9.3f %11.3f' % (x1,y1)
Expecting:
569704.566 4269024.671
ok
Trying:
print '%9.3f %11.3f' % (x2,y2)
Expecting:
569706.333 4268817.680
ok
Trying:
print '%8.3f %5.3f' % p2(x2,y2,inverse=True)
Expecting:
-92.200 38.567
ok
Trying:
lats = (38.83,39.32,38.75) # Columbia, KC and StL Missouri
Expecting nothing
ok
Trying:
lons = (-92.22,-94.72,-90.37)
Expecting nothing
ok
Trying:
x1, y1 = p1(lons,lats)
Expecting nothing
ok
Trying:
x2, y2 = transform(p1,p2,x1,y1)
Expecting nothing
ok
Trying:
xy = x1+y1
Expecting nothing
ok
Trying:
print '%9.3f %9.3f %9.3f %11.3f %11.3f %11.3f' % xy
Expecting:
567703.344 351730.944 728553.093 4298200.739 4353698.725 4292319.005
ok
Trying:
xy = x2+y2
Expecting nothing
ok
Trying:
print '%9.3f %9.3f %9.3f %11.3f %11.3f %11.3f' % xy
Expecting:
567705.072 351727.113 728558.917 4297993.157 4353490.111 4292111.678
ok
Trying:
lons, lats = p2(x2,y2,inverse=True)
Expecting nothing
ok
Trying:
xy = lons+lats
Expecting nothing
ok
Trying:
print '%8.3f %8.3f %8.3f %5.3f %5.3f %5.3f' % xy
Expecting:
-92.220 -94.720 -90.370 38.830 39.320 38.750
ok
11 items had no tests:
matplotlib.toolkits.basemap.pyproj
matplotlib.toolkits.basemap.pyproj.Geod
matplotlib.toolkits.basemap.pyproj.Geod.fwd
matplotlib.toolkits.basemap.pyproj.Geod.inv
matplotlib.toolkits.basemap.pyproj.Proj
matplotlib.toolkits.basemap.pyproj.Proj.__call__
matplotlib.toolkits.basemap.pyproj.Proj.is_geocent
matplotlib.toolkits.basemap.pyproj.Proj.is_latlong
matplotlib.toolkits.basemap.pyproj._convertback
matplotlib.toolkits.basemap.pyproj._copytobuffer
matplotlib.toolkits.basemap.pyproj.test
3 items passed all tests:
6 tests in matplotlib.toolkits.basemap.pyproj.Geod.npts
13 tests in matplotlib.toolkits.basemap.pyproj.Proj.__new__
18 tests in matplotlib.toolkits.basemap.pyproj.transform
**********************************************************************
1 items had failures:
6 of 15 in matplotlib.toolkits.basemap.pyproj.Geod.__new__
52 tests in 15 items.
46 passed and 6 failed.
***Test Failed*** 6 failures.2007/9/12, Jeff Whitaker < jswhit@...196... <mailto:jswhit@…196…>>:
David Huard wrote:
> Hi, the pyproj package seems to cause a problem in the polarmap
> example of the basemap toolkit.
>
> Thanks,
>
> david
>
> huardda@...559...:~/svnrepos/toolkits/basemap/examples$ python
polarmaps.py
> min/max etopo20 data:
> -9026.625 6228.8125
> plotting North Polar Lambert Azimuthal Equal Area basemap ...
> plotting North Polar Stereographic basemap ...
> plotting North Polar Azimuthal Equidistant basemap ...
> Traceback (most recent call last):
> File "polarmaps.py", line 51, in ?
> resolution='c',area_thresh=10000.,lat_0=lat_0,lon_0=lon_0_ortho)
> File
>
"/usr/local/lib/python2.4/site-packages/matplotlib/toolkits/basemap/basemap.py",> line 1111, in __init__
>
az1,alpha21,dist=gc.inv(lon_0,lat_0,math.radians(lonsnew[0]),math.radians(latsnew[0]),radians=True)
> File
>
"/usr/local/lib/python2.4/site-packages/matplotlib/toolkits/basemap/pyproj.py",> line 478, in inv
> _Geod._inv(self, inx, iny, inz, ind, radians=radians)
> File "_geod.pyx", line 123, in _geod.Geod._inv
> ValueError: undefined inverse geodesic (may be an antipodal point)
>
> This is from a fresh SVN version of both matplotlib and basemap.
> Linux, Ubuntu edgy, Xeon-64.David: Odd - I can't reproduce that on my mac. Can you try this
>>> from matplotlib.toolkits.basemap import pyproj
>>> pyproj.test()and let me know if any of the tests fail?
-Jeff
--
Jeffrey S. Whitaker Phone : (303)497-6313
Meteorologist FAX : (303)497-6449
NOAA/OAR/PSD R/PSD1 Email : Jeffrey.S.Whitaker@...236...
<mailto:Jeffrey.S.Whitaker@…236…>
325 Broadway Office : Skaggs Research Cntr 1D-124
Boulder, CO, USA 80303-3328 Web : Jeffrey S. Whitaker: NOAA Physical Sciences Laboratory
David: It might be a 64-bit issue. I'll try to find a 64-bit Xeon box to debug it, and let you know what I find.
-Jeff
···
--
Jeffrey S. Whitaker Phone : (303)497-6313
Meteorologist FAX : (303)497-6449
NOAA/OAR/PSD R/PSD1 Email : Jeffrey.S.Whitaker@...236...
325 Broadway Office : Skaggs Research Cntr 1D-124
Boulder, CO, USA 80303-3328 Web : Jeffrey S. Whitaker: NOAA Physical Sciences Laboratory