Core Concepts#

Rompy is a Python library for generating ocean model control files and required input data ready for ingestion into the model. The framework is separated into two broad concepts:

rompy.model.ModelRun

A model run.

rompy.core.BaseConfig

Base class for model templates.

There is information about each of these in the documentation of each object, but at a high level, ModelRun is the high level framework that renders the config object and controls the period of which the model is run, and the config object is responsible for producing model configuration.

If we consider a very simple case using the BaseConfig class. This is not inteded to do anything except provide a bass class on which to implement a specific model, however, is is functional and can be used to demonstrate core concepts.

Core objects#

Grid#

Grids form a core component of any model. Rompy provides a base class for grids, and a regular grid class. Support for other grid types will be added in the future.

rompy.core.grid.BaseGrid

Representation of a grid in geographic space.

rompy.core.grid.RegularGrid

Regular grid in geographic space.

Data#

Data objects are used to represent data inputs into the model. Rompy provides the following base classes for data objects:

rompy.core.data.DataBlob

Data source for model ingestion.

rompy.core.data.DataGrid

Data object for model ingestion.

rompy.core.data.SourceBase

Abstract base class for a source dataset.

rompy.core.data.SourceFile

Source dataset from file to open with xarray.open_dataset.

rompy.core.data.SourceIntake

Source dataset from intake catalog.

Boundary#

rompy.core.boundary.BoundaryWaveStation

Wave boundary data from station datasets.

rompy.core.boundary.SourceWavespectra

Wavespectra dataset from wavespectra reader.

Spectrum#

rompy.core.spectrum.LogFrequency

Logarithmic wave frequencies.

Model Run#

rompy.model.ModelRun

A model run.