CoolFace
Datasetpublic

Daro77/univariate-time-series-with-missingness-and-reconstructed

Experimental Datasets - Time Series Inpainting This directory contains all datasets used in the time series inpainting experiments, including original data, corrupted versions, reconstructed results, and intermediate image representations. πŸ“ Directory Structure data/ β”œβ”€β”€ README.md # This file β”‚ β”œβ”€β”€ 0_source_data/ # Original univariate industrial time series (7 files, 8.5 MB) β”‚ β”œβ”€β”€ boiler_outlet_temp_univ.csv β”‚ β”œβ”€β”€β€¦ See the full description on the dataset page: https://huggingface.co/datasets/Daro77/univariate-time-series-with-missingness-and-reconstructed.

sourceHugging Faceapache-2.0updated 10mo agoView on Hugging Face
0likes23downloads
Dataset Card

Experimental Datasets - Time Series Inpainting

This directory contains all datasets used in the time series inpainting experiments, including original data, corrupted versions, reconstructed results, and intermediate image representations.


πŸ“ Directory Structure

data/
β”œβ”€β”€ README.md                      # This file
β”‚
β”œβ”€β”€ 0_source_data/                 # Original univariate industrial time series (7 files, 8.5 MB)
β”‚   β”œβ”€β”€ boiler_outlet_temp_univ.csv
β”‚   β”œβ”€β”€ pump_sensor_28_univ.csv
β”‚   β”œβ”€β”€ vibration_sensor_S1.csv
β”‚   β”œβ”€β”€ water_level_sensors_2010_L300.csv
β”‚   β”œβ”€β”€ water_level_sensors_2010_L308.csv
β”‚   └── water_level_sensors_2010_L311.csv
β”‚
β”œβ”€β”€ 1_missing_data/                # Time series with injected missing values (721 files, 964 MB)
β”‚   β”œβ”€β”€ [dataset]_[mechanism]_[rate]_[iter].csv
β”‚   └── ...
β”‚
β”œβ”€β”€ 2_fixed_data/                  # Reconstructed time series (16,201 files, 25 GB)
β”‚   β”œβ”€β”€ [dataset]_[mechanism]_[rate]_[iter]_[method].csv
β”‚   └── ...
β”‚
└── images_inpainting/             # Image representations (16,324 files, 4 GB)
    β”œβ”€β”€ 0_original_images/         # Original GAF/MTF/RP/SPEC images
    β”œβ”€β”€ 1_missing_images/          # Corrupted images
    β”œβ”€β”€ 2_fixed_images/            # Reconstructed images
    └── 3_difference_images/       # Visualization of differences

πŸ“Š Dataset Statistics

DirectoryFilesSizeDescription
0_source_data78.5 MBOriginal industrial time series
1_missing_data721964 MBCorrupted versions (systematic missingness)
2_fixed_data16,20125 GBReconstructed by 31 methods
images_inpainting16,3244 GBImage transformations (GAF/MTF/RP/SPEC)
Total33,253~30 GBComplete experimental dataset

πŸ“ˆ 0sourcedata/

Description

Original, complete industrial time series datasets without any missing values. These serve as ground truth for all experiments.

Contents

FileSourcePointsSamplingDescription
boiler_outlet_temp_univ.csvIndustrial boiler~10,0001 minTemperature sensor readings
pump_sensor_28_univ.csvIndustrial pump~10,0001 minPressure/flow measurements
vibration_sensor_S1.csvVibration monitor~10,000High freqMechanical vibration data
water_level_sensors_2010_L300.csvWater monitoring~8,7601 hourWater level station L300
water_level_sensors_2010_L308.csvWater monitoring~8,7601 hourWater level station L308
water_level_sensors_2010_L311.csvWater monitoring~8,7601 hourWater level station L311

Format

All files are CSV with two columns:

csv
timestamp,value
2023-01-01 00:00:00,42.5
2023-01-01 00:01:00,42.8
...

Archive

bash
# Compressed archive
data_0_source.tar.gz (1.8 MB)

# Extract
tar -xzf ../data_0_source.tar.gz

