MetOpIASI#

class earth2studio.data.MetOpIASI(
satellite=None,
channel_indices=None,
time_tolerance=numpy.timedelta64(1, 'h'),
cache=True,
verbose=True,
async_timeout=600,
)[source]#
Global

EUMETSAT MetOp IASI Level 1C brightness temperature observations.

The Infrared Atmospheric Sounding Interferometer (IASI) is a Fourier transform infrared spectrometer aboard the MetOp series of polar-orbiting satellites. It measures calibrated spectral radiances across 8461 channels in the thermal infrared (645-2760 cm⁻¹, 3.6-15.5 µm), providing atmospheric temperature and humidity profiles, trace gas columns, and surface temperature at ~12 km spatial resolution.

Each scan line contains 30 Extended Fields Of View (EFOVs), each consisting of a 2x2 array of 4 Instantaneous Fields Of View (IFOVs), yielding 120 spectra per scan line. A typical orbit pass contains ~1400 scan lines (~168,000 IFOV spectra). To manage memory and processing time, a channel_indices parameter allows selecting a subset of channels.

This data source downloads Level 1C products from the EUMETSAT Data Store and parses the EPS native binary format to extract brightness temperatures, geolocation, and viewing geometry.

Parameters:
  • satellite (str, optional) – Satellite platform filter for product search. One of “metop-a”, “metop-b”, “metop-c”, or None (all available). By default None.

  • channel_indices (list[int] | np.ndarray | None, optional) – 0-based channel indices to extract (subset of 0..8460). If None, the 174 GSI-assimilated channels (matching UFSObsSat) are used. Pass np.arange(8461) to extract all channels (warning: very large output).

  • time_tolerance (TimeTolerance, optional) – Time tolerance window for filtering observations. Accepts a single value (symmetric ± window) or a tuple (lower, upper) for asymmetric windows, by default np.timedelta64(1, ‘h’)

  • cache (bool, optional) – Cache data source on local memory, by default True

  • verbose (bool, optional) – Print download progress and info, by default True

  • async_timeout (int, optional) – Time in seconds after which download will be cancelled if not finished, by default 600

Warning

This is a remote data source and can potentially download a large amount of data to your local machine for large requests. IASI L1C files are typically 100-200 MB each, with ~42-45 products per day across 3 satellites.

Note

Requires EUMETSAT Data Store credentials. Set the following environment variables:

  • EUMETSAT_CONSUMER_KEY: Your EUMETSAT API consumer key

  • EUMETSAT_CONSUMER_SECRET: Your EUMETSAT API consumer secret

Register at https://eoportal.eumetsat.int/ to obtain credentials.

Note

Additional information on the data repository:

__call__(time, variable, fields=None)[source]#

Function to get IASI brightness temperature observations.

Parameters:
  • time (datetime | list[datetime] | TimeArray) – Timestamps to return data for (UTC).

  • variable (str | list[str] | VariableArray) – Variables to return. Must be in MetOpIASILexicon (e.g. ["iasi"]).

  • fields (str | list[str] | pa.Schema | None, optional) – Fields to include in output, by default None (all fields).

Returns:

IASI observation data in long format with one row per IFOV per channel.

Return type:

pd.DataFrame

async fetch(time, variable, fields=None)[source]#

Async function to get IASI data.

Parameters:
  • time (datetime | list[datetime] | TimeArray) – Timestamps to return data for (UTC).

  • variable (str | list[str] | VariableArray) – Variables to return. Must be in MetOpIASILexicon (e.g. ["iasi"]).

  • fields (str | list[str] | pa.Schema | None, optional) – Fields to include in output, by default None (all fields).

Returns:

IASI observation data in long format with one row per IFOV per channel.

Return type:

pd.DataFrame