def plot_domain(gdirs, ax=None, smap=None, use_netcdf=False): """Plot the glacier directory. Parameters ---------- gdirs ax smap use_netcdf : bool use output of glacier_masks instead of geotiff DEM """ # Files gdir = gdirs[0] if use_netcdf: with utils.ncDataset(gdir.get_filepath('gridded_data')) as nc: topo = nc.variables['topo'][:] else: topo = gis.read_geotiff_dem(gdir) try: smap.set_data(topo) except ValueError: pass cm = truncate_colormap(OGGM_CMAPS['terrain'], minval=0.25, maxval=1.0) smap.set_cmap(cm) smap.set_plot_params(nlevels=256) for gdir in gdirs: crs = gdir.grid.center_grid try: geom = gdir.read_pickle('geometries') # Plot boundaries poly_pix = geom['polygon_pix'] smap.set_geometry(poly_pix, crs=crs, fc='white', alpha=0.3, zorder=2, linewidth=.2) poly_pix = utils.tolist(poly_pix) for _poly in poly_pix: for l in _poly.interiors: smap.set_geometry(l, crs=crs, color='black', linewidth=0.5) except FileNotFoundError: smap.set_shapefile(gdir.read_shapefile('outlines')) smap.plot(ax) return dict(cbar_label='Alt. [m]')
def _rename_dem_folder(gdir, source=''): """Put the DEM files in a subfolder of the gdir. Parameters ---------- gdir : GlacierDirectory source : str the DEM source """ # open tif-file to check if it's worth it dem_f = gdir.get_filepath('dem') try: dem = gis.read_geotiff_dem(gdir) except IOError: # Error reading file, no problem - still, delete the file if needed if os.path.exists(dem_f): os.remove(dem_f) gdir.log('{},DEM SOURCE,{}'.format(gdir.rgi_id, source), err=InvalidDEMError('File does not exist')) return # Check the DEM isfinite = np.isfinite(dem) if np.all(~isfinite) or (np.min(dem) == np.max(dem)): # Remove the file and return if os.path.exists(dem_f): os.remove(dem_f) gdir.log('{},DEM SOURCE,{}'.format(gdir.rgi_id, source), err=InvalidDEMError('DEM does not contain more than one ' 'valid values.')) return # Create a source dir and move the files out = os.path.join(gdir.dir, source) utils.mkdir(out) for fname in ['dem', 'dem_source']: f = gdir.get_filepath(fname) os.rename(f, os.path.join(out, os.path.basename(f))) # log SUCCESS for this DEM source gdir.log('{},DEM SOURCE,{}'.format(gdir.rgi_id, source))