πŸ•³οΈ 1missingdata/

Description

Time series with systematically injected missing values. Each file corresponds to one experimental configuration with controlled missingness.

Naming Convention

[dataset]_[mechanism]_[rate]_[iteration].csv

Examples:

  • β€”boiler_MCAR_2p_1.csv - Boiler, MCAR mechanism, 2% missing, iteration 1
  • β€”pump_MAR_5p_3.csv - Pump, MAR mechanism, 5% missing, iteration 3
  • β€”vibration_MNAR_10p_7.csv - Vibration, MNAR mechanism, 10% missing, iteration 7

Experimental Design

ParameterValuesCount
Datasets3 (boiler, pump, vibration)3
MechanismsMCAR, MAR, MNAR3
Missing Rates2%, 5%, 10%3
Iterations1-1010
Total Configs3 Γ— 3 Γ— 3 Γ— 10270 per dataset

Note: Water level datasets (L300, L308, L311) were excluded from main experiments.

Missingness Mechanisms

MCAR (Missing Completely At Random):

  • β€”Random points removed
  • β€”No systematic pattern
  • β€”Simulates: random sensor failures

MAR (Missing At Random):

  • β€”Probability depends on observed values
  • β€”Conditional missingness
  • β€”Simulates: threshold-based dropout

MNAR (Missing Not At Random):

  • β€”Probability depends on missing values themselves
  • β€”Systematic bias
  • β€”Simulates: sensor saturation, range limitations

Format

Same as source data, but with NaN values:

csv
timestamp,value
2023-01-01 00:00:00,42.5
2023-01-01 00:01:00,NaN
2023-01-01 00:02:00,42.8
...

Archive

bash
# Compressed archive
data_1_missing.tar.gz (192 MB)

# Extract
tar -xzf ../data_1_missing.tar.gz

πŸ”§ 2fixeddata/

Description

Time series reconstructed using 31 different methods. This is the main experimental output containing all reconstruction results.

Naming Convention

[dataset]_[mechanism]_[rate]_[iteration]_[method].csv

Examples:

  • β€”boiler_MCAR_2p_1_imputemean.csv - Mean imputation
  • β€”pump_MAR_5p_3_interpolatecubic.csv - Cubic interpolation
  • β€”vibration_MNAR_10p_7_gafunet.csv - GAF + U-Net inpainting
  • β€”boiler_MCAR_2p_1_rpsd2all4.csv - RP + Stable Diffusion 2

Reconstruction Methods (31 total)

Classical Methods (15)

Statistical Imputation (3):

  • β€”imputemean - Mean of observed values
  • β€”imputemedian - Median of observed values
  • β€”imputemode - Mode of observed values

Directional Fill (2):

  • β€”imputeffill - Forward fill (propagate last valid)
  • β€”imputebfill - Backward fill (propagate next valid)

Interpolation (9):

  • β€”interpolatenearest - Nearest neighbor
  • β€”interpolatelinear - Linear interpolation
  • β€”interpolateindex - Index-based
  • β€”interpolatequadratic - Quadratic polynomial
  • β€”interpolatecubic - Cubic spline
  • β€”interpolatepolynomial - High-order polynomial
  • β€”interpolatepchip - Piecewise Cubic Hermite
  • β€”interpolateakima - Akima spline
  • β€”interpolatespline - Smoothing spline

Machine Learning (1):

  • β€”knn - K-Nearest Neighbors
  • β€”sarimax - SARIMAX time series model
Image-based Methods (16)

U-Net Models (4):

  • β€”gafunet - GAF + U-Net
  • β€”mtfunet - MTF + U-Net
  • β€”rpunet - RP + U-Net
  • β€”specunet - Spectrogram + U-Net

Stable Diffusion 2 - Fine-tuned (4):

  • β€”gafsd2all4 - GAF + SD2 (trained on all 4 types)
  • β€”mtfsd2all4 - MTF + SD2 (trained on all 4 types)
  • β€”rpsd2all4 - RP + SD2 (trained on all 4 types)
  • β€”specsd2all4 - SPEC + SD2 (trained on all 4 types)

