WindFarmer Services API v2
What is API v2?
The WindFarmer (WF) Services API v2 is now the primary WF Services API where new functionality and innovation will be added.
Here is a shortlist of the new features and enhancements introduced for API v2, for more details on the below consult the WindFarmer User Guide
- CFD.ML turbine interaction model. Can be used to model wakes & blockage on a per-turbine, per-flowcase basis, or to derive a weighted, annualized blockage correction to engineering wake models [New Beta Feature]
- Wind climates specified as a weibull distribution. [New Feature]
- Breadkdown of the energy efficiency settings in wake and blockage model settings. [Change]
Available versions:
Version | API URL | API build number | Release date |
---|---|---|---|
v1 | https://windfarmer.dnv.com/api/v1 | 1.0.35 | 03 March 2023 |
v2 | https://windfarmer.uat.dnv.com/api/v2 | 2.2.2 | 20 September 2023 |
Migrate from API v1 to v2
Authentication
The same JWT token should remain valid for usage in v1 and v2.
Changes in the energy efficiency settings
The turbineInteractionModelSettings
section has been deprecated.
The intention behind this decision is to have a clearer and more extensibile structure of inputs, enabling the addition of
new wake and/or blockage models in the near future.
In v1 the idea was to have one set of settings existing under turbineInteractionModelSettings
that would apply to the selected wakeCalculationType
. However, with the introduction of new wake models
TurbOPark
and CFD.ML
it became difficult to maintain the same set of settings for substantially different modeling approaches.
Also the implicit assumption behind the structure of blockageSettings
was that there's only one modeling approach to blockage: the BEET.
This changed with the release of CFD.ML blockage correction.
With those motivations, in v2 tthe wakeModel
and blockageModel
settings sections were separated.
Each now contanins subsections specific to the possibly very different modeling options available in WindFarmer for wake and blockage respectively.
The model choice is made via wakeModelType
and blockageModelType
properties and allows mixing-and-matching different approaches.
The following table lays out the main differences in structure between the two versions.
"turbineInteractionModelSettings": {
"wakeCalculationType": "EddyViscosity",
"largeWindFarmCorrectionParameters": {
...
},
"useCloselySpacedTurbinesWakeModification": false,
"wakeProfileIntegrationMethod": "Analytical"
},
"blockageSettings": {
"significantAtmosphericStability": false
},
v2 Wake Model Settings
With v2 the wake model section requires a dedicated subsection for each wake model available EddyViscosity
(EV), ModifiedPark
(MP), TurbOPark
(TP), CFDML
(CFDML) and NoWakeModel
(NoW).
Next table details the options available for each.
"eddyViscosity": {
"useLargeWindFarmModel": true,
"largeWindFarmCorrectionParameters": {
"baseRoughnessZ01": 0.0002,
"increasedRoughnessZ02": 0.0192,
"geometricWidthDiameters": 1.0,
"recoveryStartDiameters": 60.0,
"fiftyPercentRecoveryDiameters": 40.0
},
"useCloselySpacedTurbinesWakeModification": false,
"wakeProfileIntegrationMethod": "Analytical"
}
v2 Blockage Model Settings
With v2 the blockage model settings section include a dedicated subsection with the
specific settings for each of the blockage model available BEET
and CFDML
.
To turn off any blockage modelling or blockage impact quantification use the option NoBlockageModel
.
Note, if you are using a CFD.ML wake model with the NoBlockageModel
option the calculation will still
predict the full turbine interaction effect, only it won't quantify the blockage efficiency component.
"blockageModel": {
"blockageModelType": "BEET",
"beet": {
"significantAtmosphericStability": false,
"inclusionOfNeighborsBufferZoneInMeters": 1000.0,
"blockageCorrectionApplicationMethod": "OnEnergy"
}
}
Options
When specifying the settings for a wake model or blockage model, only the corresponding wake model
settings need to be specified, ie the subsection for the model selected in wakeModelType
must exist.
Nevertheless if other settings are specified these will be ignored. The same happens for the blockage model settings.
"wakeModel": {
"wakeModelType": "EddyViscosity",
"eddyViscosity": {
...
}
},
"blockageModel": {
"blockageModelType": "CFDML",
"cfdml": {
...
}
}