GNOME Suite: Components and Uses

The GNOME™ suite of tools can be used to support oil spill modeling and planning work (and even non-spill modeling) in a number of ways. To understand the options, here is a brief overview of the components comprising the suite and their possible uses.

Components of GNOME

The desktop version of GNOME (created in 1999) and the desktop version of ADIOS (created in 2000) are still available for use; however, a generational update of these flagship response tools, and consolidation with other spill response tools, is available in a Web version known as WebGNOME. Source code for all of the GNOME components are available in the Emergency Response Division’s (ERD’s) organization account on GitHub.

PyGNOME is the computational core of the GNOME oil spill modeling 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, and extending GNOME. PyGNOME includes components for modeling oil spill transport (movement of the oil), fate (weathering of the 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.

WebGnomeClient is 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.

WebGnomeAPI is an html server that provides a JSON API to connect the WebGNOMEClient running in a browser to PyGNOME, providing the computation.

ADIOS OilLibrary is a computational library that provides services for working with oil data and estimating oil properties. It includes an embedded data set with over 1,000 oils and their properties. It is written in Python, and is used by PyGNOME to help predict oil fate processes.

Uses for GNOME

Tools in the GNOME suite can be run in a wide variety of ways for different purposes. Simple Intuition Building and Drills, using pre-configured location information Using WebGNOME, users can have full access to the model, allowing them to set up spill scenarios and explore:

  • How an oil might weather and change when spilled (using the Weathering Only mode, similar to the desktop ADIOS model).
  • How oil might be transported in a pre-configured location (using specific “Location Files”). WebGNOME comes with about 30 pre-configured Location Files, mostly in the United States. They are configured to capture the general climatology of a region, and with a few additional inputs, can provide realistic simulations suitable for intuition building and drills/exercises.
  • How oil might be transported in any location. If your location of interest is not one of the pre-configured locations, then the model can be fully customized for your location (using Manual Setup). In this case, you must provide a land-water map, and winds and currents for the time and place of interest. Many GNOME-compatible data sets are provided through NOAA's GOODS web application, but you can also provide winds and currents from the results of other models. GNOME supports a wide variety of model meshes and formats.
  • How oil might be transported and weathered. Oil weathering and transport can be computed at the same time, by turning on both modes at once. In this case, additional data, such as oil type, water temperature and wave conditions must be provided. This can be done in predetermined locations or with your own custom setup.

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.

Large Scale Modeling

As a public Web service, the NOAA-operated WebGNOME cannot be used for very large simulations. In addition, as the model itself is running on a remote server, it is impractical to work with very large data sets. For example, many months of results from a 3D oceanographic model are simply too large to upload and download to a remote server at run time. To address this use-case, the WebGNOME stack can be installed and operated on a single laptop or workstation. In this case, the data files can be pre-loaded and accessed directly by the server without needing to upload and download any data at run time. A simple installer for this is in NOAA’s development plans.

Batch Processing

If you have a need to run many simulations for stochastic modeling, or as an automated process in support of another service, PyGNOME can be used directly and driven with scripts written in the Python programming language. This gives you full flexibility and power to both control every detail of the model configuration and interact with external data sources and Web services. The source code and installation instructions for PyGNOME are available on GitHub, along with documentation of the code.

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.

Current Versions

Follow the links above, or access the components of the GNOME suite below:

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