Pipeline: Image-based Methods

Time Series β†’ Image Transform β†’ Inpaint β†’ Inverse Transform β†’ Time Series
    (CSV)    β†’ (GAF/MTF/RP/SPEC) β†’ (U-Net/SD2) β†’ (Inverse) β†’ (CSV)

Format

Same as source data, with reconstructed values:

csv
timestamp,value
2023-01-01 00:00:00,42.5
2023-01-01 00:01:00,42.7    # Reconstructed (was NaN)
2023-01-01 00:02:00,42.8
...

Statistics

  • β€”Total files: 16,201
  • β€”Per dataset: ~5,400 files
  • β€”Per config: 31 methods
  • β€”Size: ~25 GB total (~1.5 MB per file average)

Archive

bash
# Compressed archive
data_2_fixed.tar.gz (5.3 GB)

# Extract
tar -xzf ../data_2_fixed.tar.gz

🎨 images_inpainting/

Description

Image representations of time series at various stages of the inpainting pipeline. Used for visualization and debugging.

Subdirectories

0originalimages/

Complete time series converted to images (ground truth).

Format: [dataset]_[config]_[type].png

1missingimages/

Corrupted time series as images (input to inpainting models).

Format: [dataset]_[config]_[type]_missing.png

2fixedimages/

Inpainted images (output from U-Net/SD2).

Format: [dataset]_[config]_[method]_[type].png

3differenceimages/

Visual differences between original and reconstructed.

Format: [dataset]_[config]_[method]_[type]_diff.png

Image Types

TypeFull NameSizeDescription
gafGramian Angular Field64Γ—64Polar encoding of temporal correlations
mtfMarkov Transition Field64Γ—64State transition probabilities
rpRecurrence Plot64Γ—64Phase space recurrence patterns
specSpectrogram64Γ—64Time-frequency representation

Statistics

  • β€”Total images: 16,324
  • β€”Original: ~4,000 images
  • β€”Missing: ~4,000 images
  • β€”Fixed: ~6,000 images
  • β€”Differences: ~2,324 images
  • β€”Size: ~4 GB total

Archive

bash
# Compressed archive
data_images.tar.gz (4.0 GB)

# Extract
tar -xzf ../data_images.tar.gz

πŸ”¬ Experimental Workflow

Complete Pipeline

1. SOURCE DATA (0_source_data/)
   ↓ Inject missing values (MCAR/MAR/MNAR)
   
2. MISSING DATA (1_missing_data/)
   ↓ Convert to images (optional for image methods)
   
3. IMAGES - MISSING (images_inpainting/1_missing_images/)
   ↓ Apply reconstruction (31 methods)
   
4A. IMAGES - FIXED (images_inpainting/2_fixed_images/)
    ↓ Inverse transform to time series
    
4B. FIXED DATA (2_fixed_data/)
    ↓ Compute metrics (MAPE, MAE, RMSE)
    
5. RESULTS (results/quick_experiment/df_final_*.csv)

Files Generated Per Configuration

For each experimental configuration (e.g., boiler_MCAR_2p_1):

  1. 1.1 missing file β†’ 1_missing_data/boiler_MCAR_2p_1.csv
  2. 2.4 original images β†’ images_inpainting/0_original_images/boiler_MCAR_2p_1_[gaf|mtf|rp|spec].png
  3. 3.4 missing images β†’ images_inpainting/1_missing_images/...
  4. 4.31 reconstructed files β†’ 2_fixed_data/boiler_MCAR_2p_1_[method].csv
  5. 5.16 reconstructed images β†’ images_inpainting/2_fixed_images/... (4 methods Γ— 4 types)

Total per config: ~50 files


πŸ“Š Data Generation Scripts

Source Data

Original data was collected from industrial systems. No generation script needed.

Missing Data

bash
# Generated by iterative_experiment.py
python iterative_experiment.py --generate-missing-only

Reconstructed Data

bash
# Generated by main experiment
python iterative_experiment.py

Images

