diff --git a/windwatts-api/app/controllers/wind_data_controller.py b/windwatts-api/app/controllers/wind_data_controller.py
index 3607fa5..5d7bf83 100644
--- a/windwatts-api/app/controllers/wind_data_controller.py
+++ b/windwatts-api/app/controllers/wind_data_controller.py
@@ -22,6 +22,7 @@
from app.power_curve.global_power_curve_manager import power_curve_manager
from app.schemas import (
+ AvailableTurbinesResponse,
WindSpeedResponse,
AvailablePowerCurvesResponse,
EnergyProductionResponse,
@@ -163,8 +164,13 @@ def get_production(
lat: float = Query(..., description="Latitude of the location"),
lng: float = Query(..., description="Longitude of the location"),
height: int = Query(..., description="Height in meters"),
- powercurve: str = Query(
- ..., description="Power curve identifier (e.g., nrel-reference-100kW)"
+ turbine: Optional[str] = Query(
+ None, description="Turbine model identifier (e.g., nrl-reference-100kW)"
+ ),
+ powercurve: Optional[str] = Query(
+ None,
+ deprecated=True,
+ description="Deprecated: use 'turbine' instead. Power curve identifier.",
),
period: str = Query(
"all",
@@ -176,13 +182,14 @@ def get_production(
),
):
"""
- Retrieve energy production estimates for a specific location, height, and power curve.
+ Retrieve energy production estimates for a specific location, height, and turbine.
- **model**: Data model (era5, wtk, ensemble)
- **lat**: Latitude (varies by model, refer info endpoint for coordinate bounds)
- **lng**: Longitude (varies by model, refer info endpoint for coordinate bounds)
- **height**: Height in meters (varies by model, refer info endpoint for the available heights)
- - **powercurve**: Power curve to use for calculations
+ - **turbine**: Turbine model to use for calculations
+ - **powercurve**: Deprecated parameter, use 'turbine' instead
- **period**: Time aggregation period (default: all)
- **source**: Optional data source override
"""
@@ -190,12 +197,20 @@ def get_production(
# Catch invalid model before core function call
model = validate_model(model)
+ # Backward compatibility for 'powercurve'
+ turbine = turbine or powercurve
+ if not turbine:
+ raise HTTPException(
+ status_code=400,
+ detail="Either 'turbine' or 'powercurve' parameter is required",
+ )
+
# Use default source if not provided
if source is None:
source = MODEL_CONFIG.get(model, {}).get("source")
return get_production_core(
- model, lat, lng, height, powercurve, period, source, data_fetcher_router
+ model, lat, lng, height, turbine, period, source, data_fetcher_router
)
except HTTPException:
raise
@@ -203,10 +218,64 @@ def get_production(
raise HTTPException(status_code=500, detail="Internal server error")
+def _get_available_turbines(field_name: str = "turbines"):
+ """
+ Retrieve all available turbines/power curves.
+
+ Returns sorted list with NLR reference turbines first (by capacity),
+ followed by other turbines alphabetically.
+
+ Args:
+ field_name: "turbines" or "power curves"
+ """
+ all_curves = list(power_curve_manager.power_curves.keys())
+
+ def extract_kw(curve_name: str):
+ # Extracts the kw value from nlr curves, e.g. "nlr-reference-2.5kW" -> 2.5
+ match = re.search(r"nlr-reference-([0-9.]+)kW", curve_name)
+ if match:
+ return float(match.group(1))
+ return float("inf")
+
+ nlr_curves = [c for c in all_curves if c.startswith("nlr-reference-")]
+ other_curves = [c for c in all_curves if not c.startswith("nlr-reference-")]
+
+ nlr_curves_sorted = sorted(nlr_curves, key=extract_kw)
+ other_curves_sorted = sorted(other_curves)
+
+ ordered_curves = nlr_curves_sorted + other_curves_sorted
+ return {f"available_{field_name}": ordered_curves}
+
+
+@router.get(
+ "/turbines",
+ summary="Fetch all available turbines",
+ response_model=AvailableTurbinesResponse,
+ responses={
+ 200: {
+ "description": "Available turbines retrieved successfully",
+ "model": AvailableTurbinesResponse,
+ },
+ 500: {"description": "Internal server error"},
+ },
+)
+def get_turbines():
+ """
+ Retrieve a list of all available turbines.
+
+ Turbines are model-agnostic and can be used with any dataset (era5, wtk, ensemble).
+ """
+ try:
+ return _get_available_turbines("turbines")
+ except Exception:
+ raise HTTPException(status_code=500, detail="Internal server error")
+
+
@router.get(
"/powercurves",
summary="Fetch all available power curves",
response_model=AvailablePowerCurvesResponse,
+ deprecated=True,
responses={
200: {
"description": "Available power curves retrieved successfully",
@@ -219,26 +288,12 @@ def get_powercurves():
"""
Retrieve a list of all available power curves.
+ Deprecated: Use /turbines endpoint instead.
+
Power curves are model-agnostic and can be used with any dataset (era5, wtk, ensemble).
"""
try:
- all_curves = list(power_curve_manager.power_curves.keys())
-
- def extract_kw(curve_name: str):
- # Extracts the kw value from nrel curves, e.g. "nrel-reference-2.5kW" -> 2.5
- match = re.search(r"nrel-reference-([0-9.]+)kW", curve_name)
- if match:
- return float(match.group(1))
- return float("inf")
-
- nrel_curves = [c for c in all_curves if c.startswith("nrel-reference-")]
- other_curves = [c for c in all_curves if not c.startswith("nrel-reference-")]
-
- nrel_curves_sorted = sorted(nrel_curves, key=extract_kw)
- other_curves_sorted = sorted(other_curves)
-
- ordered_curves = nrel_curves_sorted + other_curves_sorted
- return {"available_power_curves": ordered_curves}
+ return _get_available_turbines("power_curves")
except Exception:
raise HTTPException(status_code=500, detail="Internal server error")
diff --git a/windwatts-api/app/schemas.py b/windwatts-api/app/schemas.py
index 93d6e22..ac813a1 100644
--- a/windwatts-api/app/schemas.py
+++ b/windwatts-api/app/schemas.py
@@ -73,6 +73,21 @@ class HourlyWindSpeedResponse(BaseModel):
]
+class AvailableTurbinesResponse(BaseModel):
+ available_turbines: List[str]
+
+ model_config = {
+ "json_schema_extra": {
+ "example": {
+ "available_turbines": [
+ "nlr-reference-2.5kW",
+ "nlr-reference-100kW",
+ ]
+ }
+ }
+ }
+
+
class AvailablePowerCurvesResponse(BaseModel):
available_power_curves: List[str]
diff --git a/windwatts-api/app/utils/validation.py b/windwatts-api/app/utils/validation.py
index 9c7455a..9ca008a 100644
--- a/windwatts-api/app/utils/validation.py
+++ b/windwatts-api/app/utils/validation.py
@@ -88,6 +88,11 @@ def validate_powercurve(powercurve: str) -> str:
return powercurve
+def validate_turbine(turbine: str) -> str:
+ """Validate turbine name (alias for validate_powercurve for clarity)"""
+ return validate_powercurve(turbine)
+
+
def validate_year(year: int, model: str) -> int:
"""Validate year for given model"""
valid_years = MODEL_CONFIG[model]["years"].get("full", [])
diff --git a/windwatts-ui/src/components/resultPane/RightPane.tsx b/windwatts-ui/src/components/resultPane/RightPane.tsx
index 9c82f48..5f75477 100644
--- a/windwatts-ui/src/components/resultPane/RightPane.tsx
+++ b/windwatts-ui/src/components/resultPane/RightPane.tsx
@@ -46,7 +46,7 @@ export const RightPane = () => {
data: hubHeight ? `${hubHeight} meters` : "Not selected",
},
{
- title: "Power curve",
+ title: "Turbine",
data: powerCurve ? `${POWER_CURVE_LABEL[powerCurve]}` : "Not selected",
},
];
diff --git a/windwatts-ui/src/components/settings/HubHeightSettings.tsx b/windwatts-ui/src/components/settings/HubHeightSettings.tsx
index b2ed6c1..8a67c73 100644
--- a/windwatts-ui/src/components/settings/HubHeightSettings.tsx
+++ b/windwatts-ui/src/components/settings/HubHeightSettings.tsx
@@ -1,13 +1,22 @@
import { useContext, useEffect, useMemo } from "react";
import { SettingsContext } from "../../providers/SettingsContext";
-import { Box, Slider, Typography } from "@mui/material";
-import { HUB_HEIGHTS } from "../../constants";
+import {
+ Box,
+ Slider,
+ Typography,
+ Paper,
+ Tooltip,
+ IconButton,
+} from "@mui/material";
+import InfoOutlinedIcon from "@mui/icons-material/InfoOutlined";
+import { HUB_HEIGHTS, TURBINE_DATA, TurbineInfo } from "../../constants";
export function HubHeightSettings() {
const {
hubHeight,
setHubHeight,
preferredModel: dataModel,
+ powerCurve,
} = useContext(SettingsContext);
const { values: availableHeights, interpolation: step } = useMemo(() => {
@@ -42,6 +51,18 @@ export function HubHeightSettings() {
}
};
+ const turbineData: TurbineInfo | undefined = TURBINE_DATA[powerCurve];
+
+ const isHeightInRange: boolean = turbineData
+ ? hubHeight >= turbineData.minHeight && hubHeight <= turbineData.maxHeight
+ : true;
+
+ const validationColor: "primary" | "success" | "warning" = turbineData
+ ? isHeightInRange
+ ? "success"
+ : "warning"
+ : "primary";
+
return (
@@ -50,6 +71,33 @@ export function HubHeightSettings() {
Choose a closest value (in meters) to the considered hub height:
+
+ {turbineData && (
+
+
+
+
+ {isHeightInRange ? "Within" : "Outside"} recommended range - (
+ {turbineData.minHeight}m - {turbineData.maxHeight}m)
+
+
+
+
+
+
+
+
+
+ )}
+
);
diff --git a/windwatts-ui/src/components/settings/PowerCurveSettings.tsx b/windwatts-ui/src/components/settings/PowerCurveSettings.tsx
index d77e711..85c9c85 100644
--- a/windwatts-ui/src/components/settings/PowerCurveSettings.tsx
+++ b/windwatts-ui/src/components/settings/PowerCurveSettings.tsx
@@ -4,7 +4,7 @@ import useSWR from "swr";
import { SettingsContext } from "../../providers/SettingsContext";
import { useContext } from "react";
import { getAvailablePowerCurves } from "../../services/api";
-import { POWER_CURVE_LABEL } from "../../constants";
+import { POWER_CURVE_LABEL, TURBINE_DATA } from "../../constants";
const DefaultPowerCurveOptions = [
"nlr-reference-2.5kW",
@@ -27,44 +27,51 @@ export function PowerCurveSettings() {
setPowerCurve(event.target.value as string);
};
+ const getTurbineLabel = (turbineId: string): string => {
+ const turbineInfo = TURBINE_DATA[turbineId];
+ const baseName = POWER_CURVE_LABEL[turbineId] || turbineId;
+
+ if (turbineInfo) {
+ return `${baseName} (${turbineInfo.minHeight}-${turbineInfo.maxHeight}m)`;
+ }
+ return baseName;
+ };
+
return (
- Power Curve
+ Turbine
- Select a power curve option:
+ Select a turbine option:
{powerCurveOptions.length > 0 ? (
<>
- {/* Power Curve */}
+ {/* Turbine */}
>
) : (
-
- Loading power curve options...
-
+ Loading turbine options...
)}
- * Make sure the selected turbine class matches the hub height (higher
- hub heights should be chosen for larger turbines).
+ * The height range shows recommended hub height for this turbine.
diff --git a/windwatts-ui/src/constants/index.ts b/windwatts-ui/src/constants/index.ts
index 0230d7d..3be29be 100644
--- a/windwatts-ui/src/constants/index.ts
+++ b/windwatts-ui/src/constants/index.ts
@@ -1,6 +1,6 @@
// Export all constants from this directory
export * from "./coordinates";
-export * from "./powerCurves";
+export * from "./turbines"; // formerly powerCurves
export * from "./ui";
export * from "./dataModelInfo";
export * from "./hubSettings";
diff --git a/windwatts-ui/src/constants/powerCurves.ts b/windwatts-ui/src/constants/powerCurves.ts
deleted file mode 100644
index 5a2a348..0000000
--- a/windwatts-ui/src/constants/powerCurves.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-export const POWER_CURVE_LABEL: Record = {
- "nlr-reference-2.5kW": "NLR Reference 2.5kW",
- "nlr-reference-100kW": "NLR Reference 100kW",
- "nlr-reference-250kW": "NLR Reference 250kW",
- "nlr-reference-2000kW": "NLR Reference 2000kW",
- "bergey-excel-15": "Bergey Excel 15kW",
- "eocycle-25": "Eocycle 25kW",
- "northern-100": "Northern Power 100kW",
- siva_250kW_30m_rotor_diameter: "Siva 250kW (30m rotor diameter)",
- siva_250kW_32m_rotor_diameter: "Siva 250kW (32m rotor diameter)",
- siva_750_u50: "Siva 750kW (50m rotor diameter)",
- siva_750_u57: "Siva 750kW (57m rotor diameter)",
-};
-
-export const VALID_POWER_CURVES = Object.keys(POWER_CURVE_LABEL);
diff --git a/windwatts-ui/src/constants/turbines.ts b/windwatts-ui/src/constants/turbines.ts
new file mode 100644
index 0000000..b81633e
--- /dev/null
+++ b/windwatts-ui/src/constants/turbines.ts
@@ -0,0 +1,141 @@
+export interface TurbineInfo {
+ label: string; // Displayed Label
+ minHeight: number; // Preferred/ Allowable min height
+ maxHeight: number; // Preferred/ Allowable max height
+ info: string; // Citation and notes for height range
+}
+
+/**
+ * Hub height ranges for wind turbines
+ *
+ * IMPORTANT: Specific manufacturer specifications were not available for all models
+ * and may have changed since this research (February 2026). These ranges may vary
+ * based on site conditions, local regulations, and specific project requirements.
+ * For production use, verify with manufacturer specifications and site assessments.
+ */
+export const TURBINE_DATA: Record = {
+ "nlr-reference-2.5kW": {
+ label: "NLR Reference 2.5kW",
+ minHeight: 20,
+ maxHeight: 40,
+ info: "Residential reference turbines (0-20 kW): system size 2.5 kW, rotor diameter 2.2m, allowable hub heights 20, 30, 40 m (Lantz et al., 2016). Also see https://doi.org/10.2172/1333625",
+ // Source: Lantz et al. (2016)
+ // Lantz, E., Sigrin, B., Gleason, M., Preus, R., & Baring-Gould, I. (2016). Assessing the Future of Distributed Wind: Opportunities for Behind-the-Meter Projects (NREL/TP--6A20-67337, 1333625; p. NREL/TP--6A20-67337, 1333625). https://doi.org/10.2172/1333625
+ // For more information, refer to https://atb.nrel.gov/electricity/2024b/distributed_wind
+ // Note: residential turbines (0 - 20 kW): system size 2.5 kW, rotor diameter 2.2m, allowable hub heights 20, 30, 40 m
+ },
+ "nlr-reference-100kW": {
+ label: "NLR Reference 100kW",
+ minHeight: 40,
+ maxHeight: 50,
+ info: "Commercial reference turbines (20-100 kW): system size 100 kW, rotor diameter 13.8m, allowable hub heights 40, 50 m (Lantz et al., 2016). Also see https://doi.org/10.2172/1333625",
+ // Source: Lantz et al. (2016)
+ // Lantz, E., Sigrin, B., Gleason, M., Preus, R., & Baring-Gould, I. (2016). Assessing the Future of Distributed Wind: Opportunities for Behind-the-Meter Projects (NREL/TP--6A20-67337, 1333625; p. NREL/TP--6A20-67337, 1333625). https://doi.org/10.2172/1333625
+ // For more information, refer to https://atb.nrel.gov/electricity/2024b/distributed_wind
+ // Note: commercial turbines (20-100 kW): system size 100 kW, rotor diameter 13.8m, allowable hub heights 40, 50 m
+ },
+ "nlr-reference-250kW": {
+ label: "NLR Reference 250kW",
+ minHeight: 50,
+ maxHeight: 50,
+ info: "Mid-size reference turbines (100 kW - 1 MW): system size 250 kW, rotor diameter 21.9m, allowable hub heights 50 m (Lantz et al., 2016). Also see https://doi.org/10.2172/1333625",
+ // Source: Lantz et al. (2016)
+ // Lantz, E., Sigrin, B., Gleason, M., Preus, R., & Baring-Gould, I. (2016). Assessing the Future of Distributed Wind: Opportunities for Behind-the-Meter Projects (NREL/TP--6A20-67337, 1333625; p. NREL/TP--6A20-67337, 1333625). https://doi.org/10.2172/1333625
+ // For more information, refer to https://atb.nrel.gov/electricity/2024b/distributed_wind
+ // Note: mid-size turbines (100 kW - 1 MW): system size 250 kW, rotor diameter 21.9m, allowable hub heights 50 m
+ },
+ "nlr-reference-2000kW": {
+ label: "NLR Reference 2000kW",
+ info: "Large-size reference turbines (> 1 MW): system size 1 MW, rotor diameter 43.7m, allowable hub heights 50, 80 m (Lantz et al., 2016). Also see https://doi.org/10.2172/1333625",
+ minHeight: 50,
+ maxHeight: 80,
+ // Source: Lantz et al. (2016)
+ // Lantz, E., Sigrin, B., Gleason, M., Preus, R., & Baring-Gould, I. (2016). Assessing the Future of Distributed Wind: Opportunities for Behind-the-Meter Projects (NREL/TP--6A20-67337, 1333625; p. NREL/TP--6A20-67337, 1333625). https://doi.org/10.2172/1333625
+ // For more information, refer to https://atb.nrel.gov/electricity/2024b/distributed_wind
+ // Note: large-size turbines (> 1 MW): system size 1 MW, rotor diameter 43.7m, allowable hub heights 50, 80 m
+ },
+ "bergey-excel-15": {
+ label: "Bergey Excel 15kW",
+ minHeight: 18,
+ maxHeight: 49,
+ info: "Minimum 60 ft (18 m) hub height, 80 ft (24 m) or higher recommended. See https://www.bergey.com/wp-content/uploads/Excel-15-Tower-Requirements-11-2018.pdf",
+ // Source: Wind Turbine Models Database and Bergey Windpower Co. Technical Specifications
+ // https://en.wind-turbine-models.com/turbines/2650-bergey-excel-15, accessed 2026-02-08.
+ // Bergey Windpower Co. (2018). Excel 15 requirements for customer supplied towers. Retrieved February 9, 2026, from https://www.bergey.com/wp-content/uploads/Excel-15-Tower-Requirements-11-2018.pdf
+ // Note: 60 ft (18 m) minimum, 80 ft (24 m) or higher recommended
+ },
+ "eocycle-25": {
+ label: "Eocycle 25kW",
+ minHeight: 18,
+ maxHeight: 36,
+ info: "Standard hub heights 18, 24, 30, 36 m. See Wind Turbine Models Database https://en.wind-turbine-models.com/turbines/1641-eocycle-eo25",
+ // Source: Wind Turbine Models Database
+ // https://en.wind-turbine-models.com/turbines/1641-eocycle-eo25, accessed 2026-02-08.
+ // Note: Standard hub heights 18/ 24/ 30/ 36 m
+ },
+ "northern-100": {
+ label: "Northern Power 100kW",
+ minHeight: 22,
+ maxHeight: 37,
+ info: "Standard hub heights for 100C series: 100C-21: 22, 29, 37 m; 100C-24: 30, 37 m; 100C-27: 22, 29, 37 m; 100C-28: 30, 37 m. See Northern Power Systems brochures https://northernpower.com/wp/?page_id=826",
+ // Source: Wind Turbine Models Database and manufacturer brochures
+ // https://en.wind-turbine-models.com/turbines/365-nps-northern-power-nps-100c-24, accessed 2026-02-08.
+ // Northern Power Systems. (2019). NPS 100C-28 Brochure. https://northernpower.com/wp/wp-content/uploads/2024/04/brochure-NPS-100C-28_ed2019_light_ENG.pdf
+ // Northern Power Systems. (2020a). NPS 100C-21 Brochure. https://northernpower.com/wp/wp-content/uploads/2024/04/brochure-NPS-100C-21_ed2020_light_ENG.pdf
+ // Northern Power Systems. (2020b). NPS 100C-24 Brochure. https://northernpower.com/wp/wp-content/uploads/2024/04/brochure-NPS-100C-24_ed2020_light_ENG.pdf
+ // Northern Power Systems. (2020c). NPS 100C-27 Brochure. https://northernpower.com/wp/wp-content/uploads/2024/04/brochure-NPS-100C-27_ed2020_light_ENG.pdf
+ // Note: Standard hub heights
+ // Northern Power® 100C-21: 22, 29, 37 m
+ // Northern Power® 100C-24: 30, 37 m
+ // Northern Power® 100C-27: 22, 29, 37 m
+ // Northern Power® 100C-28: 30, 37 m
+ },
+ siva_250kW_30m_rotor_diameter: {
+ label: "Siva 250kW (30m rotor diameter)",
+ minHeight: 30,
+ maxHeight: 50,
+ info: "Based on 250kW model with rotor diameter 30/29m, typical hub heights 30, 40, 45, 50 m. See Siva 250/50kW Turbine Brochure https://sivapowersamerica.com/wp-content/uploads/2024/06/Siva-US-2023.pdf",
+ // Source: Siva Powers America Manufacturer Brochure (2023)
+ // Siva Powers America. (2023). Siva 250/50kW Turbine Brochure. https://sivapowersamerica.com/wp-content/uploads/2024/06/Siva-US-2023.pdf, accessed 2026-02-08.
+ // Note: Rotor diameter is 30/29m, with typical hub heights of 30, 40, 45 and 50 m.
+ },
+ siva_250kW_32m_rotor_diameter: {
+ label: "Siva 250kW (32m rotor diameter)",
+ minHeight: 30,
+ maxHeight: 50,
+ info: "Based on 250kW model with rotor diameter 30/29m, typical hub heights 30, 40, 45, 50 m. Note: Exact 32m rotor diameter not specified. See Siva 250/50kW Turbine Brochure https://sivapowersamerica.com/wp-content/uploads/2024/06/Siva-US-2023.pdf",
+ // Source: Siva Powers America Manufacturer Brochure (2023)
+ // Siva Powers America. (2023). Siva 250/50kW Turbine Brochure. https://sivapowersamerica.com/wp-content/uploads/2024/06/Siva-US-2023.pdf, accessed 2026-02-08.
+ // Note: Rotor diameter is 30/29m, with typical hub heights of 30, 40, 45 and 50 m. Exact rotor diameter of 32m not specified for 250kW model.
+ },
+ siva_750_u50: {
+ label: "Siva 750kW (50m rotor diameter)",
+ minHeight: 50,
+ maxHeight: 50,
+ info: "750kW series with rotor diameters 50, 54, 57 m and typical hub heights 50, 60, 68 m respectively. see Siva Powers America https://sivapowersamerica.com/our-turbines/",
+ // Source: Siva Powers America Manufacturer Website
+ // Siva Powers America. (2025). Our Turbines. https://sivapowersamerica.com/our-turbines/, accessed 2026-02-08.
+ // Note: Rotor diameters are 50, 54, and 57 m, with typical hub heights of 50, 60, and 68 m respectively.
+ },
+ siva_750_u57: {
+ label: "Siva 750kW (57m rotor diameter)",
+ minHeight: 50,
+ maxHeight: 68,
+ info: "750kW series with rotor diameters 50, 54, 57 m and typical hub heights 50, 60, 68 m respectively. see Siva Powers America https://sivapowersamerica.com/our-turbines/",
+ // Source: Siva Powers America Manufacturer Website
+ // Siva Powers America. (2025). Our Turbines. https://sivapowersamerica.com/our-turbines/, accessed 2026-02-08.
+ // Note: Rotor diameters are 50, 54, and 57 m, with typical hub heights of 50, 60, and 68 m respectively.
+ },
+};
+
+export const POWER_CURVE_LABEL: Record = Object.entries(
+ TURBINE_DATA
+).reduce(
+ (acc, [key, turbine]) => {
+ acc[key] = turbine.label;
+ return acc;
+ },
+ {} as Record
+);
+
+export const VALID_POWER_CURVES = Object.keys(TURBINE_DATA);
diff --git a/windwatts-ui/src/hooks/useEnsembleTilesData.ts b/windwatts-ui/src/hooks/useEnsembleTilesData.ts
index 8bca79a..ca213ce 100644
--- a/windwatts-ui/src/hooks/useEnsembleTilesData.ts
+++ b/windwatts-ui/src/hooks/useEnsembleTilesData.ts
@@ -51,7 +51,7 @@ export const useEnsembleTilesData = () => {
lat: lat!,
lng: lng!,
hubHeight,
- powerCurve,
+ turbine: powerCurve,
dataModel,
period: "all",
}),
diff --git a/windwatts-ui/src/hooks/useProductionData.ts b/windwatts-ui/src/hooks/useProductionData.ts
index b375d94..ce9628c 100644
--- a/windwatts-ui/src/hooks/useProductionData.ts
+++ b/windwatts-ui/src/hooks/useProductionData.ts
@@ -41,7 +41,7 @@ export const useProductionData = () => {
lat: lat!,
lng: lng!,
hubHeight,
- powerCurve,
+ turbine: powerCurve,
dataModel,
period: "full",
}),
diff --git a/windwatts-ui/src/services/api.ts b/windwatts-ui/src/services/api.ts
index ef3544b..63f142a 100644
--- a/windwatts-ui/src/services/api.ts
+++ b/windwatts-ui/src/services/api.ts
@@ -44,11 +44,11 @@ export const getEnergyProduction = async ({
lat,
lng,
hubHeight,
- powerCurve,
+ turbine,
dataModel,
period = "all",
}: EnergyProductionRequest) => {
- const url = `/api/v1/${dataModel}/production?lat=${lat}&lng=${lng}&height=${hubHeight}&powercurve=${powerCurve}&period=${period}`;
+ const url = `/api/v1/${dataModel}/production?lat=${lat}&lng=${lng}&height=${hubHeight}&turbine=${turbine}&period=${period}`;
const options = {
method: "GET",
headers: {
diff --git a/windwatts-ui/src/types/Requests.ts b/windwatts-ui/src/types/Requests.ts
index ac5515c..c17018a 100644
--- a/windwatts-ui/src/types/Requests.ts
+++ b/windwatts-ui/src/types/Requests.ts
@@ -12,7 +12,7 @@ export interface EnergyProductionRequest {
lat: number;
lng: number;
hubHeight: number;
- powerCurve: string;
+ turbine: string;
dataModel: DataModel;
period?: string;
}