folder_dataset

Folder-based CSV dataset loader.

class pysatl_cpd.data.loaders.folder_dataset.FolderCsvColumns(feature_columns, state_columns, segment_num_column='segment_num')[source]

Bases: object

Column selection for one folder of segmented CSV series.

Variables:
  • feature_columns – Names of columns containing feature data.

  • state_columns – Names of columns containing state labels.

  • segment_num_column – Name of the column containing segment numbers.

Parameters:
feature_columns: Sequence[str]
state_columns: Sequence[str]
segment_num_column: str
__init__(feature_columns, state_columns, segment_num_column='segment_num')
Parameters:
Return type:

None

pysatl_cpd.data.loaders.folder_dataset.load_folder_csv_dataset(root, columns, *, skip_folders_without_metadata=False)[source]

Load a dataset from folders containing metadata and segmented CSV files.

Each subfolder under root is expected to contain a metadata.yaml file and one or more CSV files with columns matching the FolderCsvColumns configuration.

Parameters:
  • root (str | Path) – Path to the root directory containing subfolders of CSV series.

  • columns (FolderCsvColumns | Mapping[str, FolderCsvColumns]) – Either a single column configuration applied to all folders, or a mapping keyed by folder name for per-folder configuration.

  • skip_folders_without_metadata (bool) – If True, skip folders that don’t have a metadata.yaml file instead of raising an error.

Returns:

Dataset containing the loaded labeled series.

Return type:

Dataset[ndarray[tuple[int, ...], dtype[double]], TimeseriesAnnotation]

Raises:

ValueError – If root does not exist, is not a directory, or data files are missing required columns.