ICESat-2 Applications: GrIMP + SlideRule
Contents
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