coincident.plot.compare_dems#

coincident.plot.compare_dems(dem_dict, gdf_dict=None, add_hillshade=False, downsample_factor=None, altimetry_basemap=None, elevation_cmap='plasma', elevation_clim=None, diff_cmap='RdBu_r', diff_clim=(-10, 10), altimetry_pointsize=1.0, figsize=None, suptitle=None)[source]#

Create a panel figure comparing DEM and altimetry elevations.

The first row shows elevation maps and altimeter points over first DEM hillshade (if basemap==’hillshade’) The second row shows elevation differences against the first DEM, plus ESA Worldcover for context The third row shows the histograms of the elevation differences

Parameters:
  • dem_dict (dict[str, DataArray]) – Dictionary of xr.DataArrays. The first DEM in this list will be the ‘source’ DEM and will served as a reference for differencing e.g. {‘dem_1’:ds1,’dem_2’:ds2,’dem_3’:d3} will result in diff_1 = dem_2 - dem_1 and diff_2 = dem_3 - dem_1

  • gdf_dict (dict[str, tuple[GeoDataFrame, str]] | None) – Dictionary where keys are subplot names and values are (GeoDataFrame, column_name) pairs. column_name denotes elevation values to plot (e.g. h_li for ICESat-2 ATL06)

  • add_hillshade (bool) – Whether to add a hillshade underneath the DEM

  • downsample_factor (int | None) – Factor by which to downsample the DEMs for plotting to save memory (e.g., 2, 4, etc.)

  • altimetry_basemap (str | None) – If ‘hillshade’, use reference DEM. Or pass an xyzservices provider name like ‘Esri.WorldImagery’

  • elevation_cmap (str) – Colormap for elevation.

  • elevation_clim (tuple[float, float] | None) – Tuple for elevation color limits, otherwise scaled to 2nd and 98th percentiles

  • diff_cmap (str) – Colormap for elevation differences.

  • diff_clim (tuple[float, float]) – Tuple for difference color limits.

  • altimetry_pointsize (float) – Point size for altimetry points.

  • figsize (tuple[float, float] | None) – Figure size (width, height) tuple.

  • suptitle (str | None)

Return type:

dict[str, Axes]

Returns:

Dictionary containing the axes objects for each subplot

Notes

  • All inputs assumed to have the same CRS and to be aligned

  • A maximum of 5 total datasets (dem_list + gdf_dict) to be passed