m.drawmapboundary() title('Geostationary') print 'plotting Geostationary example ...' print m.srs # create new figure fig = figure() # setup of sinusoidal ('sinu' = sinusioidal projection) m = Basemap(projection='sinu', resolution='c', area_thresh=10000., lon_0=0.5 * (lonsin[0] + lonsin[-1])) ax = fig.add_axes([0.1, 0.1, 0.7, 0.7]) # plot image over map with pcolormesh. x, y = m(*meshgrid(lonsin, latsin)) p = m.pcolormesh(x, y, topodatin, shading='flat') l, b, w, h = ax.get_position() cax = axes([l + w + 0.05, b, 0.05, h]) # setup colorbar axes. colorbar(cax=cax) # draw colorbar axes(ax) # make the original axes current again # draw coastlines and political boundaries. m.drawcoastlines() # draw parallels and meridians parallels = arange(-60., 90, 30.) m.drawparallels(parallels, labels=[1, 0, 0, 0]) meridians = arange(0., 360., 30.) m.drawmeridians(meridians) # draw boundary around map region. m.drawmapboundary() title('Sinusoidal') print 'plotting Sinusoidal example ...'
def plot_map(data, rlon=None, rlat=None, use_pcolor=0, **keywords): """ display the data in a map keywords: dict which can include the following keywords minv=0.0, maxv=0.0, dv=0.0, show_map=0, map_proj='cyl', show_lat=0, show_lon=0, lat_0=0.0, lon_0=0.0, minlat=-90.0, maxlat=90.0, minlon=0.0, maxlon=360.0, use_log=0, level=level """ minv = 0.0 if ('minv' in keywords): minv = keywords['minv'] maxv = 0.0 if ('maxv' in keywords): maxv = keywords['maxv'] dv = 0.0 if ('dv' in keywords): dv = keywords['dv'] if ('dv' in keywords): dv = keywords['dv'] if (maxv > minv): rlvl = arange(minv, maxv + dv, dv) rlvl[0] = -999.0 rlvl[size(rlvl) - 1] = 999. stitle = "" add_str = "" if ('title' in keywords): add_str = keywords['title'] add_str = add_str.strip() stitle = stitle + ' ' + add_str if ('unit' in keywords): add_str = keywords['unit'] add_str = add_str.strip() stitle = stitle + '(' + add_str + ')' cbar_vert = 1 if ('cbar_vert' in keywords): cbar_vert = keywords['cbar_vert'] if (cbar_vert == 1): orientation = 'vertical' else: orientation = 'horizontal' show_lat = 1 if ('show_lat' in keywords): show_lat = keywords['show_lat'] show_lon = 1 if ('show_lon' in keywords): show_lon = keywords['show_lon'] nlon, nlat = shape(data) vals = array(data) map_proj = 'cyl' if ('map_proj' in keywords): map_proj = keywords['map_proj'] lat_0 = 0.0 if ('lat_0' in keywords): lat_0 = keywords['lat_0'] minlat = -90.0 maxlat = 90.0 if ('minlat' in keywords): minlat = keywords['minlat'] if ('maxlat' in keywords): maxlat = keywords['maxlat'] if (rlat == None): dlat = (maxlat - minlat) / nlat rlat = arange(minlat, maxlat, dlat) minlon = -180 maxlon = 180.0 if ('minlon' in keywords): minlon = keywords['minlon'] if ('maxlon' in keywords): maxlon = keywords['maxlon'] if (rlon == None): dlon = (maxlon - minlon) / nlon rlon = arange(minlon, maxlon, dlon) lon_0 = 0 do_bdr = 0 if ('do_bdr' in keywords): do_bdr = keywords['do_bdr'] if ('lon_0' in keywords): lon_0 = keywords['lon_0'] boundinglat = 45 if ('boundinglat' in keywords): boundinglat = keywords['boundinglat'] if (map_proj == 'npstere' or map_proj == 'spstere'): m = Basemap(projection=map_proj, lon_0=lon_0, boundinglat=boundinglat) elif (map_proj == 'ortho'): m = Basemap(projection=map_proj, lon_0=lon_0, lat_0=lat_0) else: if (maxlon - minlon > 180): m=Basemap(llcrnrlon=minlon, llcrnrlat=minlat, \ urcrnrlon=maxlon, urcrnrlat=maxlat,projection=map_proj, lon_0=lon_0, lat_0=lat_0, resolution='l') else: m=Basemap(llcrnrlon=minlon, llcrnrlat=minlat, \ urcrnrlon=maxlon, urcrnrlat=maxlat,projection=map_proj, lon_0=lon_0, lat_0=lat_0, resolution='i') if (rlon[-1] < rlon[0] + 360.0): rlon = resize(rlon, nlon + 1) rlon[-1] = rlon[0] + 360.0 vals = squeeze(vals) vals = resize(vals, [nlon + 1, nlat]) x, y = m(*meshgrid(rlon, rlat)) cmap = cm.Paired if ('cmap' in keywords): print 'cmap included' cmap = keywords['cmap'] m.drawcoastlines(color='k', linewidth=0.5) if (maxv > minv): if (use_pcolor == 1): cs0 = m.pcolormesh(x, y, transpose(vals), shading='flat', vmin=minv, vmax=maxv, cmap=cmap) # cs0=m.imshow(x, y, transpose(vals), shading='flat', vmin=minv, vmax=maxv, cmap=cmap) else: cs0 = m.contourf(x, y, transpose(vals), rlvl, cmap=cmap) else: if (use_pcolor == 1): cs0 = m.pcolor(x, y, transpose(vals), shading='flat', cmap=cmap) else: cs0 = m.contourf(x, y, transpose(vals), cmap=cmap) # info(m.drawcoastlines) # m.drawcountries(color=white) m.drawmapboundary() if (show_lat == 1): if (maxlat - minlat >= 90): m.drawparallels(arange(minlat, maxlat + 30.0, 30.), labels=[1, 0, 0, 0], color='grey') else: m.drawparallels(arange(minlat, maxlat + 5.0, 5.), labels=[1, 0, 0, 0], color='grey') if (show_lon == 1): if (maxlon - minlon >= 180): m.drawmeridians(arange(minlon, maxlon + 60, 60.), labels=[0, 0, 0, 1], color='grey') else: m.drawmeridians(arange(minlon, maxlon + 10, 10.), labels=[0, 0, 0, 1], color='grey') title(stitle) show_colorbar = 1 if ('cb' in keywords): show_colorbar = keywords['cb'] if (show_colorbar == 1): colorbar(orientation=orientation, extend='both') if (do_bdr == 1): lvl = arange(max(vals.flat)) print shape(x), shape(y), shape(vals) # cs2=m.contour(x[0:-1,:], y[0:-1,:], transpose(vals), lvl, colors='k', linewidth=0.5) return m
meridians = arange(0.,360.,20.) m.drawmeridians(meridians) # draw boundary around map region. m.drawmapboundary() title('Orthographic') print 'plotting Orthographic example, close plot window to proceed ...' show() # setup of sinusoidal ('sinu' = sinusioidal projection) m = Basemap(projection='sinu', resolution='c',area_thresh=10000.,lon_0=0.5*(lonsin[0]+lonsin[-1])) fig=figure() ax = fig.add_axes([0.1,0.1,0.7,0.7]) # plot image over map with pcolormesh. x,y = m(*meshgrid(lonsin,latsin)) p = m.pcolormesh(x,y,topodatin,shading='flat') l,b,w,h = ax.get_position() cax = axes([l+w+0.05, b, 0.05, h]) # setup colorbar axes. colorbar(cax=cax) # draw colorbar axes(ax) # make the original axes current again # draw coastlines and political boundaries. m.drawcoastlines() # draw parallels and meridians parallels = arange(-60.,90,30.) m.drawparallels(parallels,labels=[1,0,0,0]) meridians = arange(0.,360.,30.) m.drawmeridians(meridians) # draw boundary around map region. m.drawmapboundary() title('Sinusoidal') print 'plotting Sinusoidal example, close plot window to proceed ...'