Jeff, I ran into a major bug that I think results from a fairly deep-seated gotcha in basemap. The problem lies with the in-place transformation of lon,lat in the proj library. This is not an inherent problem in itself; the trouble comes because sometimes the data get copied along the way from the basemap interface into proj, and sometimes they don't. When they don't get copied, rotate_vector breaks, because the input lon,lat variables are transformed in place, and then they are no longer lon and lat when they need to be reused as such.
This could be fixed with a copy in rotate_vector, but I recommend that instead it be fixed by guaranteeing that there is a copy at a much lower level, probably in the pyproj Proj.__call__ method, and if not there, then in the basemap.__call__ method. I am not sure what all the effects might be, though--is anything relying on in-place calculation at that level? The reason for recommending the low-level copy is that if basemap.__call__ continues to behave as it does, sometimes obliterating its input arguments via the in-place operation and sometimes not, it will continue to cause horrible surprises. I think that the overhead of a single copy would be a small price to pay to eliminate such surprises. If there is a need to preserve the in-place option, then perhaps it could be accessed through a different interface. Let __call__ guarantee that its input arguments are preserved, and have a "transform" method that minimizes copying. Eric ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel