SSWS - Site-Specific Wind Speed Adjustment
Location:tact/adjustments/SSWS.py
Overview
The SSWS (Site-Specific Wind Speed) method adjusts turbulence intensity measurements by first correcting wind speed measurements, then recalculating turbulence intensity using the adjusted wind speed.Methodology
Algorithm Steps
-
Train Wind Speed Regression (on training data):
-
Apply Wind Speed Adjustment (to test data):
-
Recalculate Turbulence Intensity:
-
Calculate Representative TI:
Key Characteristics
- Two-stage adjustment: Wind speed first, then TI calculation
- Error propagation: Errors in WS adjustment affect TI calculation
- Linear regression: Uses simple linear model for WS correction
- Train/test split: Builds model on training data, applies to test data
Usage
Basic Example
With DNV Validation
Parameters
Required Parameters
| Parameter | Type | Description |
|---|---|---|
config_path | str | Path to configuration JSON file |
split | bool | Whether to split data into train/test sets |
Configuration Requirements
The config file must specify column mappings:Required Data Columns
The input data must contain:- Reference wind speed (e.g.,
ref_ws) - Reference wind speed standard deviation (e.g.,
ref_sd) - RSD wind speed (e.g.,
rsd_ws) - RSD wind speed standard deviation (e.g.,
rsd_sd) - Train/test split indicator (e.g.,
split) - Wind speed bins (e.g.,
bins)
Output Format
Returned Dictionary
Adjusted Data Columns
The method adds these columns to your data:| Column | Description |
|---|---|
RSD_adjWS | Adjusted RSD wind speed |
adjTI_RSD_TI | Adjusted turbulence intensity |
adjRepTI_RSD_RepTI | Adjusted representative TI |
Regression Results
| Column | Description |
|---|---|
sensor | Sensor identifier |
height | Measurement height |
adjustment | Adjustment method name |
m | Regression slope |
c | Regression intercept |
rsquared | R² value |
Performance Characteristics
When SSWS Works Well
- Strong linear relationship between RSD and reference wind speed
- Low noise in wind speed measurements
- Consistent wind speed bias across all speeds
When SSWS May Struggle
- Error propagation: WS errors amplify in TI calculation
- Low wind speeds: Division by small values creates large relative errors
- Non-linear relationships: Linear regression can’t capture complex patterns
- High scatter: R² < 0.8 indicates poor model fit
Performance on Example Dataset
Based on DNV RP-0661 LV criteria validation:| Metric | Value | Target | Pass |
|---|---|---|---|
| MRBE | +94.77% | ≤5% | ❌ |
| RRMSE | 188.03% | ≤15% | ❌ |
| N observations | 3,054 | - | - |
Comparison with Other Methods
| Aspect | SSWS | SS-SF | SSWSStd |
|---|---|---|---|
| Complexity | Medium | Low | High |
| Parameters | 2 (m, c for WS) | 2 (m, c for TI) | 4 (m, c for WS and SD) |
| Error Propagation | Yes | No | Yes |
| Performance | Poor | Best | Medium |
| Use Case | WS correction needed | General purpose | WS+SD correction |
Implementation Details
Class Definition
Key Functions Used
get_regression()- Performs linear regressionpost_adjustment_stats()- Calculates statistics- Column mapping from config file
Troubleshooting
Common Issues
Issue: High MRBE/RRMSE despite good R² Cause: Error propagation from WS adjustment to TI calculation Solution: Try SS-SF method instead (adjusts TI directly)Issue: Negative adjusted wind speeds Cause: Large negative intercept with low wind speeds Solution: Check regression intercept, consider filtering low WS data
Issue: Very different train vs test performance Cause: Overfitting or non-representative split Solution: Verify train/test split is random and representative
See Also
- SS-SF Method - Simpler method with better performance
- SSWSStd Method - Extended version with SD adjustment
- Baseline Method - No adjustment reference
- DNV Validation - Validation framework
- Method Comparison Results
References
- DNV GL: DNV-RP-0661 - Remote Sensing Measurement Verification
- IEC 61400-12-1 - Wind turbine power performance testing

