GSoC 2026
IOOS

IOOS — Project Ideas

| Implement QARTOD Glider QA/QC recommendations in ioos-qc | #102 | Check what tests are in the QARTOD glider manual, but not implement yet. Note that some of the test are similar and may just need a new kw rather than a fresh implementation. | 350 hours | | Flesh out xarray-erddap CIs, test suite and documentation | #108 | The xarray-erddap package is a thin wrapper to erddapy that provides a new engine to xarray. The wrapper requires a test suite. continuous integration tests and deployment, and some documentation. | 90 hours | | Add empirical dynamic model to FIMS | #107 | The Fisheries Integrated Modeling System (FIMS) is an R package that uses RCPP to allow C++ to work inside of R to assess the status of marine populations that are fished. Currently, we have an age-structured assessment model and we are in the process of adding a surplus production model. It would be amazing to include an empirical dynamic model in the suite of models, which we call model families. | 175 hours | | Scalable OCSMesh: Parallelization and Spatial Partitioning | #112 | OCSMesh V.2.0+ is a Python package designed for generating unstructured meshes tailored to ocean modeling. A parallel version of OCSMesh size function was developed in GSoC 2025. This project expands on last years’ success to make OCSMesh a truly HPC-native tool capable of handling global-scale domains. | 350 hours | | Refactoring Hurricane Surrogate Model | #113 | The Storm Surge Modeling team at the Office of Coast Survey (OCS) has developed a Python package, EnsemblePerturbation, for an end to end probabilistic prediction of tropical cyclone (TC)-driven coastal flood analysis. EnsemblePerturbation has a large dependency tree which makes it difficult to be approved for use on NOAA’s operational system (Weather and Climate Operational Supercomputing System - WCOSS). The goal of this project is to reduce the external package dependency of EnsemblePerturbation to a minimum | 175 hours | | Echoshader: a package for interactive visualisation and dashboarding of ocean sonar data | #110 | This project builds on Echopype, which standardises and processes sonar data from a wide range of platforms. The goal of this GSoC project is to further develop Echoshader, an open-source companion visualisation tool written in Python, originally developed by a GSoC’22 contributor to facilitate ocean sonar data visualisation. We aim to further develop the Echoshader package by extending the current functionalities, and demonstrate its capabilities on multiple types of datasets (from ships, moorings, and autonomous vehicles) through robust cloud deployment. In doing so, we aim to integrate recent developments from engine_echo_data_viz into echoshader. | 175 hours | | Improve FIMS uncertainty reporting | #111 | The Fisheries Integrated Modeling System (FIMS) is an R package that uses RCPP to allow C++ to work inside of R to run statistical models for assessing the status of marine populations that are fished. Currently, FIMS calculates estimation uncertainty for all derived quantities (values calculated from combinations of parameters) in the model. The uncertainty calculations are computationally expensive and models with a large number of derived quanities are running into memory limits. The aim of this project is to devise an interface for the user to turn on/off uncertainty reporting for specific derived quantities. | 175 hours | | Enhancing Daily Skill Assessment Workflows for NOAA’s Global Surge and Tide Operational Forecast System | #109 | This project focuses on enhancing the AUTOVAL package, which provides daily skill assessments and statistical summaries for different STOFS components. Currently, AUTOVAL generates static HTML reports evaluating model performance across different cycles and locations. The primary goal is to transform this existing Python-based evaluation logic into an interactive Chatbot interface. | 350 hours | | Enhance NOS skill assessment package’s user and developer experience | #100 | The National Ocean Service (NOS) is currently developing a Python package to assess the skill of their Operational Forecast Systems (OFS). The goal of this project is to work with the NOS team and improve the skill assessment package by: 1) Enhancing the user experience by expanding the existing graphical user interface (GUI) and adding a visualization dashboard that displays results, and 2) Expanding automated GitHub testing, debugging, and other code development tools used in the code development workflow. | 350 hours | | Enhancing the noaa_coops Python package | #101 | The noaa_coops Python package provides a wrapper for the NOAA CO-OPS Tides & Currents data APIs. This project will upgrade the noaa_coops Python package to improve usability across CO-OPS’ products, ensuring a seamless user experience while adhering to API best practices. Improvements will include simplifying access to data requests exceeding CO-OPS Data API data length limits, and introducing support for additional CO-OPS API endpoints, such as the derived product API. | 90 hours | | Add sex structure to FIMS statistical-catch-at-age model | #114 | Right now, the statistical catch-at-age model in the Fisheries Integrated Modeling System (FIMS) has a single sex. Adding sex structure to allow for males, females, and hermaphrodites is high on the priority list. This will involve coding in both C++ and R, where the population dynamics are written in C++ and interacting with setting up the model and structuring the data are in R. | 350 hours | | Develop a universal installer for National Stock Assessment Program (NSAP) packages | #115 | Scientific software often depends on a complex mix of system tools, compilers, and R packages, making setup difficult and error-prone. This project will build a universal installer that provides simple “one-command” setups (e.g., bash scripts) for National Stock Assessment Program projects such as Stock Assessment Workflows and the Fisheries Integrated Modeling System (FIMS) | 175 hours |

Related Pages

Command Palette

Search for a command to run...