Back to top

PyGNOME

PyGNOME, with GNOME logo.

The GNOME suite is built on a collection of open-source software tools developed by the Emergency Response Division (ERD) of NOAA OR&R.

These tools can be used on their own for advanced users to address a variety of problems involving oil, chemicals, and other objects drifting in the ocean.

PyGNOME

PyGNOME is the computational core of the GNOME suite. It is written in the Python and C++ programming languages. PyGNOME does all the computation behind the Web version of GNOME, and can be used for automation and scripting, more complex scenarios, and customizing and extending GNOME.

PyGNOME includes components for modeling oil spill transport (movement of the oil) at the surface or in three dimensions, fate (the weathering of oil), and response operations (such as skimming the oil, application of dispersant, or burning the oil in place). It can also be used as a general purpose particle-tracking model to study the movement of other substances or objects of interest, such as hind-casting the trajectory of floating mammals, or studying the transport of marine debris, fish and coral larvae, and harmful algal blooms.

PyGNOME also includes features not currently accessible via WebGNOME, such as coupling with the TAMOC (Texas A&M Oilspill Calculator) blowout plume model, modeling of oil transport in ice-infested waters, and experimental algorithms for oil dissolution and biodegradation.

Customizing the Model
PyGNOME has been designed to be a very flexible and customizable particle tracking and oil weathering model. It is relatively easy to add a new or customized component to the model, while taking advantage of the existing features. For instance, one might want to experiment with a new weathering algorithm, or add a larval behavior module for tracking larval transport.

Every aspect of the model can be customized with pure Python code. Once the source code is installed, the user has full access to adapt existing components to custom uses.

Users can access the model code from the PyGNOME gitHub page, along with documentation for PyGNOME’s use.

Scripting Tools

ERD provides a number of tools for working with both the input data for and the output results from GNOME. 

post_gnome is a Python package with utilities to help process and visualize GNOME output.

LibGOODS is a Python package for accessing and manipulating results from oceanographic and meteorological models for use with GNOME. LibGOODS is under active development and is not publicly available at this time.

Open Source

Source code for all of the GNOME components is available in the organization account for ERD on GitHub (NOAA-ORR-ERD). In addition to the GNOME code, there are a number of other small projects useful to the spill modeling community.

Running a Custom WebGNOME Server

The WebGNOME system uses a Web browser interface connected to a web application server. NOAA hosts a publicly available version and the system can be installed and run on another network, or all on one single stand-alone computer. 

All the code required to run a custom WebGNOME server is available on the NOAA-ORR-ERD GitHub organization

The required projects are:

  • PyGNOME: The code of the model itself. PyGNOME can be run on its own, customized, and used as the engine behind WebGNOME.
  • WebGNOME API: An html server that provides a JSON API to connect the WebGNOMEClient running in a browser to PyGNOME, providing the computation.
  • WebGNOME Client: A modern "Single Page App," written in HTML, CSS, and Javascript. It provides a rich, intuitive user interface to the GNOME spill modeling tools. The interface runs in a browser, accessing the model running on a local or distant server.
  • ADIOS Oil Database: A graphical Web Application and Python library for working with oil property data. It can be run in conjunction with WebGNOME or on its own.
  • NOAA Oil Data: The data that is provided via the ADIOS Oil Database Web application. The data is available and can be used on its own. It is in a public gitHub repository. Contributions can be made via gitHub. The adios_db Python package (available as part of the ADIOS OIl Database project) provides code to work with the data.
Web-based Modeling for your own Locations

If an institution wants to make WebGNOME available to its users pre-configured for a particular region, it can install and operate a WebGNOME server customized to its use-case(s). All the source code is available on GitHub, and NOAA can help you install and configure a custom installation, made available to the public or kept behind a firewall for private use.
 

Questions: Contact us with questions, comments, or suggestions about GNOME.

Last updated Friday, April 15, 2022 10:10pm PDT