floris_design #7
@ -65,7 +65,8 @@ class FlorisULSTU(FlorisModel):
|
||||
|
||||
for experiment_count in range(experiment_counts):
|
||||
self.reset_operation()
|
||||
self.set(wind_speeds=[wind_speeds[0]], wind_directions=[wind_dirs[0]], turbulence_intensities=[0.05])
|
||||
self.set(wind_speeds=[wind_speeds[experiment_count]], wind_directions=[wind_dirs[experiment_count]],
|
||||
turbulence_intensities=[0.05])
|
||||
ax = axarr[experiment_count]
|
||||
horizontal_plane = self.calculate_horizontal_plane(height=90.0)
|
||||
visualize_cut_plane(
|
||||
|
@ -12,6 +12,7 @@ class SWeatherInfo(BaseModel):
|
||||
class SFlorisInputParams(BaseModel):
|
||||
layout_x: list[float] = Field(Query([]))
|
||||
layout_y: list[float] = Field(Query([]))
|
||||
yaw_angle: list[float] = Field(Query([]))
|
||||
date_start: date
|
||||
date_end: date
|
||||
|
||||
|
@ -8,6 +8,7 @@ from fastapi.responses import FileResponse
|
||||
|
||||
from data.repository import WeatherRepository
|
||||
from data.schemas import SFlorisInputParams, SFlorisOutputData, SWeatherInfo
|
||||
import numpy as np
|
||||
|
||||
|
||||
sys.path.append(str(Path(__file__).parent.parent.parent))
|
||||
@ -27,12 +28,13 @@ router = APIRouter(
|
||||
async def get_windmill_data(
|
||||
data: Annotated[SFlorisInputParams, Depends()]
|
||||
):
|
||||
if len(data.layout_x) != len(data.layout_y):
|
||||
if len(data.layout_x) != len(data.layout_y) and len(data.layout_x) != len(data.yaw_angle):
|
||||
raise HTTPException(
|
||||
status_code=HTTPStatus.BAD_REQUEST,
|
||||
detail="Length of layout x and y must be the same",
|
||||
detail="Length of layout x and y and yaw_angle must be the same",
|
||||
)
|
||||
|
||||
|
||||
fmodel = FlorisULSTU()
|
||||
|
||||
client = OpenMeteoClient()
|
||||
@ -49,6 +51,14 @@ async def get_windmill_data(
|
||||
turbulence_intensities=[0.1] * len(wind_directions)
|
||||
)
|
||||
|
||||
yaw_angles = np.zeros((len(wind_directions), len(data.layout_x)))
|
||||
for i in range(len(data.layout_x)):
|
||||
yaw_angles[:, i] = data.yaw_angle[i]
|
||||
|
||||
fmodel.set(
|
||||
yaw_angles=yaw_angles,
|
||||
)
|
||||
|
||||
fmodel.run()
|
||||
|
||||
res = fmodel.get_turbine_powers().tolist()
|
||||
|
Loading…
Reference in New Issue
Block a user