I'm drawing several hundred lines at a time, each consisting of 10-100 points, and it takes a couple of minutes for them all to display, which makes me think I must be doing something stupid.
The function that does the drawing looks like this:
def plotlinmap(lins, map=None):
if map is None:
map = Basemap()
for lin in lins:
x,y = map(degrees(lin.longitudes()),degrees(lin.latitudes()))
map.plot(x,y)
return(map)
It displays one line at a time, whenever map.plot() is called. Really I'd like it to just do all the drawing at the end (assuming that would make the whole process much faster). Is there some way to cleanly pass map.plot() a big list of lines to draw? I'm sure there is and I'm just being dense. Argh.
I'm drawing several hundred lines at a time, each consisting of 10-100 points, and it takes a couple of minutes for them all to display, which makes me think I must be doing something stupid.
The function that does the drawing looks like this:
def plotlinmap(lins, map=None):
if map is None:
map = Basemap()
for lin in lins:
x,y = map(degrees(lin.longitudes()),degrees(lin.latitudes()))
map.plot(x,y)
return(map)
It displays one line at a time, whenever map.plot() is called. Really I'd like it to just do all the drawing at the end (assuming that would make the whole process much faster). Is there some way to cleanly pass map.plot() a big list of lines to draw? I'm sure there is and I'm just being dense. Argh.
after it, sped things up tremendously. Instead of 5 minutes, it now takes about 2 seconds for the map to render. Which, ironically, is much more "interactive"
Thanks for the pointer to LineCollection though. I'd never seen that.
Zane
···
On Aug 22, 2008, at 5:08 AM, Jeff Whitaker wrote:
Zane Selvans wrote:
I'm drawing several hundred lines at a time, each consisting of 10-100 points, and it takes a couple of minutes for them all to display, which makes me think I must be doing something stupid.