https://github.com/cryogars/density-models
A machine learning for snow density estimation project.
Science Score: 26.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
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.6%) to scientific vocabulary
Last synced: 10 months ago
·
JSON representation
Repository
A machine learning for snow density estimation project.
Basic Info
- Host: GitHub
- Owner: cryogars
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Size: 63.2 MB
Statistics
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 0
- Releases: 0
Created over 1 year ago
· Last pushed 10 months ago
Metadata Files
Readme
License
README.md
Snow Density Estimation using Machine Learning
This is the codebase for "A Machine Learning Model for Estimating Snow Density and Snow Water Equivalent from Snow Depth and Seasonal Snow Climate Classes."
Overview
This study proposes a machine learning model for estimating snowpack bulk density ($\rho_s$) from snow depth ($HS$) and other variables that can be measured or derived from the date and location of $HS$ measurements. This repository contains:
- Source code for our paper (DOI will be shared after paper acceptance).
- Instructions for setup and usage.
Dataset
The dataset used in this study comes from thre sources:
- SNOTEL Dataset - was downloaded using [metloom](https://metloom.readthedocs.io/en/latest/usage.html#snotel).
- [Global Seasonal Snow Classification](https://nsidc.org/data/nsidc-0768/versions/1).
- [Maine Snow Survey Data](https://mgs-maine.opendata.arcgis.com/datasets/maine-snow-survey-data/explore).
Software & Hardware List
| Software used | Version | Hardware specifications | OS required |
|:---: |:---: |:---: |:---: |
| Python | 3.11.5 | The codes in this repository should work on any recent PC/Laptop | Linux (any), MacOS, Windows|
Installation and Setup
This project uses *Conda* for environment management. However, you can use any environment management tool of your choice. For example, you can manage Python versions with [pyenv](https://github.com/pyenv/pyenv) and create a virtual environment using [venv](https://docs.python.org/3/library/venv.html). Go to **Step 3** if you wish not to use *Conda*.
### 1. Install Conda
If you don’t have Conda installed, download **[Anaconda or MiniConda](https://www.anaconda.com/download/success)**. See [Installing Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html) to know which installer is right for you.
### 2. Create and Activate the Conda Environment
```bash
conda env create --file environment.yml
conda activate ml_density_env
```
### 3. Installation (Non-Conda Users)
For those not using Conda, you can set up a virtual environment with [venv](https://docs.python.org/3/library/venv.html):
```bash
python -m venv ml_density_env
source ml_density_env/bin/activate # activate the virtual environment
```
Note: the Python version will be the default version on your PC. You can manage Python version using [pyenv](https://github.com/pyenv/pyenv).
### 4. Create and Navigate to Directory
```bash
mkdir ml_density
cd ml_density
```
### 5. Clone This Repository
```bash
git clone https://github.com/cryogars/density-models.git
cd density-models
```
### 6. Verify Installation
Ensure everything is set up correctly:
```bash
python --version # Should return 3.11.5
pip list # Displays installed packages
```
### 7. Run Tests (Optional)
To verify the models are working correctly, you can run the tests:
```bash
pytest -v # Run all tests
```
### 8. Install Source Code
```bash
pip install .
```
If you wish to modify the source code, install in development mode:
```bash
pip install -e .
```
**Note**: This project uses `conda` to only manage the Python version and install Jupyter. All package dependencies are installed via `pip`. This approach makes the installation process more consistent whether you're using conda or another environment management tool (e.g., pyenv + venv). All dependencies are specified in `requirements.txt`
Directory Setup
Create the data folder and download:
1. SNOTEL Data: [link](https://drive.google.com/file/d/1tcMnNPq_SYLGoLEY-FeBJVaJf1qqtntZ/view?usp=sharing).
2. Global Seasonal Snow Classification on NSIDC: [NSIDC link](https://nsidc.org/data/nsidc-0768/versions/1). For this project, download `SnowClass_NA_300m_10.0arcsec_2021_v01.0.nc`.
3. Main Snow Survey Data: [link](https://mgs-maine.opendata.arcgis.com/datasets/maine-snow-survey-data/explore).
Deactivate and/or Remove Environment
After running the experiments, you can deactivate the conda environment by running the command below:
```bash
conda deactivate
```
To completely remove the environment, run:
```bash
conda env remove --name ml_density_env
```
Acknowledgments
The authors would like to thank:
1. USDA NRCS for providing the SNOTEL data
2. [M3Works](https://m3works.io/) for their [metloom](https://metloom.readthedocs.io/en/latest/usage.html#snotel) package, which we used to download the SNOTEL data.
3. Maine Geological Survey and the United States Geological Survey for providing the [Maine Snow Survey data](https://mgs-maine.opendata.arcgis.com/datasets/maine-snow-survey-data/explore).
4. The creators of the [srtm.py Python package](https://github.com/tkrajina/srtm.py?tab=readme-ov-file) for their open-source tool, which we used to obtain the SRTM elevation data.
5. U.S. Army CRREL for the funding (BAA W913E520C0017).
Contact
For any questions or issues, please open an **issue** or reach out to **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
- Issues event: 2
- Issue comment event: 1
- Public event: 1
- Push event: 70
- Pull request event: 1
- Fork event: 2
Last Year
- Issues event: 2
- Issue comment event: 1
- Public event: 1
- Push event: 70
- Pull request event: 1
- Fork event: 2
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 1
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 0
- Average comments per issue: 0.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 0
- Average comments per issue: 0.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- Ibrahim-Ola (1)
Pull Request Authors
Top Labels
Issue Labels
documentation (1)
enhancement (1)
model-evaluation (1)
reviewer-response (1)
high-priority (1)
Pull Request Labels
Dependencies
.github/workflows/installation.yml
actions
- actions/checkout v4 composite
- actions/setup-python v5 composite
.github/workflows/macos.yml
actions
- actions/checkout v4 composite
- actions/setup-python v5 composite
.github/workflows/pypi.yml
actions
- actions/checkout v4 composite
- actions/setup-python v5 composite
.github/workflows/ubuntu.yml
actions
- actions/checkout v4 composite
- actions/setup-python v5 composite
.github/workflows/windows.yml
actions
- actions/checkout v4 composite
- conda-incubator/setup-miniconda v2 composite
pyproject.toml
pypi
requirements.txt
pypi
- category_encoders ==2.8.0
- contextily ==1.6.2
- geopandas ==0.14.4
- lightgbm ==4.6.0
- matplotlib ==3.10.0
- metloom ==0.6.3
- numpy ==2.2.3
- optuna ==4.2.1
- optuna-dashboard ==0.17.0
- pandas ==2.2.3
- pyarrow ==19.0.1
- pyproj ==3.7.1
- rioxarray ==0.18.2
- scikit-learn ==1.6.1
- seaborn ==0.13.2
- shap ==0.46.0
- srtm.py ==0.3.7
- torch ==2.6.0
- xarray ==2025.1.2
- xgboost ==2.1.4
environment.yml
pypi