https://github.com/cryogars/density-models

A machine learning for snow density estimation project.

https://github.com/cryogars/density-models

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

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