Datasets

This module contains the useful functions to deal with candidates datasets and individual candidate.

Datasets

Fundamental class


source

IdsEvents

 IdsEvents (name:str=None, data:polars.lazyframe.frame.LazyFrame=None,
            ts:datetime.timedelta=None, tau:datetime.timedelta=None,
            events:polars.dataframe.frame.DataFrame=None,
            method:Literal['fit','derivative']='fit', **extra_data:Any)

Core class to handle discontinuity events in a dataset.

Type Details
data Any
Returns None type: ignore

source

write

 write (df:polars.dataframe.frame.DataFrame, fname:pathlib.Path,
        format=None, **kwargs)

source

log_event_change

 log_event_change (event, logger=<loguru.logger handlers=[(id=0, level=10,
                   sink=<_io.StringIO object at 0x1077c2f80>)]>)
Code
from fastcore.all import concat

ls = concat([None, [1], None])
ls.remove(None)
ls
[1, None]
Code
# def overview_plot(
#     self, event: dict, start=None, stop=None, offset=timedelta(seconds=1), **kwargs
# ):
#     # BUG: to be fixed
#     start = start or event["tstart"]
#     stop = stop or event["tstop"]

#     start -= offset
#     stop += offset

#     _plasma_data = self.plasma_data.filter(
#         pl.col("time").is_between(start, stop)
#     ).collect()

#     _mag_data = (
#         self.data.filter(pl.col("time").is_between(start, stop))
#         .collect()
#         .melt(
#             id_vars=["time"],
#             value_vars=self.bcols,
#             variable_name="B comp",
#             value_name="B",
#         )
#     )

#     v_df = _plasma_data.melt(
#         id_vars=["time"],
#         value_vars=self.plasma_meta.velocity_cols,
#         variable_name="veloity comp",
#         value_name="v",
#     )

#     panel_mag = _mag_data.hvplot(
#         x="time", y="B", by="B comp", ylabel="Magnetic Field", **kwargs
#     )
#     panel_n = _plasma_data.hvplot(
#         x="time", y=self.plasma_meta.density_col, **kwargs
#     ) * _plasma_data.hvplot.scatter(
#         x="time", y=self.plasma_meta.density_col, **kwargs
#     )

#     panel_v = v_df.hvplot(
#         x="time", y="v", by="veloity comp", ylabel="Plasma Velocity", **kwargs
#     )
#     panel_temp = _plasma_data.hvplot(
#         x="time", y=self.plasma_meta.temperature_col, **kwargs
#     )

#     mag_vlines = hv.VLine(event["t.d_start"]) * hv.VLine(event["t.d_end"])
#     plasma_vlines = hv.VLine(event.get("time_before")) * hv.VLine(
#         event.get("time_after")
#     )

#     logger.info(f"Overview plot: {event['tstart']} - {event['tstop']}")
#     log_event_change(event)

#     return (
#         panel_mag * mag_vlines
#         + panel_n * plasma_vlines
#         + panel_v * plasma_vlines
#         + panel_temp * plasma_vlines
#     ).cols(1)

source

IDsDataset

 IDsDataset (name:str=None,
             mag_data:polars.lazyframe.frame.LazyFrame=None,
             ts:datetime.timedelta=None, tau:datetime.timedelta=None,
             events:polars.dataframe.frame.DataFrame=None,
             method:Literal['fit','derivative']='fit',
             mag_meta:space_analysis.ds.meta.Meta=Meta(dataset=None,
             parameters=None), bcols:list[str]=None,
             plasma_data:polars.lazyframe.frame.LazyFrame=None, plasma_met
             a:space_analysis.ds.meta.PlasmaMeta=PlasmaMeta(dataset=None,
             parameters=None, density_col=None, velocity_cols=None,
             speed_col=None, temperature_col=None),
             ion_temp_data:polars.lazyframe.frame.LazyFrame=None, ion_temp
             _meta:space_analysis.ds.meta.TempMeta=TempMeta(dataset=None,
             parameters=None, para_col=None, perp_cols=None),
             e_temp_data:polars.lazyframe.frame.LazyFrame=None, e_temp_met
             a:space_analysis.ds.meta.TempMeta=TempMeta(dataset=None,
             parameters=None, para_col=None, perp_cols=None),
             **extra_data:Any)

Extend the IdsEvents class to handle plasma and temperature data.