A data science and machine learning project focused on Great Lakes ice forecasting using NOAA NetCDF (.nc) datasets. Includes full data processing pipelines, U-Net forecasting, visualization tools, and a static GitHub Pages dashboard.
Built by students at Grand Valley State University who live, study, and work near the Great Lakes.
-
Marcos Sanson β Machine Learning Model Development
Processed NetCDF data, built the forecasting dataset, developed and trained the U-Net model, and generated all HD visualizations and February predictions. -
Elijah Morgan β Data Reading & Analysis
Handled ingestion of raw NetCDF files, verified dataset structure and metadata, and organized the initial file system used across the project. -
Darren Fife β Data Reading & Documentation
Evaluated and interpreted the GLSEA dataset, confirmed the continuity of observations, and contributed to the end-to-end data preparation workflow. -
Diego de Jong β Frontend & Dashboard Development
Built the GitHub Pages site, designed the layout and visual presentation of predictions, and created the project demo video.
- End-to-end pipeline for Great Lakes ice concentration forecasting
- NetCDF ingestion and visualization tools for NOAA GLSEA data
- Daily visualization generation with stable color scales and custom land shading
- Machine learning dataset builder using 7-day input windows
- U-Net model training for next-day ice forecasting
- Automated February prediction generator with versioned output folders and GIFs
- Static dashboard website hosted through GitHub Pages
- Jupyter notebooks for exploration and development
- HD visualization script with grid overlays for targeted ice-clearing operations
- Clear, modular project structure suitable for future extensions
MISpaceHackathon/
βββ assets/
β βββ css/
β βββ style.css
β
βββ data/
β βββ raw/ # (optional; primary raw data lives outside repo)
β βββ processed/ # ML-ready arrays (X.npy, y.npy)
β βββ external/
β
βββ notebooks/
β βββ 01_data_exploration.ipynb
β
βββ src/
β βββ daily_visualizations/ # Jan11βJan31 PNGs
β β
β βββ data_processing/
β β βββ load_and_visualize.py
β β βββ inspect_nc.py
β β βββ downsample_data.py
β β βββ processor.py
β β βββ nc_visualizer_outputs/
β β
β βββ models/
β β βββ predict_unet.py
β β βββ train_unet.py
β β βββ checkpoints/
β β
β βββ utils/
β β βββ gif_utils.py (optional)
β β
β βββ predictions_ver_*/ # Feb predictions + GIFs
β
βββ index.html
βββ data-science.html
βββ README.md
git clone https://github.com/ElijahLeeMorgan/MISpaceHackathon.git
cd MISpaceHackathonOpen index.html or run:
python -m http.server 8000Visit: http://localhost:8000
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtOpen the website or load index.html.
pip install xarray netCDF4 pandas numpy matplotlibimport xarray as xr
import matplotlib.pyplot as plt
ds = xr.open_dataset('weather_data.nc')
print(ds)
temp = ds['temperature']
temp.mean(dim=['lat', 'lon']).plot()
plt.title('Average Temperature Over Time')
plt.show()NetCDF (Network Common Data Form) files are widely used in climate and weather science. They store large multi-dimensional arrays such as temperature, ice concentration, wind speed, and more.
pip install xarray netCDF4 numpy pandas matplotlib cartopyThe forecasting dataset converts daily 1024Γ1024 GLSEA maps into:
- Inputs: 7 consecutive days
- Label: next-day ice map
Resulting shapes:
X: (N, 7, 1024, 1024)
y: (N, 1024, 1024)
python src/models/train_unet.py- Trains for 5 epochs
- Saves checkpoints to
src/models/checkpoints/
python src/models/predict_unet.pyOutputs:
predictions_ver_1/
Feb01.png
Feb02.png
Feb03.png
Feb04.png
forecast.gif
Enhancements include:
- Clamp to 0β6 range
- Stabilization smoothing
- Light-blue land shading
- HD rendering and GIF generation
notebooks/01_data_exploration.ipynb demonstrates:
- NetCDF inspection
- Visualization of Great Lakes patterns
- Data cleaning
- Early ML experiments
- NOAA GLSEA (Great Lakes Surface Environmental Analysis)
- NOAA CoastWatch / GLERL
- NCEP / HRRR / GFS weather model fields (optional future extensions)
- Fork
- Create a feature branch
- Implement changes
- Submit a pull request
Possible contribution areas:
- Better visualization
- Additional preprocessing
- New ML architectures
- More interactive dashboard features
MIT License β see LICENSE.
- Marcos Sanson
- Elijah Lee Morgan
- Diego De Jong
- Darren Fife
- xarray and NetCDF communities
- NOAA, NASA, ECMWF for open data
- Python data science community
- PyTorch and scikit-learn teams
- GitHub Pages for hosting
Built with β€οΈ by students at Grand Valley State University, inspired by the Great Lakes we live beside and study around.