import numpy
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as pylab
x_min = 10 ; x_max = 21.
y_min = -20. ; y_max = -10.
lon_box = numpy.array ( [x_min, x_min, x_max, x_max, x_min])
lat_box = numpy.array ( [y_min, y_max, y_max, y_min, y_min])
fig = pylab.figure(figsize=(8,8),dpi=300,facecolor='white')
projection_opts={'projection':'merc','lat_ts':0.0, 'resolution':'h'}
ax1 = fig.add_axes([0.1,0.1,0.8,0.8])
m = Basemap(ax=ax1,llcrnrlon=x_min, llcrnrlat=y_min,
urcrnrlon=x_max,urcrnrlat=y_max, ** projection_opts)
m.bluemarble()
m.drawcoastlines (linewidth=0.25, color='w')
m.drawcountries(linewidth=0.25, color='w')
fig.canvas.draw()
background = fig.canvas.copy_from_bbox(fig.bbox)
for i in xrange(5):
lat_box = lat_box + 2.0*i
fig2 = pylab.figure(figsize=(8,8),dpi=150,facecolor='white')
# ax1 = fig.add_axes([0.1,0.1,0.8,0.8])
ax = fig2.add_subplot(111, frameon=False, xticks=[], yticks=[])
# restore previous background
ax2 = fig.add_axes([0.15,0.65,0.25,0.25])
m2 = Basemap(projection='ortho',lon_0=6,lat_0=-12,ax=ax2)
(x,y) = m2 (lon_box, lat_box)
m2.drawmapboundary(fill_color='#33339F')
m2.drawcoastlines(linewidth=0.1)
m2.fillcontinents(color='chocolate',lake_color='#33339F')
m2.plot ( x, y, '-r', lw=2)
fig2.canvas.draw()
fig2.canvas.restore_region(background)
fig2.canvas.draw()
fig2.savefig ("test_%02d.png"%i,dpi=150)