Im experiencing very poor performance when using the 'quiver' function over 
relatively large grids.
Im using quiver to plot wind 'u,v' data over a lat/lon grid using basemap.
 
quiver performs decently over small lat/lon ranges, such as a bounding box of 
lat(0-30),lon(-120- -100), but when I try to plot larger areas (i.e. the entire 
globe), quiver causes a very large pause. through some debugging of quiver.py, 
I narrowed down the performance lag to the "set_vertices" function call within 
the "draw()" function in the quiver class. as a test, I printed 'len(vert)' in 
order to see the vertice array length that was causing problems...it seems that 
Im getting vertice counts in the high thousands, and quiver seems to struggle 
with this. 
 
should quiver be able to easily handle such a large amount of vertices?
 
 
A secondary question:
the method Im using to create my X,Y,U,V arrays is creating 
'larger-than-necessary' X,Y arrays; i.e., Im not plotting the U,V vectors at 
each lat&lon point, Im 'skipping' over 'every-nth-point', so my U,V arrays are 
equal in size to my X,Y arrays, but have many empty elements. 
 
Unfortunately, the array data is being imported from an external program (named 
'GRADS'), so I cannot prevent these arrays from being 'oversized' upon their 
creation.
 
example:
for a (10 degree lat)x(10 degree lon) area, I might have arrays like this:
 
X='[0,0.5,1.0,1.5,2.0,2.5,...10.0],[0,0.5,...10],...[0.0,0.5,...10.0]'
Y='[0,0.5,1.0,1.5,2.0,2.5,...10.0],[0,0.5,...10],...[0.0,0.5,...10.0]'
U='[--,--,0.40,--,--,0.15,...0.30],[--,--,0.25,--,--...,0.12],...[--,--,0.50,...10.0]'
V='[--,--,0.30,--,--,0.25,...0.40],[--,--,0.25,--,--...,0.12],...[--,--,0.50,...10.0]'
 
these values are completely inaccurate and are meant just to illustrate the 
fact that I have many 'skipped' values in my U,V arrays, and I have oversized 
X,Y arrays that cover the 10x10 lat/lon grid...
 
So, what I want to do is create NEW X,Y,U,V arrays or remove elements from 
these existing X,Y,U,V arrays, so that:
1) only valid, "non-empty" values will exist in my U,V arrays..and
2) the only values that exist in X,Y are those that correspond to valid points 
in the U,V arrays...
 
Im not very experienced with python/matplotlib, so I dont know what would be 
the best way to iterate over these 4 arrays and remove the empty invalid 
elements (or copy the valid elements into new arrays). How can I go about 
shortening these arrays?
 
Im hoping that with less points in my X,Y arrays, that quiver will perform 
faster since it isnt wasting time trying to process X,Y points where U,V are 
empty).
 
Please help,
P.Romero
_________________________________________________________________
HotmailĀ® is up to 70% faster. Now good news travels really fast. 
http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_70faster_032009
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to