Using ICESat-2 ATL15 (Gridded Arctic Land Ice Height) to investigate ice-surface height anomalies
Using ICESat-2 ATL15 (Gridded Arctic Land Ice Height) to investigate ice-surface height anomalies#
Wilson Sauthoff (https://wsauthoff.github.io)
Luis Lopez (https://betolink.dev/)
Jessica Scheick (https://eos.unh.edu/person/jessica-scheick)
Tasha Snow (https://tsnow03.github.io)
Key learning outcomes:#
How to gather data from disparate sources.
What is a Coordinate Reference System (CRS) and why it matters.
How to use geometries including Points and Polygons to define an area of interest and subset data.
The basics of how the icepyx library simplifies obtaining and interacting with ICESat-2 data.
How Xarray can simplify the import of multi-dimensional data.
Open, plot, and explore gridded raster data.
We will set up our computing environment with library imports and utility functions
Tip: If you need to import a library that is not pre-installed, use
%pip install <package-name> alone within a Jupyter notebook cell to install it for this instance of CryoCloud (the pip installation will not presist between logins. All of the libraries we intend to use are pre-installed so we can skip this step.
# import internal libraries import os # import external libraries import earthaccess import geopandas as gpd import h5py import hvplot.xarray import icepyx as ipx import matplotlib as mpl %matplotlib widget import matplotlib.colors as colors import matplotlib.pyplot as plt import matplotlib.ticker as ticker from mpl_toolkits.axes_grid1 import make_axes_locatable import numpy as np import pandas as pd from pyproj import CRS, Transformer import rioxarray import s3fs import xarray as xr # define utility function def ll2ps(lon, lat): """ Transform coordinates from geodetic coordinates (lon, lat) to Greenland (epsg:3413) coordinates (x, y) x, y = ll2ps(lon, lat) Inputs * lon, lat in decimal degrees (lon: W is negative; lat: S is negative) Outputs * x, y in [m] """ crs_ll = CRS("EPSG:4326") crs_xy = CRS("EPSG:3413") ll_to_xy = Transformer.from_crs(crs_ll, crs_xy, always_xy = True) x, y = ll_to_xy.transform(lon, lat) return x, y