Skip to content

Commit 5c06c13

Browse files
committed
Restructure power curve aggregation
1 parent a1affcd commit 5c06c13

File tree

1 file changed

+17
-25
lines changed

1 file changed

+17
-25
lines changed

windpowerlib/turbine_cluster_modelchain.py

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -157,48 +157,40 @@ def wind_farm_power_curve(self, wind_farm, **kwargs):
157157
turbine_type_dict['wind_turbine'].power_curve)
158158
# Editions to power curve before the summation
159159
if (self.smoothing and
160-
self.smoothing_order == 'turbine_power_curves'):
160+
self.smoothing_order == 'turbine_power_curves'):
161161
power_curve = power_curves.smooth_power_curve(
162162
power_curve['wind_speed'], power_curve['power'],
163163
standard_deviation_method=self.standard_deviation_method,
164164
**kwargs)
165-
# Add power curves of all turbines of same type to data frame after
166-
# renaming columns
167-
power_curve.columns = ['wind_speed', turbine_type_dict[
168-
'wind_turbine'].object_name]
165+
# Add power curves of all turbine types to data frame
166+
# (multiplied by turbine amount)
169167
df = pd.concat(
170-
[df, pd.DataFrame( # TODO: merge without renaming
168+
[df, pd.DataFrame(
171169
power_curve.set_index(['wind_speed']) *
172170
turbine_type_dict['number_of_turbines'])], axis=1)
173-
# Rename back TODO: copy()
174-
power_curve.columns = ['wind_speed', 'power']
175-
# Sum up power curves of all turbine types
176-
summarized_power_curve = pd.DataFrame(
177-
sum(df[item].interpolate(method='index') for item in list(df)))
171+
# Sum up all power curves
172+
summarized_power_curve = pd.DataFrame( # TODO rename to aggregated_power_curve
173+
df.interpolate(method='index').sum(axis=1))
178174
summarized_power_curve.columns = ['power']
179175
# Return wind speed (index) to a column of the data frame
180-
summarized_power_curve_df = pd.DataFrame(
181-
data=[list(summarized_power_curve.index),
182-
list(
183-
summarized_power_curve['power'].values)]).transpose()
184-
summarized_power_curve_df.columns = ['wind_speed', 'power']
176+
summarized_power_curve.reset_index('wind_speed', inplace=True)
185177
# Editions to power curve after the summation
186178
if (self.smoothing and
187-
self.smoothing_order == 'wind_farm_power_curves'):
188-
summarized_power_curve_df = power_curves.smooth_power_curve(
189-
summarized_power_curve_df['wind_speed'],
190-
summarized_power_curve_df['power'],
179+
self.smoothing_order == 'wind_farm_power_curves'):
180+
summarized_power_curve = power_curves.smooth_power_curve(
181+
summarized_power_curve['wind_speed'],
182+
summarized_power_curve['power'],
191183
standard_deviation_method=self.standard_deviation_method,
192184
**kwargs)
193185
if (self.wake_losses_method == 'constant_efficiency' or
194-
self.wake_losses_method == 'power_efficiency_curve'):
195-
summarized_power_curve_df = (
186+
self.wake_losses_method == 'power_efficiency_curve'):
187+
summarized_power_curve = (
196188
power_curves.wake_losses_to_power_curve(
197-
summarized_power_curve_df['wind_speed'].values,
198-
summarized_power_curve_df['power'].values,
189+
summarized_power_curve['wind_speed'].values,
190+
summarized_power_curve['power'].values,
199191
wake_losses_method=self.wake_losses_method,
200192
wind_farm_efficiency=self.wind_object.efficiency))
201-
return summarized_power_curve_df
193+
return summarized_power_curve
202194

203195
def turbine_cluster_power_curve(self, **kwargs):
204196
r"""

0 commit comments

Comments
 (0)