bash
# Generated automatically during image-based reconstruction
# See: ts_image_inpainting.py

πŸ’Ύ Storage & Archives

Individual Archives

ArchiveOriginal SizeCompressed SizeCompression Ratio
data_0_source.tar.gz8.5 MB1.8 MB4.7:1
data_1_missing.tar.gz964 MB192 MB5.0:1
data_2_fixed.tar.gz25 GB5.3 GB4.7:1
data_images.tar.gz4 GB4.0 GB1.0:1 (PNG)
Total~30 GB~10.5 GB2.9:1

Extracting Archives

bash
# Extract all
tar -xzf data_0_source.tar.gz
tar -xzf data_1_missing.tar.gz
tar -xzf data_2_fixed.tar.gz
tar -xzf data_images.tar.gz

# Extract to specific directory
tar -xzf data_2_fixed.tar.gz -C /path/to/destination/

Creating Archives (for backup)

bash
# Compress individual directories
tar -czf data_0_source.tar.gz data/0_source_data/
tar -czf data_1_missing.tar.gz data/1_missing_data/
tar -czf data_2_fixed.tar.gz data/2_fixed_data/
tar -czf data_images.tar.gz data/images_inpainting/

# Compress everything
tar -czf data_complete.tar.gz data/

πŸ” Data Access Examples

Loading Source Data

python
import pandas as pd

# Load original time series
df = pd.read_csv('data/0_source_data/boiler_outlet_temp_univ.csv', 
                 index_col='timestamp', parse_dates=True)

print(f"Length: {len(df)}")
print(f"Missing: {df['value'].isna().sum()}")

Loading Corrupted Data

python
# Load corrupted version
df_missing = pd.read_csv('data/1_missing_data/boiler_MCAR_2p_1.csv',
                         index_col='timestamp', parse_dates=True)

# Count missing values
n_missing = df_missing['value'].isna().sum()
missing_rate = n_missing / len(df_missing) * 100

print(f"Missing: {n_missing} ({missing_rate:.1f}%)")

Loading Reconstructed Data

python
# Load reconstruction
df_fixed = pd.read_csv('data/2_fixed_data/boiler_MCAR_2p_1_gafunet.csv',
                       index_col='timestamp', parse_dates=True)

# Compare with original
df_original = pd.read_csv('data/0_source_data/boiler_outlet_temp_univ.csv',
                          index_col='timestamp', parse_dates=True)

# Compute error on missing regions only
mask = df_missing['value'].isna()
errors = abs(df_original.loc[mask, 'value'] - df_fixed.loc[mask, 'value'])
mae = errors.mean()

print(f"MAE on missing regions: {mae:.4f}")

Loading Images

python
from PIL import Image
import numpy as np

# Load original image
img = Image.open('data/images_inpainting/0_original_images/boiler_MCAR_2p_1_gaf.png')
img_array = np.array(img)

print(f"Shape: {img_array.shape}")
print(f"Type: {img_array.dtype}")

πŸ“ˆ Dataset Characteristics

Time Series Properties

DatasetLengthMinMaxMeanStdTrendSeasonality
Boiler~10k25.389.758.212.4StableWeak
Pump~10k1.298.545.628.7NoneStrong
Vibration~10k0.0012.4560.5420.389IncreasingNone
Water L300~8.7k2.15.83.40.8SeasonalStrong
Water L308~8.7k1.86.23.20.9SeasonalStrong
Water L311~8.7k2.45.53.60.7SeasonalStrong

Missing Data Distribution

By Mechanism:

  • β€”MCAR: 33.3% of configs (90 per dataset)
  • β€”MAR: 33.3% of configs (90 per dataset)
  • β€”MNAR: 33.3% of configs (90 per dataset)

By Rate:

  • β€”2%: 33.3% of configs (90 per dataset)
  • β€”5%: 33.3% of configs (90 per dataset)
  • β€”10%: 33.3% of configs (90 per dataset)

By Dataset:

  • β€”Boiler: 270 configs
  • β€”Pump: 270 configs
  • β€”Vibration: 270 configs
  • β€”Total: 810 configs

