Skip to content

Common Maintenance Tasks

Practical guides for maintaining the conversion and validation system.

Adding a New Dataset Converter

1. Create Converter Directory

mkdir -p contributor_scripts/conversion_scripts/NewDataset/

2. Write Converter Script

# contributor_scripts/conversion_scripts/NewDataset/convert_to_parquet.py

import pandas as pd
import numpy as np

def convert_to_standard():
    # Load raw data
    raw_data = load_your_data()

    # Convert to standard format
    # - 150 points per gait cycle
    # - Standard variable names
    # - Phase-indexed (0-100%)

    # Save as parquet
    df.to_parquet('../../../converted_datasets/newdataset_phase.parquet')

3. Validate Output

python3 contributor_scripts/create_dataset_validation_report.py \
    --dataset converted_datasets/newdataset_phase.parquet

Updating Validation Ranges

When validation is too strict/loose:

1. Edit YAML Configuration

# contributor_tools/validation_ranges/kinematic_ranges.yaml

tasks:
  level_walking:
    phases:
      '0':
        hip_flexion_angle_ipsi_rad: 
          min: -0.35  # Adjust as needed
          max: 1.2

2. Regenerate Validation Report

python3 contributor_scripts/create_dataset_validation_report.py \
    --dataset converted_datasets/dataset_phase.parquet

3. Review Visual Output

Check generated plots to verify ranges are appropriate.

Adding a New Variable

1. Update Feature Constants

# lib/core/feature_constants.py

STANDARD_VARIABLES = [
    # ... existing ...
    'new_variable_name_ipsi_unit',
]

2. Add to Validation Config

# contributor_tools/validation_ranges/kinematic_ranges.yaml
# Add ranges for the new variable

3. Update Converters

Add the new variable to relevant dataset converters.

Debugging Validation Failures

1. Run Validation Report

python3 contributor_scripts/create_dataset_validation_report.py \
    --dataset converted_datasets/failing_dataset.parquet

2. Check Generated Plots

  • Look for outliers in visualization plots
  • Check if data exceeds expected ranges
  • Verify phase alignment (0-100%)

3. Common Issues

Issue Solution
Wrong units Convert deg↔rad in converter
Sign flip Multiply by -1 in converter
Bad resampling Check interpolation to 150 points
Wrong task label Fix task column in converter

Quick Command Reference

See Scripts Cheat Sheet for complete command list.

Essential Commands

# Convert dataset
cd contributor_scripts/conversion_scripts/[Dataset]/
# Run converter

# Validate
python3 contributor_scripts/create_dataset_validation_report.py \
    --dataset converted_datasets/dataset_phase.parquet

# Load data
python3
>>> from lib.core.locomotion_analysis import LocomotionData
>>> data = LocomotionData('converted_datasets/dataset_phase.parquet')