Inspiration
The U.S. Coast Guard (USCG) needs 3-day ice cover predictions and commercial supply support carries 130 million tons of cargo through Great Lakes. Current USNIC data has limitations. This project provides an ML solution to generate this 3-day forecast.
What it does
The project is a deep learning pipeline that generates a 3-day (T+1, T+2, T+3) ice concentration forecast. It ingests historical ice data, weather forecasts, and static environmental data to train a model. The final output is a netCDF file and a visualization.
How it was built
- Model: A 2D U-Net built in PyTorch, using standard
ConvBlock,DownBlock, andUpBlocklayers with skip connections. - Data Input (9 Channels):
- T0 Ice Concentration (GLSEA)
- Delta Ice (T0 - T-1) (GLSEA)
- T-1 Air Temp (HRRR)
- T-1 U-Wind (HRRR)
- T-1 V-Wind (HRRR)
- T-1 Precipitation Rate (HRRR)
- T0 Water Surface Temp (GLSEA)
- Shipping Routes Mask (Static)
- GEBCO Bathymetry (Static)
- Data Output (3 Channels):
- T+1 Ice Concentration
- T+2 Ice Concentration
- T+3 Ice Concentration
- Training:
- Loss: Masked MSE (
masked_loss) ignores land pixels. - Optimization: Uses Adam,
ReduceLROnPlateauscheduler, andtorch.cuda.ampfor mixed-precision. - Sampling: A
GreatLakesDatasetsamples 256x256 patches, biased to prioritize areas with ice or shipping routes.
- Loss: Masked MSE (
Challenges
- Data Integration: Integrating heterogeneous data (S3 Zarr, netCDF, shapefiles, GeoTIFFs).
- Geospatial Alignment: Reprojecting all data (e.g., HRRR, GLSEA) to a common master grid.
- Training Stability:
- Using
masked_lossto ignore land. - Cleaning all inputs of NaNs before concatenation.
- Correcting U-Net
UpBlockchannel arithmetic for skip connections.
- Using
Accomplishments
- An end-to-end forecasting pipeline that ingests raw, multi-modal data and outputs a 3-day prediction.
- An efficient
GreatLakesDatasetwith pre-loading, caching, and biased sampling. - A robust training loop using mixed-precision and a custom masked loss function.
- Successful integration of 9 distinct input channels (dynamic weather/ice and static bathymetry/shipping routes).
Lessons learned
- By far the most important parts of the project ended up being the data alignment and prioritizing the right metrics (ice concentration recall being the most important).
- Lower-level evaluations should be done on channels and ports (for instance an evaluation on the St. Mary's river).
What's next for GLIC?
- Integrate ice thickness prediction.
- Classify ice type (pack vs. fast ice).
- Classify ice state (new, melting, thin, thick).
- Improve forecast resolution and access frequency.
- Spend more time coming up with a clean dataset to minimize resizing.

Log in or sign up for Devpost to join the conversation.