πŸ”§ Maintenance & Cleanup

Checking Data Integrity

bash
# Count files in each directory
echo "Source: $(ls data/0_source_data/*.csv 2>/dev/null | wc -l)"
echo "Missing: $(ls data/1_missing_data/*.csv 2>/dev/null | wc -l)"
echo "Fixed: $(ls data/2_fixed_data/*.csv 2>/dev/null | wc -l)"

# Check for empty files
find data/ -type f -empty

Disk Space Management

bash
# Check space usage
du -sh data/*/

# Remove intermediate images (if needed)
rm -rf data/images_inpainting/3_difference_images/

# Keep only essential data
# Warning: This removes all but source and final results
rm -rf data/1_missing_data/
rm -rf data/images_inpainting/

Regenerating Data

bash
# Regenerate missing data
python iterative_experiment.py --force-regenerate-missing

# Regenerate specific method
python iterative_experiment.py --methods gafunet --force-reprocess

πŸ“š Related Files & Documentation

Scripts

  • β€”iterative_experiment.py - Main experiment runner (generates 1missingdata/, 2fixeddata/)
  • β€”ts_image_inpainting.py - Image transformation functions
  • β€”calculate_differences.py - Computes metrics from reconstructed data
  • β€”generate_training_dataset.py - Generates synthetic training data (separate from this)

Results

  • β€”results/quick_experiment/df_final_*.csv - Aggregated metrics
  • β€”results/quick_experiment/final_results.json - Complete experimental results

Documentation

  • β€”EXPERIMENT_1_DESCRIPTION.md - Experiment methodology
  • β€”README.md (project root) - Main project documentation

⚠️ Important Notes

Data Provenance

  • β€”Source data: Real industrial sensors (anonymized)
  • β€”Missing data: Synthetically generated with controlled mechanisms
  • β€”Reconstructions: Generated by automated pipeline
  • β€”Images: Deterministic transformations from time series

Reproducibility

All data can be regenerated from source:

  1. 1.Source data (0sourcedata/) - original, no changes
  2. 2.Missing data (1missingdata/) - regenerate with same seeds
  3. 3.Fixed data (2fixeddata/) - regenerate by running experiments
  4. 4.Images (images_inpainting/) - regenerate during reconstruction

Data Quality

Validated:

  • β€”βœ… All files have correct format
  • β€”βœ… No corrupted CSV files
  • β€”βœ… Missing rates match specifications
  • β€”βœ… All methods completed successfully

Known Issues:

  • β€”Some image-based methods may fail on extreme cases (handled gracefully)
  • β€”Large file count may cause filesystem issues on some systems

πŸ”’ Data Usage & Citation

Usage Guidelines

This dataset is for research purposes as part of the time series inpainting project.

Allowed:

  • β€”Analysis and visualization
  • β€”Method comparison
  • β€”Result reproduction
  • β€”Academic publication

Restrictions:

  • β€”Do not redistribute source data without permission
  • β€”Cite original data sources when publishing
  • β€”Acknowledge reconstruction methods used

Citation

If you use this dataset in your research:

bibtex
@misc{timeseries_inpainting_data_2025,
  title={Time Series Inpainting Experimental Dataset},
  author={Dariusz Kobiela and JarosΕ‚aw Kobiela and Adam Kurowski and Agnieszka Landowska},
  year={2025},
  note={Dataset containing 270 experimental configurations across 3 industrial time series, 
        reconstructed using 31 methods}
}

πŸ“§ Support

Questions?

  1. 1.Check file naming conventions above
  2. 2.Review experimental workflow
  3. 3.Consult related scripts documentation
  4. 4.Check project main README

Issues?

  • β€”Missing files: Regenerate using experiment scripts
  • β€”Corrupted data: Re-run specific configurations
  • β€”Disk space: Use archives, remove intermediate data
  • β€”Performance: Use archived versions when possible

Dataset Version: 1.0 Last Updated: 1.12.2025 Total Size: ~30 GB (uncompressed), ~10.5 GB (compressed) Status: Complete βœ