swvo.io.omni.variables#

Variable metadata shared by the OMNI readers.

Functions

available_variables([cadence])

Return metadata for the OMNI variables available at a cadence.

resolve_variable_names(registry, variables, ...)

Resolve user input to unique canonical variable names.

Classes

OMNIVariable(name, description, unit, fill_value)

Description of one processed OMNI variable.

class swvo.io.omni.variables.OMNIVariable(name: str, description: str, unit: str, fill_value: float | int | None, nasa_id: int | None = None, cadences: tuple[int, ...] = (), aliases: tuple[str, ...] = ())[source]#

Bases: object

Description of one processed OMNI variable.

swvo.io.omni.variables.available_variables(cadence: int | None = None) DataFrame[source]#

Return metadata for the OMNI variables available at a cadence.

Parameters:
cadenceint | None, optional

None selects the hourly OMNI2 registry. 1 and 5 select the corresponding high-resolution OMNIWeb registry.

Returns:
pandas.DataFrame

A new metadata table in registry order. Hourly rows contain name, description, unit, fill_value, and aliases. High- resolution rows additionally contain nasa_id and cadences.

Raises:
ValueError

If cadence is not None, 1, or 5.

Examples

>>> available_variables(cadence=1)  # one-minute OMNIWeb fields
>>> available_variables(cadence=5)  # five-minute OMNIWeb fields
>>> available_variables()  # hourly OMNI2 fields
swvo.io.omni.variables.resolve_variable_names(registry: Sequence[OMNIVariable], variables: str | Iterable[str] | None, default_names: Sequence[str], cadence: int | None = None) list[str][source]#

Resolve user input to unique canonical variable names.

Aliases are normalized, duplicates are removed while preserving the first occurrence, and "all" is restricted to the requested cadence.

Raises:
ValueError

If the selection is empty, not an iterable of strings, contains an unknown name, or requests a variable unavailable at cadence.