Comparisons with BGEP ULS sea ice draft estimates#

Summary: In this notebook, we produce comparisons of the gridded ICESat-2 sea ice thickness data with draft measurements obtained from Upward Looking Sonar moorings deployed in the Beaufort Sea.

Raw data link: https://www2.whoi.edu/site/beaufortgyre/data/mooring-data/2018-2021-mooring-data-from-the-bgep-project/

Notes:

  • With more years of data we hope to explore seasonal de-trending of the data. Current tools (e..g seasonal_decompose from statsmodel) require more years of data then currently provided by the ICESat2-/BGEP overlap period (2018 to 2021)

  • Some previous studies have removed zero draft values from ULS before undertaking these comparisons. Hard to know what is best here. ATL10 are available for passive microwave concentrations > 50%. Our gridded thickness data includes all this (baring some additional anomaly filters) so could also include reasonably large stretches of thin ice/open water too. I have toyed with included a ‘thickness where we have ice’ variable too, which I could easily include later, then we would just compare this to positive values of ULS draft?

  • Could require a minimum number of IS2 grid-cells, but would perhaps need to depend on the chosen comp_res. Note how in some September/October months there appears to be no data overlap, I included some maps at the end to highlight this more, the moorings are right on the edge of the ice pack in September 2019 for instance.

  • We do a fair bit of averaging to try and reduce noise from various sources, including sampling differences/representation errors. One more direct way of dealing with this would be to use the day_of_the_month information in the IS-2 thickness data to see what actual day the nearest grid-cells to the moorings best represent and comapre that to the daily ULS data. This leads to using the along-track data too, hard to know when to stop..

  • We could have made better use of Pandas in this analysis but I was a bit time pressured.

Version history: Version 1 (01/01/2022)

Import notebook dependencies#

import xarray as xr 
import pandas as pd
import numpy as np
import itertools
import pyproj 
from netCDF4 import Dataset
import scipy.interpolate 
from utils.read_data_utils import read_book_data # Helper function for reading the data from the bucket
from utils.plotting_utils import compute_gridcell_winter_means, interactiveArcticMaps, interactive_winter_mean_maps, interactive_winter_comparison_lineplot # Plotting
from scipy import stats
import datetime
# Plotting dependencies
import cartopy.crs as ccrs
from textwrap import wrap
import hvplot.pandas
import holoviews as hv
import matplotlib.pyplot as plt
from matplotlib.axes import Axes
from cartopy.mpl.geoaxes import GeoAxes
GeoAxes._pcolormesh_patched = Axes.pcolormesh # Helps avoid some weird issues with the polar projection 
%config InlineBackend.figure_format = 'retina'
import matplotlib as mpl

mpl.rcParams['figure.dpi'] = 200 # Sets figure size in the notebook

# Remove warnings to improve display
import warnings 
warnings.filterwarnings('ignore')