Awesome
DeepIceDrain [poster]
Mapping and monitoring deep subglacial water activity in Antarctica using remote sensing and machine learning.
Ice Surface Elevation trends over Antactica | Active Subglacial Lake fill-drain event |
---|---|
Along track view of an ATL11 Ground Track | Elevation time-series at Crossover Points |
---|---|
Getting started
Quickstart
Launch in Binder (Interactive jupyter lab environment in the cloud).
Alternative Pangeo BinderHub link. Requires a GitHub account and you'll have to install your own computing environment, but it runs on AWS uswest2 which allows for cloud access to ICESat-2!
Usage
Once you've properly installed the deepicedrain
package
(see installation instructions further below), you'll have access to a
wide range of tools
for downloading and performing quick calculations on ICESat-2 datasets.
The example below shows how to calculate ice surface elevation change
on a sample ATL11 dataset between ICESat's Cycle 3 and Cycle 4.
import deepicedrain
import xarray as xr
# Loads a sample ATL11 file from the intake catalog into xarray
atl11_dataset: xr.Dataset = deepicedrain.catalog.test_data.atl11_test_case.read()
# Calculate elevation change in metres from ICESat-2 Cycle 3 to Cycle 4
delta_height: xr.DataArray = deepicedrain.calculate_delta(
dataset=atl11_dataset, oldcyclenum=3, newcyclenum=4, variable="h_corr"
)
# Quick plot of delta_height along the ICESat-2 track
delta_height.plot()
Installation
Basic
To just try out the scripts, download the environment.yml
file from the repository and run the commands below:
cd deepicedrain
mamba env create --name deepicedrain --file environment.yml
pip install git+https://github.com/weiji14/deepicedrain.git
Intermediate
To help out with development, start by cloning this repo-url
git clone <repo-url>
Then I recommend using mamba to install the non-python binaries. A virtual environment will also be created with Python and poetry installed.
cd deepicedrain
mamba env create --file environment.yml
Activate the virtual environment first.
mamba activate deepicedrain
Then install the python libraries listed in the pyproject.toml
/poetry.lock
file.
poetry install
Finally, double-check that the libraries have been installed.
poetry show
Advanced
This is for those who want full reproducibility of the virtual environment, and more computing power by using Graphical Processing Units (GPU).
Making an explicit conda-lock file (only needed if creating a new virtual environment/refreshing an existing one).
mamba env create -f environment.yml
mamba list --explicit > environment-linux-64.lock
Creating/Installing a virtual environment from a conda lock file. See also https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#building-identical-conda-environments.
mamba create --name deepicedrain --file environment-linux-64.lock
mamba install --name deepicedrain --file environment-linux-64.lock
If you have a CUDA-capable GPU, you can also install the optional "cuda" packages to accelerate some calculations.
poetry install --extras cuda
Running jupyter lab
mamba activate deepicedrain
python -m ipykernel install --user --name deepicedrain # to install virtual env properly
jupyter kernelspec list --json # see if kernel is installed
jupyter lab &
Related Projects
This work would not be possible without inspiration from the following cool open source projects! Go check them out if you have time.
Citing
The work in this repository has not been peer-reviewed, but if you do want to cite it for some reason, use the following BibLaTeX code from this conference proceedings (poster presentation):
@inproceedings{LeongSpatiotemporalvariabilityactive2021,
title = {{Spatiotemporal Variability of Active Subglacial Lakes in Antarctica from 2018-2020 Using ICESat-2 Laser Altimetry}},
author = {Leong, W. J. and Horgan, H. J.},
date = {2021-02-10},
publisher = {{Unpublished}},
location = {{Christchurch, New Zealand}},
doi = {10.13140/RG.2.2.27952.07680},
eventtitle = {{New Zealand Antarctic Science Conference}}},
langid = {english}
}
Python code for the DeepIceDrain package here on Github is also mirrored on Zenodo at https://doi.org/10.5281/zenodo.4071235.