MetData#

class rojak.core.data.MetData(longitude_name='longitude', latitude_name='latitude', *, persist=True)[source]#

Abstract base for a generic source of meteorological data

Subclasses are responsible for loading their own underlying data; this base class provides shared spatial domain selection (select_domain()) and longitude wraparound handling (shift_ds_longitude()). Every subclass must implement to_clear_air_turbulence_data(), adapting its own underlying data into the common CATData/CATPrognosticData interface. This is the extension point of the architecture: adding support for a new meteorological data source only requires a new MetData subclass that can produce a CATData, and every consumer downstream in rojak.turbulence keeps working unchanged. Subclasses should build the CATData with _create_cat_data() so that it respects persist.

Parameters:
  • longitude_name (str)

  • latitude_name (str)

  • persist (bool)

__init__(longitude_name='longitude', latitude_name='latitude', *, persist=True)[source]#
Parameters:
  • longitude_name (str) – Name of the longitude coordinate in the underlying data. Defaults to "longitude".

  • latitude_name (str) – Name of the latitude coordinate in the underlying data. Defaults to "latitude".

  • persist (bool) – Whether the CATData produced by to_clear_air_turbulence_data() persists its fields, see CATPrognosticData.__init__(). Defaults to True.

Return type:

None

Methods

__init__([longitude_name, latitude_name, ...])

select_domain(domain, data[, ...])

Subset a Dataset to the given spatial (and, if specified, vertical) domain

shift_ds_longitude(data[, domain_bound, ...])

See shift_longitude(), using this instance's configured longitude coordinate name

to_clear_air_turbulence_data(domain)

Build the CATData required by rojak.turbulence from this data source, over domain

Attributes

persist

Whether the CATData produced by to_clear_air_turbulence_data() persists its fields