Code
from fastcore.all import concat
= concat([None, [1], None])
ls None)
ls.remove( ls
[1, None]
Fundamental class
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 |
write (df:polars.dataframe.frame.DataFrame, fname:pathlib.Path, format=None, **kwargs)
log_event_change (event, logger=<loguru.logger handlers=[(id=0, level=10, sink=<_io.StringIO object at 0x1077c2f80>)]>)
# 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)
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.