Parker Solar Probe (PSP)


validate

 validate (instrument, datatype=None, var_names=None, **kwargs)

validate the input arguments and return the correct ones

import polars as pl
import pyspedas

from functools import partial
from space_analysis.io.cdf import cdf2pl
from typing import overload
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_plot
tr = ["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')