def draw_projection(self): #if not self.config['proj.name']: # self.map=False # return if not self.map: return if self.map_info_get()!=self.map_info_current: self.init_projection() # there is a bug in set_axes_limits, called at the end of drawcoastlines, # fillcontinents, etc, here: # first draw boundary, no fill # limb1 = self.drawmapboundary(fill_color='none') # argument ax is missing! So, boundary will go the the latest axes, which can be self.cbax!! # my current version is 1.0.7 # To avoid it: pl.axes(self.ax) # better do this before draw anything else, otherwise the drawmapboundary will be # called many times (by set_axes_limits, depending on the projection used) if self.config['proj.oceans_add']: self.map.drawmapboundary(ax=self.ax,**self.config['proj.oceans']) if self.config['proj.coast_add']: self.map.drawcoastlines(ax=self.ax,**self.config['proj.coast']) if self.config['proj.continents_add']: self.map.fillcontinents(ax=self.ax,**self.config['proj.continents']) if self.config['proj.countries_add']: self.map.drawcountries(ax=self.ax,**self.config['proj.countries']) if self.config['proj.states_add']: self.map.drawstates(ax=self.ax,**self.config['proj.states']) if self.config['proj.rivers_add']: self.map.drawrivers(ax=self.ax,**self.config['proj.rivers']) if self.config['proj.meridians_add']: if self.config['proj.meridians_vals']=='auto': if self.map_info_current['proj'].endswith('stere'): meridians=range(0,360,45) else: xlim=self.map.llcrnrlon,self.map.urcrnrlon xlim=self.map.lonmin,self.map.lonmax meridians=ticks.loose_label(xlim[0],xlim[1]) else: meridians=self.config['proj.meridians_vals'] self.map.drawmeridians(meridians,ax=self.ax,**self.config['proj.meridians']) if self.config['proj.parallels_add']: if self.config['proj.parallels_vals']=='auto': ylim=self.map.llcrnrlat,self.map.urcrnrlat ylim=self.map.latmin,self.map.latmax parallels=ticks.loose_label(ylim[0],ylim[1]) else: parallels=self.config['proj.parallels_vals'] self.map.drawparallels(parallels,ax=self.ax,**self.config['proj.parallels'])
def draw_projection(self): if not self.config['proj.name']: self.map = False return if self.map_info_get() != self.map_info_current: self.init_projection() if self.config['proj.coast_add']: self.map.drawcoastlines(ax=self.ax, **self.config['proj.coast']) if self.config['proj.continents_add']: self.map.fillcontinents(ax=self.ax, **self.config['proj.continents']) if self.config['proj.countries_add']: self.map.drawcountries(ax=self.ax, **self.config['proj.countries']) if self.config['proj.states_add']: self.map.drawstates(ax=self.ax, **self.config['proj.states']) print 'ADDING RIVERS !!! ', self.config['proj.rivers_add'] if self.config['proj.rivers_add']: self.map.drawrivers(ax=self.ax, **self.config['proj.rivers']) if self.config['proj.meridians_add']: if self.config['proj.meridians_vals'] == 'auto': xlim = self.map.llcrnrlon, self.map.urcrnrlon meridians = ticks.loose_label(xlim[0], xlim[1]) else: meridians = self.config['proj.meridians_vals'] self.map.drawmeridians(meridians, ax=self.ax, **self.config['proj.meridians']) if self.config['proj.parallels_add']: if self.config['proj.parallels_vals'] == 'auto': ylim = self.map.llcrnrlat, self.map.urcrnrlat parallels = ticks.loose_label(ylim[0], ylim[1]) else: parllels = self.config['proj.parallels_vals'] self.map.drawparallels(parallels, ax=self.ax, **self.config['proj.parallels'])
def draw_projection(self): if not self.config['proj.name']: self.map=False return if self.map_info_get()!=self.map_info_current: self.init_projection() if self.config['proj.coast_add']: self.map.drawcoastlines(ax=self.ax,**self.config['proj.coast']) if self.config['proj.continents_add']: self.map.fillcontinents(ax=self.ax,**self.config['proj.continents']) if self.config['proj.countries_add']: self.map.drawcountries(ax=self.ax,**self.config['proj.countries']) if self.config['proj.states_add']: self.map.drawstates(ax=self.ax,**self.config['proj.states']) print 'ADDING RIVERS !!! ',self.config['proj.rivers_add'] if self.config['proj.rivers_add']: self.map.drawrivers(ax=self.ax,**self.config['proj.rivers']) if self.config['proj.meridians_add']: if self.config['proj.meridians_vals']=='auto': xlim=self.map.llcrnrlon,self.map.urcrnrlon meridians=ticks.loose_label(xlim[0],xlim[1]) else: meridians=self.config['proj.meridians_vals'] self.map.drawmeridians(meridians,ax=self.ax,**self.config['proj.meridians']) if self.config['proj.parallels_add']: if self.config['proj.parallels_vals']=='auto': ylim=self.map.llcrnrlat,self.map.urcrnrlat parallels=ticks.loose_label(ylim[0],ylim[1]) else: parllels=self.config['proj.parallels_vals'] self.map.drawparallels(parallels,ax=self.ax,**self.config['proj.parallels'])
def plot(self,**kargs): bathy = kargs.get('bathy','contourf') hvals = kargs.get('hvals','auto') resolution = kargs.get('res','i') rivers = kargs.get('rivers',False) parallels = kargs.get('parallels','auto') meridians = kargs.get('meridians','auto') scale = kargs.get('scale',False) states = kargs.get('states',False) xlim = kargs.get('xlim',False) ylim = kargs.get('ylim',False) title = kargs.get('title','auto') cmap = kargs.get('cmap',pylab.cm.gist_earth_r) proj = kargs.get('proj','merc') ax = kargs.get('ax',False) if not ax: fig=pylab.figure() ax=pylab.axes() else: fig=ax.figure h=np.ma.masked_where(self.mask==0,self.h) xb,yb=self.border() xt=ticks.loose_label(self.lon.min(),self.lon.max()) yt=ticks.loose_label(self.lat.min(),self.lat.max()) ht=ticks.loose_label_n(self.h.min(),self.h.max(),7) if xlim: Lonlims=xlim else: Lonlims=xt[0],xt[-1] if ylim: Latlims=ylim else: Latlims=yt[0],yt[-1] if hvals=='auto': hvals=ht if parallels=='auto': parallels=yt if meridians=='auto': meridians=xt if Basemap and proj: m = Basemap(projection=proj,lat_ts=0.0, #lon_0=self.lon[0].mean(), resolution=resolution, urcrnrlon=Lonlims[1], urcrnrlat=Latlims[1], llcrnrlon=Lonlims[0], llcrnrlat=Latlims[0]) m.drawcoastlines(ax=ax) m.fillcontinents(ax=ax,color=(0.7604, 1.0000, 0.7459)) if rivers: m.drawrivers(color='b') m.drawcountries(ax=ax) # m.drawlsmask() # m.drawmapboundary() if scale: dx=Lonlims[1]-Lonlims[0] dy=Latlims[1]-Latlims[0] lon=Lonlims[1]-dx/10 lat=Latlims[0]+dy/10 lon0=lon lat0=lat length=100 m.drawmapscale(lon,lat,lon0,lat0,length,ax=ax) if states: m.drawstates(ax=ax) m.drawparallels(parallels, labels=[1,0,0,0],ax=ax) m.drawmeridians(meridians, labels=[0,0,0,1],ax=ax) x, y = m(self.lon, self.lat) pch=False if bathy in ['pcolor','pcolormesh']: pch = ax.pcolormesh(x,y,h,cmap=cmap) elif bathy=='contour': pch = ax.contour(x,y,h,hvals,cmap=cmap) elif bathy=='contourf': pch = ax.contourf(x,y,h,hvals,cmap=cmap) if pch: if m.xmax-m.xmin<m.ymax-m.ymin: orientation='horizontal' else: orientation='vetical' cbh = pylab.colorbar(pch,orientation=orientation,ax=ax) cbh.set_label('Depth') if title=='auto': ax.set_title(self.name) elif title: ax.set_title(title) xb, yb = m(xb,yb) ax.plot(xb,yb) ax.axis([m.xmin, m.xmax, m.ymin, m.ymax]) return m else: ax.pcolormesh(self.lon,self.lat,h,cmap=cmap) ax.contour(self.lon,self.lat,self.h,hvals,colors='w') ax.plot(xb,yb)
def plot(self, **kargs): bathy = kargs.get("bathy", "contourf") hvals = kargs.get("hvals", "auto") resolution = kargs.get("res", "i") rivers = kargs.get("rivers", False) parallels = kargs.get("parallels", "auto") meridians = kargs.get("meridians", "auto") scale = kargs.get("scale", False) states = kargs.get("states", False) xlim = kargs.get("xlim", False) ylim = kargs.get("ylim", False) title = kargs.get("title", "auto") cmap = kargs.get("cmap", pylab.cm.gist_earth_r) proj = kargs.get("proj", "merc") ax = kargs.get("ax", False) if not ax: fig = pylab.figure() ax = pylab.axes() else: fig = ax.figure h = np.ma.masked_where(self.mask == 0, self.h) xb, yb = self.border() xt = ticks.loose_label(self.lon.min(), self.lon.max()) yt = ticks.loose_label(self.lat.min(), self.lat.max()) ht = ticks.loose_label_n(self.h.min(), self.h.max(), 7) if xlim: Lonlims = xlim else: Lonlims = xt[0], xt[-1] if ylim: Latlims = ylim else: Latlims = yt[0], yt[-1] if hvals == "auto": hvals = ht if parallels == "auto": parallels = yt if meridians == "auto": meridians = xt if Basemap and proj: m = Basemap( projection=proj, lat_ts=0.0, # lon_0=self.lon[0].mean(), resolution=resolution, urcrnrlon=Lonlims[1], urcrnrlat=Latlims[1], llcrnrlon=Lonlims[0], llcrnrlat=Latlims[0], ) m.drawcoastlines(ax=ax) m.fillcontinents(ax=ax, color=(0.7604, 1.0000, 0.7459)) if rivers: m.drawrivers(color="b") m.drawcountries(ax=ax) # m.drawlsmask() # m.drawmapboundary() if scale: dx = Lonlims[1] - Lonlims[0] dy = Latlims[1] - Latlims[0] lon = Lonlims[1] - dx / 10 lat = Latlims[0] + dy / 10 lon0 = lon lat0 = lat length = 100 m.drawmapscale(lon, lat, lon0, lat0, length, ax=ax) if states: m.drawstates(ax=ax) m.drawparallels(parallels, labels=[1, 0, 0, 0], ax=ax) m.drawmeridians(meridians, labels=[0, 0, 0, 1], ax=ax) x, y = m(self.lon, self.lat) pch = False if bathy in ["pcolor", "pcolormesh"]: pch = ax.pcolormesh(x, y, h, cmap=cmap) elif bathy == "contour": pch = ax.contour(x, y, h, hvals, cmap=cmap) elif bathy == "contourf": pch = ax.contourf(x, y, h, hvals, cmap=cmap) if pch: if m.xmax - m.xmin < m.ymax - m.ymin: orientation = "horizontal" else: orientation = "vetical" cbh = pylab.colorbar(pch, orientation=orientation, ax=ax) cbh.set_label("Depth") if title == "auto": ax.set_title(self.name) elif title: ax.set_title(title) xb, yb = m(xb, yb) ax.plot(xb, yb) ax.axis([m.xmin, m.xmax, m.ymin, m.ymax]) return m else: ax.pcolormesh(self.lon, self.lat, h, cmap=cmap) ax.contour(self.lon, self.lat, self.h, hvals, colors="w") ax.plot(xb, yb)
def plot(self, **kargs): bathy = kargs.get('bathy', 'contourf') hvals = kargs.get('hvals', 'auto') resolution = kargs.get('res', 'i') rivers = kargs.get('rivers', False) parallels = kargs.get('parallels', 'auto') meridians = kargs.get('meridians', 'auto') scale = kargs.get('scale', False) states = kargs.get('states', False) xlim = kargs.get('xlim', False) ylim = kargs.get('ylim', False) title = kargs.get('title', 'auto') cmap = kargs.get('cmap', pylab.cm.gist_earth_r) proj = kargs.get('proj', 'merc') ax = kargs.get('ax', False) if not ax: fig = pylab.figure() ax = pylab.axes() else: fig = ax.figure h = np.ma.masked_where(self.mask == 0, self.h) xb, yb = self.border() xt = ticks.loose_label(self.lon.min(), self.lon.max()) yt = ticks.loose_label(self.lat.min(), self.lat.max()) ht = ticks.loose_label_n(self.h.min(), self.h.max(), 7) if xlim: Lonlims = xlim else: Lonlims = xt[0], xt[-1] if ylim: Latlims = ylim else: Latlims = yt[0], yt[-1] if hvals == 'auto': hvals = ht if parallels == 'auto': parallels = yt if meridians == 'auto': meridians = xt if Basemap and proj: m = Basemap( projection=proj, lat_ts=0.0, #lon_0=self.lon[0].mean(), resolution=resolution, urcrnrlon=Lonlims[1], urcrnrlat=Latlims[1], llcrnrlon=Lonlims[0], llcrnrlat=Latlims[0]) m.drawcoastlines(ax=ax) m.fillcontinents(ax=ax, color=(0.7604, 1.0000, 0.7459)) if rivers: m.drawrivers(color='b') m.drawcountries(ax=ax) # m.drawlsmask() # m.drawmapboundary() if scale: dx = Lonlims[1] - Lonlims[0] dy = Latlims[1] - Latlims[0] lon = Lonlims[1] - dx / 10 lat = Latlims[0] + dy / 10 lon0 = lon lat0 = lat length = 100 m.drawmapscale(lon, lat, lon0, lat0, length, ax=ax) if states: m.drawstates(ax=ax) m.drawparallels(parallels, labels=[1, 0, 0, 0], ax=ax) m.drawmeridians(meridians, labels=[0, 0, 0, 1], ax=ax) x, y = m(self.lon, self.lat) pch = False if bathy in ['pcolor', 'pcolormesh']: pch = ax.pcolormesh(x, y, h, cmap=cmap) elif bathy == 'contour': pch = ax.contour(x, y, h, hvals, cmap=cmap) elif bathy == 'contourf': pch = ax.contourf(x, y, h, hvals, cmap=cmap) if pch: if m.xmax - m.xmin < m.ymax - m.ymin: orientation = 'horizontal' else: orientation = 'vetical' cbh = pylab.colorbar(pch, orientation=orientation, ax=ax) cbh.set_label('Depth') if title == 'auto': ax.set_title(self.name) elif title: ax.set_title(title) xb, yb = m(xb, yb) ax.plot(xb, yb) ax.axis([m.xmin, m.xmax, m.ymin, m.ymax]) return m else: ax.pcolormesh(self.lon, self.lat, h, cmap=cmap) ax.contour(self.lon, self.lat, self.h, hvals, colors='w') ax.plot(xb, yb)