ICESat-2 Applications: GrIMP + SlideRule

Instructors: Tyler Sutterley and Ian Joughin

Learning Objectives

Goals

  • Retrieve image mosaics from NSIDC

  • Subset and view imagery with GrIMP and NISAR tools

  • Retrieve customized ICESat-2 data with SlideRule

  • Sample imagery at ICESat-2 photon locations

Working with GrIMP Image Products

Using nisarImage and nisarImageSeries Classes

The Greenland Ice Mapping Project (GrIMP) generates 6 or 12 day Sentinel-1 image mosaics for the Greenland coastline, extending back through 2015, which are archived at NSIDC under NSIDC-0723.

Collectively these products take up more than 2TB, which is more than most users may want to store locally, especially when interested in only a handful of glaciers.

This notebook reviews how to work with subsets of these products downloaded directly from the NSIDC server using the nisarImageSeries class in the nisardev package. We also take advantage of search tools in the grimpfunc package.

Many of the concepts introduced in the early data integration tutorial (e.g., image stacks, xarray, pandas) are used here, though they are often incorporated into class definitions. For those who are curious, the code can be viewed here.

Python Setup

The following packages are needed to execute this notebook.

import os
import dask
from dask.diagnostics import ProgressBar
import geopandas as gpd
import ipyleaflet
import ipywidgets as widgets
import logging
import panel as pn
pn.extension()
import matplotlib.lines
import matplotlib.colors as colors
import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
import numpy as np
import shapely.geometry
import warnings
# grimp and nisar functions
import grimpfunc as grimp
import nisardev as nisar
# sliderule functions
import sliderule.icesat2
import sliderule.io
import sliderule.ipysliderule

# register progress bar and set workers
ProgressBar().register()
dask.config.set(num_workers=2)
# turn off warnings for demo
warnings.filterwarnings('ignore')

# High resolution matplotlib figures
#%config InlineBackend.figure_format = 'retina'
#plt.rcParams['figure.dpi'] =100 # default=72