import pyspedas
import polars as pl
from functools import partial
from typing import Literal, overload
from space_analysis.io.cdf import cdf2plDeep Space Climate Observatory (DSCOVR)
The routines in this module can be used to load data from the Deep Space Climate Observatory (DSCOVR) mission.
Instruments
- Magnetometer
- Faraday cup
def download_data(**kwargs):
return pyspedas.dscovr.load(downloadonly=True, **kwargs)
@overload
def load_data(
instrument: Literal["mag"],
var_names: list[MagDataVars],
datatype: Literal["h0"],
**kwargs,
): ...
@overload
def load_data(
instrument: Literal["faraday_cup"],
var_names: list[PlasmaDataVars],
datatype: Literal["h1"],
**kwargs,
): ...
def load_data(
instrument="mag", var_names=None, datatype=None, **kwargs
) -> pl.LazyFrame:
if instrument == "mag":
var_names = var_names or ["B1F1", "B1RTN"]
datatype = datatype or "h0"
elif instrument == "faraday_cup":
var_names = var_names or ["Np", "V_GSE", "THERMAL_TEMP"]
datatype = datatype or "h1"
files = download_data(instrument=instrument, datatype=datatype, **kwargs)
load_func = partial(cdf2pl, var_names=var_names)
return pl.concat(load_func(file) for file in files)