import polars as pl
import pyspedas
from functools import partial
from space_analysis.io.cdf import cdf2pl
from typing import overloadParker 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(
instrument: Literal["fields"],
var_names: list[MagDataVars],
datatype: Literal["mag_rtn"],
level: Literal["l2"],
**kwargs,
): ...
@overload
def load(
instrument: Literal["spi"],
var_names: list[SPIDataVars],
datatype: Literal["sf00_l3_mom"],
level: Literal["l3"],
**kwargs,
): ...
def load(instrument="fields", var_names=None, datatype=None, **kwargs) -> pl.LazyFrame:
var_names, datatype = validate(instrument, datatype, var_names, **kwargs)
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)Datasets
Visualization
from space_analysis.ds.spz.plot import spz_plottr = ["2021-05-01", "2021-05-01T00:01"]
products = [
"cda/PSP_FLD_L2_MAG_RTN/psp_fld_l2_mag_RTN",
"cda/PSP_SWP_SPI_SF00_L3_MOM/DENS",
"cda/PSP_SWP_SPI_SF00_L3_MOM/VEL_RTN_SUN",
"cda/PSP_SWP_SPI_SF00_L3_MOM/TEMP",
]spz_plot(products, tr)/Users/zijin/src/space-analysis.py/.pixi/envs/default/lib/python3.11/site-packages/speasy/core/data_containers.py:17: UserWarning: no explicit representation of timezones available for np.datetime64
return np.searchsorted(time, np.datetime64(key, 'ns'), side='left')