Skip to content

Commit a321e56

Browse files
committed
Correction in raised error
1 parent cf9c55a commit a321e56

File tree

1 file changed

+1
-103
lines changed

1 file changed

+1
-103
lines changed

windpowerlib/turbine_cluster_modelchain.py

Lines changed: 1 addition & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -91,113 +91,11 @@ def __init__(self, wind_object, wake_losses_method='wind_efficiency_curve',
9191

9292
if (isinstance(self.wind_object, wind_farm.WindFarm) and
9393
self.smoothing_order == 'cluster_power_curve'):
94-
raise ValueError("`smoothing_order` can only be " +
94+
raise ValueError("`smoothing_order` can only be done to" +
9595
"'cluster_power_curve' if you calculate a " +
9696
"cluster but `wind_object` is an object of the " +
9797
"class WindFarm.")
9898

99-
def wind_farm_power_curve(self, wind_farm, **kwargs):
100-
r"""
101-
Caluclates the power curve of a wind farm.
102-
103-
Depending on the parameters of the class the power curves are smoothed
104-
and/or density corrected before or after the summation and/or a wind
105-
farm efficiency is applied after the summation. TODO: check entry
106-
107-
Parameters
108-
----------
109-
wind_farm : WindFarm
110-
A :class:`~.wind_farm.WindFarm` object representing the wind farm.
111-
112-
Other Parameters
113-
----------------
114-
roughness_length : Float, optional.
115-
Roughness length.
116-
turbulence_intensity : Float, optional.
117-
Turbulence intensity.
118-
119-
Returns
120-
-------
121-
summarized_power_curve_df : pd.DataFrame
122-
Calculated power curve of the wind farm.
123-
124-
"""
125-
# Initialize data frame for power curve values
126-
df = pd.DataFrame()
127-
for turbine_type_dict in wind_farm.wind_turbine_fleet:
128-
# Check if all needed parameters are available
129-
if self.smoothing:
130-
if (self.standard_deviation_method ==
131-
'turbulence_intensity' and
132-
'turbulence_intensity' not in kwargs):
133-
if 'roughness_length' in kwargs:
134-
# Calculate turbulence intensity and write to kwargs
135-
turbulence_intensity = (
136-
tools.estimate_turbulence_intensity(
137-
turbine_type_dict['wind_turbine'].hub_height,
138-
kwargs['roughness_length']))
139-
kwargs['turbulence_intensity'] = turbulence_intensity
140-
else:
141-
raise ValueError(
142-
"`roughness_length` must be defined for using " +
143-
"'turbulence_intensity' as " +
144-
"`standard_deviation_method` if " +
145-
"`turbulence_intensity` is not given")
146-
if self.wake_losses_method is not None:
147-
if wind_farm.efficiency is None:
148-
raise KeyError(
149-
"wind_farm_efficiency is needed if " +
150-
"`wake_losses_method´ is '{0}', but ".format(
151-
self.wake_losses_method) +
152-
" `wind_farm_efficiency` of {0} is {1}.".format(
153-
self.wind_object.object_name,
154-
self.wind_object.efficiency))
155-
# Get original power curve
156-
power_curve = pd.DataFrame(
157-
turbine_type_dict['wind_turbine'].power_curve)
158-
# Editions to power curve before the summation
159-
if (self.smoothing and
160-
self.smoothing_order == 'turbine_power_curves'):
161-
power_curve = power_curves.smooth_power_curve(
162-
power_curve['wind_speed'], power_curve['power'],
163-
standard_deviation_method=self.standard_deviation_method,
164-
**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]
169-
df = pd.concat([df, pd.DataFrame( # TODO: merge without renaming
170-
power_curve.set_index(['wind_speed']) *
171-
turbine_type_dict['number_of_turbines'])], axis=1)
172-
# Rename back TODO: copy()
173-
power_curve.columns = ['wind_speed', 'power']
174-
# Sum up power curves of all turbine types
175-
summarized_power_curve = pd.DataFrame(
176-
sum(df[item].interpolate(method='index') for item in list(df)))
177-
summarized_power_curve.columns = ['power']
178-
# Return wind speed (index) to a column of the data frame
179-
summarized_power_curve_df = pd.DataFrame(
180-
data=[list(summarized_power_curve.index),
181-
list(summarized_power_curve['power'].values)]).transpose()
182-
summarized_power_curve_df.columns = ['wind_speed', 'power']
183-
# Editions to power curve after the summation
184-
if (self.smoothing and
185-
self.smoothing_order == 'wind_farm_power_curves'):
186-
summarized_power_curve_df = power_curves.smooth_power_curve(
187-
summarized_power_curve_df['wind_speed'],
188-
summarized_power_curve_df['power'],
189-
standard_deviation_method=self.standard_deviation_method,
190-
**kwargs)
191-
if (self.wake_losses_method == 'constant_efficiency' or
192-
self.wake_losses_method == 'wind_efficiency_curve'):
193-
summarized_power_curve_df = (
194-
power_curves.wake_losses_to_power_curve(
195-
summarized_power_curve_df['wind_speed'].values,
196-
summarized_power_curve_df['power'].values,
197-
wake_losses_method=self.wake_losses_method,
198-
wind_farm_efficiency=self.wind_object.efficiency))
199-
return summarized_power_curve_df
200-
20199
def turbine_cluster_power_curve(self, **kwargs):
202100
r"""
203101
Caluclates the power curve of a wind turbine cluster.

0 commit comments

Comments
 (0)