Many thanks for the special case code Jeff, This appears to work well. I see you picked up on our confusion about the -180 to 180 longitude range. I'll pass this on and look at clipping the lines outside the circle later, regards, Gary
Jeff Whitaker wrote: > [EMAIL PROTECTED] wrote: >> I've been trying to help a friend who wants to plot directional data >> on a "Wulff net" >> <http://en.wikipedia.org/wiki/Pole_figure#Geometry_in_the_pole_figure>, >> which is a stereographic projection plot. She wants to plot points >> specified by latitude and longitude in degrees. We hoped to be able to >> use the basemap toolkit's "stere" plot, centred at lat_0=0, lon_0=0, >> with limits set at +/-90deg lat and +/-180deg lon, but we keep getting >> tracebacks and I wondered whether this is possible, based on a comment >> from Jeff Whitaker >> <http://www.nabble.com/-basemap--stereographic-projection-bounding-boxes-tf2170166.html#a6000978> >> >> which implies that basemap's stereographic projection code can't >> handle these default limits. Is this the case? Would it be asking too >> much to request a small sample of generating some Wulff-net axes? >> Plotting points on these seems simple enough. We started with the >> polarmaps.py example and the code below is as close as we could get. >> Any suggestions would be welco >> me. >> >> Gary Ruben >> >> -- >> >> from matplotlib.toolkits.basemap import Basemap >> from pylab import * >> >> # loop over projections, one for each panel of the figure. >> fig = figure(figsize=(4,4)) >> # setup map projection >> m = >> Basemap(projection='stere',lat_0=0.,lon_0=0.,llcrnrlat=-50.,llcrnrlon=-120., >> urcrnrlat=90., urcrnrlon=90.) >> ax = fig.add_subplot(1,1,1) >> # draw parallels and meridians. >> m.drawparallels(arange(-180.,180.,10.)) >> m.drawmeridians(arange(-90.,90.,10.)) >> # draw boundary around map region. >> m.drawmapboundary() >> show() >> >> >> - > Gary: > > How about this? > > import pylab as p > from matplotlib.toolkits.basemap import Basemap > from matplotlib.patches import Circle, Polygon > w=25483988.0 > map = Basemap(lon_0=0,lat_0=0,projection='stere',width=w,height=w) > print map.llcrnrlat,map.llcrnrlon,map.urcrnrlat,map.urcrnrlon > map.drawparallels(p.arange(-80,81,10)) > map.drawmeridians(p.arange(-90,91,10)) > ax = p.gca() > circ = Circle(map(0,0),0.5*w) > circ.set_fill(False) > circ.set_edgecolor('k') > circ.set_linewidth(1.0) > circ.set_clip_on(True) > ax.add_patch(circ) > #ax.set_frame_on(False) > p.show() > > It should be possible to get rid of the lines extending outside the > circular region by filling the region between the circle and the > bounding square. > > HTH, > > -Jeff ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users