https://github.com/cryogars/uavsar-lidar-ml-project
A project on predicting snow depth using L-Band InSAR parameters.
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
✓DOI references
Found 7 DOI reference(s) in README -
✓Academic publication links
Links to: frontiersin.org, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.8%) to scientific vocabulary
Keywords
Repository
A project on predicting snow depth using L-Band InSAR parameters.
Basic Info
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Snow Depth Prediction using L-Band InSAR Products
Overview
This work serves as a proof-of-concept that InSAR products can be used to estimate total snow depth through Machine Learning. This repository contains the code used to generate all results in our paper "Advancing Terrestrial Snow Depth Monitoring with Machine Learning and L-band InSAR data: A Case Study Using SnowEx 2017 Data" (doi: https://doi.org/10.3389/frsen.2024.1481848).
Dataset
This work uses dataset from the 2017 NASA SnowEx Campaign. The InSAR data is from NASA JPL's UAVSAR sensor, and the Lidar Depth is from ASO.
Software and hardware list
| Software used | Link to the software | Hardware specifications | OS required | |:---: |:---: |:---: |:---: | | Python 3.11.5 | https://github.com/pyenv/pyenv | This code should work on any recent PC/Laptop | Linux (any), MacOS, Windows|
Usage
To use the codes in this repository, you need to have Python installed. There are several ways to install Pyton. I will take you through how to install Python using the pyenv utility program. pyenv allows you to install different versions of Python and to seamlessly switch between them.
1. Install pyenv
Please follow the instructions here to install pyenv for your operation system (OS).
2. Setup the environment
2.1 Mac and Linux
Open the terminal and type the following commands to setup your virtual environment.
bash
pyenv install 3.11.5
mkdir insar_project
cd insar_project
pyenv local 3.11.5
python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
2.2 Windows
pyenv does not officially support Windows OS. Hence, you should install Python directly for your own version of Windows either by using the Microsoft Store or by navigating to https://www.python.org/downloads/windows/ in your browser and following the download link. During installation, be sure to check the box that adds Python to your PATH environment variables. To run Python in a virtual environment, open the PowerShell program and type the follow commands.
bash
mkdir insar_project
cd insar_project
python -m venv .venv
.venv/Scripts/activate
pip install --upgrade pip
If these instructions doesn't work for you (Windows users), you may need change the execution policy of your computer. To do this, run the PowerShell program as an administrator and run Set ExecutionPolicy Unrestricted. Afterwards, exit and reopen the PowerShell program (not as an administrator) then type commands in 2.2.
Note: the Windows installation guide was not tested and the entire codebase was not tested on a Windows machine!
3. Clone the Repository
bash
git clone git@github.com:cryogars/uavsar-lidar-ml-project.git
cd uavsar-lidar-ml-project
4. Install Source Code
bash
pip install .
5. Directory Setup
Create the data folder using the command below.
bash
mkdir data
6. Download Data
Download the remote sensing dataset into the
datafolder using this link.Download the in situ data following these steps:
* Create the folder to put the *in situ* measurement and change directory:
```bash
mkdir data/SNOWEX
cd data/SNOWEX
```
* Dowlond the *in situ* measurement from [NSIDC](https://nsidc.org/data/snex17_sd/versions/1). When you land at the page navigate to `Data Access Tool` -> `Get Data` and click `Download Script`. At the time of writing, `Download Script` is on the botton right of the page and the downloaded script is named `nsidc-download_SNEX17_SD.001_2025-01-07.py`. Note that you will need Earthdata username and password to download the *in situ* measurements. Click [here](https://urs.earthdata.nasa.gov/users/new) to register.
* Run the Python script to download the *in situ* data using:
```bash
python nsidc-download_SNEX17_SD.001_2025-01-07.py
```
* Move back to the parent directory and run the codes. Note that you will need `Jupyter Notebook` installed.
```bash
cd ../..
```
7. Deactivate Environment
After running the experiments, you can deactivate the virtual environment by running the command below.
bash
deactivate
Acknowledgements
We would like to express our gratitude to the NASA Terrestrial Hydrology Program and all participants of the SnowEx campaign for providing the Lidar and in situ data.
We also thank Yunling Lou - the UAVSAR Project Manager at NASA JPL - for the UAVSAR data.
This work was partially funded by the U.S. Army Cold Regions Research and Engineering Laboratory (CRREL) under contract W913E523C0002.
Citation
We would appreciate citations if you use our code in your work.
bash
@ARTICLE{alabi5advancing,
AUTHOR={Alabi, Ibrahim Olalekan and Marshall, Hans-Peter and Mead, Jodi and Trujillo, Ernesto },
TITLE={Advancing terrestrial snow depth monitoring with machine learning and L-band InSAR data: a case study using NASA’s SnowEx 2017 data},
JOURNAL={Frontiers in Remote Sensing},
VOLUME={5},
YEAR={2025},
URL={https://www.frontiersin.org/journals/remote-sensing/articles/10.3389/frsen.2024.1481848},
DOI={10.3389/frsen.2024.1481848},
ISSN={2673-6187}
}
Questions?
Ibrahim Alabi (Email: ibrahimolalekana@u.boisestate.edu)
Owner
- Name: Cryosphere Geophysics And Remote Sensing
- Login: cryogars
- Kind: organization
- Location: Boise, ID
- Website: https://sites.google.com/boisestate.edu/cryogarswebsite/
- Repositories: 1
- Profile: https://github.com/cryogars
Snow and ice research that leverages geophysics and remote sensing tools
GitHub Events
Total
- Push event: 31
Last Year
- Push event: 31
Dependencies
- geopandas ==0.14.0
- matplotlib ==3.8.0
- numpy ==1.24.4
- pandas ==2.1.4
- scikit-learn ==1.3.2
- scipy ==1.11.2
- seaborn ==0.13.1
- shap ==0.46.0
- torch ==2.0.1
- xgboost ==2.1.0