Metadata-Version: 2.2
Name: sysbench_loader
Version: 0.0.7
Summary: Downloads and prepares various system identification benchmark datasets
Home-page: https://github.com/daniel-om-weber/sysbench_loader
Author: Daniel Weber
Author-email: daniel.om.weber@gmail.com
License: Apache Software License 2.0
Keywords: nbdev jupyter notebook python
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: License :: OSI Approved :: Apache Software License
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: nonlinear-benchmarks
Requires-Dist: h5py
Requires-Dist: easyDataverse
Requires-Dist: pandas
Requires-Dist: gdown
Requires-Dist: bagpy
Provides-Extra: dev
Requires-Dist: matplotlib; extra == "dev"
Requires-Dist: nbdev; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary



<img src="https://raw.githubusercontent.com/daniel-om-weber/sysbench_loader/main/assets/logo.svg" width="200" align="left" alt="sysbench_loader logo">

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

## Sysbench Loader

The `sysbench_loader` package provides a collection of standardized data
loaders for common system identification benchmark datasets. It
downloads, prepares, and converts various benchmark datasets into a
unified HDF5 format, making them readily available for machine learning
and system identification applications.

## Install

``` sh
pip install sysbench_loader
```

## Features

- Downloads benchmark datasets from various sources
- Converts data to standardized HDF5 format
- Splits data into train/validation/test sets
- Provides consistent interface across different benchmarks
- Handles setup and cleanup of downloaded files

## Available Benchmarks

The package includes loaders for the following benchmark datasets:

### Nonlinear Systemidentification Workshop Benchmarks

- **Wiener-Hammerstein**: Electronic nonlinear system
- **Silverbox**: Electronic circuit with nonlinear feedback
- **Cascaded Tanks**: Fluid dynamics system
- **EMPS**: Electro-Mechanical Positioning System
- **Noisy Wiener-Hammerstein**: WH system with process noise

### Robotic Systems

- **Industrial Robot**: Forward and inverse identification models
- **Quad Pelican**: Quadrotor UAV system
- **Quad Pi**: Raspberry Pi-based quadrotor system

### Other Systems

- **Ship**: Ship propulsion and steering dynamics
- **Broad**: Broad spectrum system identification dataset

``` python
# Basic usage
import sysbench_loader
from pathlib import Path

# Example: Download a single dataset
# Note: Always use a Path object, not a string
save_path = Path('./tmp/wh')
sysbench_loader.workshop.wiener_hammerstein(save_path)
```

``` python
# List all available dataset loaders
sysbench_loader.all_dataset_loader
```

    [<function sysbench_loader.workshop.wiener_hammerstein(save_path: pathlib.Path)>,
     <function sysbench_loader.workshop.silverbox(save_path: pathlib.Path)>,
     <function sysbench_loader.workshop.cascaded_tanks(save_path: pathlib.Path)>,
     <function sysbench_loader.workshop.emps(save_path: pathlib.Path)>,
     <function sysbench_loader.workshop.noisy_wh(save_path: pathlib.Path)>,
     <function sysbench_loader.industrial_robot.robot_forward(save_path: pathlib.Path)>,
     <function sysbench_loader.industrial_robot.robot_inverse(save_path: pathlib.Path)>,
     <function sysbench_loader.ship.ship(save_path: pathlib.Path, remove_download=True)>,
     <function sysbench_loader.quad_pelican.quad_pelican(save_path: pathlib.Path, remove_download=False)>,
     <function sysbench_loader.quad_pi.quad_pi(save_path: pathlib.Path, remove_download=False)>,
     <function sysbench_loader.broad.broad(save_path: pathlib.Path)>]

## HDF5 Data Format

Each dataset is converted to a standard HDF5 format with the following
structure: - Train/valid/test split in separate directories - Input data
stored as ‘u0’, ‘u1’, etc. (one per input dimension) - Output data
stored as ‘y0’, ‘y1’, etc. (one per output dimension) - Data converted
to 32-bit float (f4) for consistency

This standardized format makes it easy to use these datasets with any
machine learning framework that supports HDF5 files.
