import polars as pl
import pyspedas
from functools import partial
from space_analysis.io.cdf import cdf2pl
from typing import overload
Parker Solar Probe (PSP)
validate
validate (instrument, datatype=None, var_names=None, **kwargs)
validate the input arguments and return the correct ones
def download_data(**kwargs):
return pyspedas.psp.load(downloadonly=True, **kwargs)
@overload
def load(
"fields"],
instrument: Literal[list[MagDataVars],
var_names: "mag_rtn"],
datatype: Literal["l2"],
level: Literal[**kwargs,
): ...
@overload
def load(
"spi"],
instrument: Literal[list[SPIDataVars],
var_names: "sf00_l3_mom"],
datatype: Literal["l3"],
level: Literal[**kwargs,
): ...
def load(instrument="fields", var_names=None, datatype=None, **kwargs) -> pl.LazyFrame:
= validate(instrument, datatype, var_names, **kwargs)
var_names, datatype
= download_data(instrument=instrument, datatype=datatype, **kwargs)
files
= partial(cdf2pl, var_names=var_names)
load_func
return pl.concat(load_func(file) for file in files)