| name | signal-analysis |
| description | Perform signal processing, rainflow cycle counting, and spectral analysis for fatigue and time series data. Use for analyzing stress time histories, computing FFT/PSD, extracting fatigue cycles (ASTM E1049-85), and batch processing OrcaFlex signals. |
| type | reference |
| updated | 2026-01-07 |
| capabilities | [] |
| requires | [] |
| tags | [] |
| scripts_exempt | true |
| category | engineering |
| version | 1.0.0 |
Signal Analysis
When to Use
- Analyzing fatigue from stress/load time series
- Computing rainflow cycles for damage calculation
- FFT and power spectral density analysis
- Frequency spectrum characterization
- Batch processing OrcaFlex simulation signals
- Time series conditioning and filtering
- Converting time-domain data to frequency-domain
Prerequisites
- Python environment with
digitalmodel package installed
- Time series data in CSV, Excel, or OrcaFlex format
- For OrcaFlex signals: completed .sim files
Python API
Rainflow Cycle Counting
from digitalmodel.signal_processing.signal_analysis.rainflow import RainflowCounter
counter = RainflowCounter()
import pandas as pd
data = pd.read_csv("stress_time_history.csv")
time = data["time"].values
*See sub-skills for full details.*
```python
from digitalmodel.signal_processing.signal_analysis.spectral import SpectralAnalyzer
import numpy as np
analyzer = SpectralAnalyzer()
data = pd.read_csv("motion_time_history.csv")
time = data["time"].values
*See sub-skills for full details.*
```python
from digitalmodel.signal_processing.signal_analysis.time_series import TimeSeriesProcessor
processor = TimeSeriesProcessor()
data = pd.read_csv("raw_signal.csv")
time = data["time"].values
signal = data["stress"].values
*See sub-skills for full details.*
```python
digitalmodel.signal_processing.signal_analysis.orcaflex_signals OrcaFlexSignalExtractor
pathlib Path
extractor = OrcaFlexSignalExtractor()
sim_file = Path()
time, tension = extractor.extract_time_history(
*See sub-skills full details.*
```python
digitalmodel.signal_processing.signal_analysis.readers GenericTimeSeriesReader
reader = GenericTimeSeriesReader()
data = reader.read()
*See sub-skills full details.*
- [fatigue-analysis](../fatigue-analysis/SKILL.md) - Use rainflow cycles fatigue damage calculation
- [orcaflex/post-processing](../orcaflex/post-processing/SKILL.md) - Extract time histories OrcaFlex
- [structural-analysis](../structural-analysis/SKILL.md) - Stress analysis signal generation
- ASTM E1049-: Standard Practices Cycle Counting Fatigue Analysis
- Welch, P.D. (): The Use of FFT Estimation of Power Spectra
- DNV-RP-C203: Fatigue Design of Offshore Steel Structures
- [Signal Quality (+)](signal-quality/SKILL.md)
- [Error Handling](error-handling/SKILL.md)
- [Version Metadata](version-metadata/SKILL.md)
- [[] - -01-07](--01-07/SKILL.md)
- [ Rainflow Cycle Counting (ASTM E1049-) (+)](-rainflow-cycle-counting-astm-e1049-/SKILL.md)
- [Complete Signal Analysis Workflow (+)](complete-signal-analysis-workflow/SKILL.md)
- [Rainflow Cycles CSV (+)](rainflow-cycles-csv/SKILL.md)