Skip to content

Commit b0408b3

Browse files
committed
Rename wind_turbine and wind_object to power_plant to make inheritance simpler
1 parent 138d0cb commit b0408b3

File tree

2 files changed

+38
-42
lines changed

2 files changed

+38
-42
lines changed

windpowerlib/modelchain.py

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class ModelChain(object):
1818
1919
Parameters
2020
----------
21-
wind_turbine : WindTurbine
21+
power_plant : WindTurbine
2222
A :class:`~.wind_turbine.WindTurbine` object representing the wind
2323
turbine.
2424
wind_speed_model : string
@@ -51,7 +51,7 @@ class ModelChain(object):
5151
5252
Attributes
5353
----------
54-
wind_turbine : WindTurbine
54+
power_plant : WindTurbine
5555
A :class:`~.wind_turbine.WindTurbine` object representing the wind
5656
turbine.
5757
wind_speed_model : string
@@ -93,15 +93,15 @@ class ModelChain(object):
9393
... 'rotor_diameter': 127,
9494
... 'name': 'ENERCON E 126 7500',
9595
... 'fetch_curve': 'power_curve'}
96-
>>> e126 = wind_turbine.WindTurbine(**enerconE126)
96+
>>> e126 = power_plant.WindTurbine(**enerconE126)
9797
>>> modelchain_data = {'density_model': 'ideal_gas'}
9898
>>> e126_mc = modelchain.ModelChain(e126, **modelchain_data)
9999
>>> print(e126_mc.density_model)
100100
ideal_gas
101101
102102
"""
103103

104-
def __init__(self, wind_turbine,
104+
def __init__(self, power_plant,
105105
wind_speed_model='logarithmic',
106106
temperature_model='linear_gradient',
107107
density_model='barometric',
@@ -110,7 +110,7 @@ def __init__(self, wind_turbine,
110110
obstacle_height=0,
111111
hellman_exp=None):
112112

113-
self.wind_turbine = wind_turbine
113+
self.power_plant = power_plant
114114
self.obstacle_height = obstacle_height
115115
self.wind_speed_model = wind_speed_model
116116
self.temperature_model = temperature_model
@@ -149,24 +149,24 @@ def temperature_hub(self, weather_df):
149149
temperature(s) closest to the hub height are used.
150150
151151
"""
152-
if self.wind_turbine.hub_height in weather_df['temperature']:
152+
if self.power_plant.hub_height in weather_df['temperature']:
153153
temperature_hub = weather_df['temperature'][
154-
self.wind_turbine.hub_height]
154+
self.power_plant.hub_height]
155155
elif self.temperature_model == 'linear_gradient':
156156
logging.debug('Calculating temperature using temperature '
157157
'gradient.')
158158
closest_height = weather_df['temperature'].columns[
159159
min(range(len(weather_df['temperature'].columns)),
160160
key=lambda i: abs(weather_df['temperature'].columns[i] -
161-
self.wind_turbine.hub_height))]
161+
self.power_plant.hub_height))]
162162
temperature_hub = temperature.linear_gradient(
163163
weather_df['temperature'][closest_height], closest_height,
164-
self.wind_turbine.hub_height)
164+
self.power_plant.hub_height)
165165
elif self.temperature_model == 'interpolation_extrapolation':
166166
logging.debug('Calculating temperature using linear inter- or '
167167
'extrapolation.')
168168
temperature_hub = tools.linear_interpolation_extrapolation(
169-
weather_df['temperature'], self.wind_turbine.hub_height)
169+
weather_df['temperature'], self.power_plant.hub_height)
170170
else:
171171
raise ValueError("'{0}' is an invalid value. ".format(
172172
self.temperature_model) + "`temperature_model` must be "
@@ -218,24 +218,24 @@ def density_hub(self, weather_df):
218218
closest_height = weather_df['pressure'].columns[
219219
min(range(len(weather_df['pressure'].columns)),
220220
key=lambda i: abs(weather_df['pressure'].columns[i] -
221-
self.wind_turbine.hub_height))]
221+
self.power_plant.hub_height))]
222222
density_hub = density.barometric(
223223
weather_df['pressure'][closest_height], closest_height,
224-
self.wind_turbine.hub_height, temperature_hub)
224+
self.power_plant.hub_height, temperature_hub)
225225
elif self.density_model == 'ideal_gas':
226226
logging.debug('Calculating density using ideal gas equation.')
227227
closest_height = weather_df['pressure'].columns[
228228
min(range(len(weather_df['pressure'].columns)),
229229
key=lambda i: abs(weather_df['pressure'].columns[i] -
230-
self.wind_turbine.hub_height))]
230+
self.power_plant.hub_height))]
231231
density_hub = density.ideal_gas(
232232
weather_df['pressure'][closest_height], closest_height,
233-
self.wind_turbine.hub_height, temperature_hub)
233+
self.power_plant.hub_height, temperature_hub)
234234
elif self.density_model == 'interpolation_extrapolation':
235235
logging.debug('Calculating density using linear inter- or '
236236
'extrapolation.')
237237
density_hub = tools.linear_interpolation_extrapolation(
238-
weather_df['density'], self.wind_turbine.hub_height)
238+
weather_df['density'], self.power_plant.hub_height)
239239
else:
240240
raise ValueError("'{0}' is an invalid value. ".format(
241241
self.density_model) + "`density_model` " +
@@ -272,42 +272,42 @@ def wind_speed_hub(self, weather_df):
272272
wind speed(s) closest to the hub height are used.
273273
274274
"""
275-
if self.wind_turbine.hub_height in weather_df['wind_speed']:
275+
if self.power_plant.hub_height in weather_df['wind_speed']:
276276
wind_speed_hub = weather_df['wind_speed'][
277-
self.wind_turbine.hub_height]
277+
self.power_plant.hub_height]
278278
elif self.wind_speed_model == 'logarithmic':
279279
logging.debug('Calculating wind speed using logarithmic wind '
280280
'profile.')
281281
closest_height = weather_df['wind_speed'].columns[
282282
min(range(len(weather_df['wind_speed'].columns)),
283283
key=lambda i: abs(weather_df['wind_speed'].columns[i] -
284-
self.wind_turbine.hub_height))]
284+
self.power_plant.hub_height))]
285285
wind_speed_hub = wind_speed.logarithmic_profile(
286286
weather_df['wind_speed'][closest_height], closest_height,
287-
self.wind_turbine.hub_height,
287+
self.power_plant.hub_height,
288288
weather_df['roughness_length'].ix[:, 0],
289289
self.obstacle_height)
290290
elif self.wind_speed_model == 'hellman':
291291
logging.debug('Calculating wind speed using hellman equation.')
292292
closest_height = weather_df['wind_speed'].columns[
293293
min(range(len(weather_df['wind_speed'].columns)),
294294
key=lambda i: abs(weather_df['wind_speed'].columns[i] -
295-
self.wind_turbine.hub_height))]
295+
self.power_plant.hub_height))]
296296
wind_speed_hub = wind_speed.hellman(
297297
weather_df['wind_speed'][closest_height], closest_height,
298-
self.wind_turbine.hub_height,
298+
self.power_plant.hub_height,
299299
weather_df['roughness_length'].ix[:, 0],
300300
self.hellman_exp)
301301
elif self.wind_speed_model == 'interpolation_extrapolation':
302302
logging.debug('Calculating wind speed using linear inter- or '
303303
'extrapolation.')
304304
wind_speed_hub = tools.linear_interpolation_extrapolation(
305-
weather_df['wind_speed'], self.wind_turbine.hub_height)
305+
weather_df['wind_speed'], self.power_plant.hub_height)
306306
elif self.wind_speed_model == 'log_interpolation_extrapolation':
307307
logging.debug('Calculating wind speed using logarithmic inter- or '
308308
'extrapolation.')
309309
wind_speed_hub = tools.logarithmic_interpolation_extrapolation(
310-
weather_df['wind_speed'], self.wind_turbine.hub_height)
310+
weather_df['wind_speed'], self.power_plant.hub_height)
311311
else:
312312
raise ValueError("'{0}' is an invalid value. ".format(
313313
self.wind_speed_model) + "`wind_speed_model` must be "
@@ -335,30 +335,30 @@ def turbine_power_output(self, wind_speed_hub, density_hub):
335335
336336
"""
337337
if self.power_output_model == 'power_curve':
338-
if self.wind_turbine.power_curve is None:
338+
if self.power_plant.power_curve is None:
339339
raise TypeError("Power curve values of " +
340-
self.wind_turbine.name +
340+
self.power_plant.name +
341341
" are missing.")
342342
logging.debug('Calculating power output using power curve.')
343343
return (power_output.power_curve(
344344
wind_speed_hub,
345-
self.wind_turbine.power_curve['wind_speed'],
346-
self.wind_turbine.power_curve['power'],
345+
self.power_plant.power_curve['wind_speed'],
346+
self.power_plant.power_curve['power'],
347347
density_hub, self.density_correction))
348348
elif self.power_output_model == 'power_coefficient_curve':
349-
if self.wind_turbine.power_coefficient_curve is None:
349+
if self.power_plant.power_coefficient_curve is None:
350350
raise TypeError("Power coefficient curve values of " +
351-
self.wind_turbine.name +
351+
self.power_plant.name +
352352
" are missing.")
353353
logging.debug('Calculating power output using power coefficient '
354354
'curve.')
355355
return (power_output.power_coefficient_curve(
356356
wind_speed_hub,
357-
self.wind_turbine.power_coefficient_curve[
357+
self.power_plant.power_coefficient_curve[
358358
'wind_speed'],
359-
self.wind_turbine.power_coefficient_curve[
359+
self.power_plant.power_coefficient_curve[
360360
'power coefficient'],
361-
self.wind_turbine.rotor_diameter, density_hub))
361+
self.power_plant.rotor_diameter, density_hub))
362362
else:
363363
raise ValueError("'{0}' is an invalid value. ".format(
364364
self.power_output_model) +

windpowerlib/turbine_cluster_modelchain.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,10 @@ class TurbineClusterModelChain(ModelChain):
7676
7777
Attributes
7878
----------
79-
wind_object : WindFarm or WindTurbineCluster
79+
power_plant : WindFarm or WindTurbineCluster
8080
A :class:`~.wind_farm.WindFarm` object representing the wind farm or
8181
a :class:`~.wind_turbine_cluster.WindTurbineCluster` object
8282
representing the wind turbine cluster.
83-
wind_turbine : WindFarm or WindTurbineCluster
84-
A shallow copy of `wind_object` which is necessary to use all functions
85-
of the superclass ~.modelchain.ModelChain`.
8683
wake_losses_method : String
8784
Defines the method for talking wake losses within the farm into
8885
consideration. Options: 'power_efficiency_curve',
@@ -134,14 +131,13 @@ class TurbineClusterModelChain(ModelChain):
134131
one constant.
135132
136133
"""
137-
def __init__(self, wind_object, wake_losses_method='dena_mean',
134+
def __init__(self, power_plant, wake_losses_method='dena_mean',
138135
smoothing=True, block_width=0.5,
139136
standard_deviation_method='turbulence_intensity',
140137
smoothing_order='wind_farm_power_curves', **kwargs):
141-
super(TurbineClusterModelChain, self).__init__(wind_turbine=wind_object,
142-
**kwargs)
138+
super(TurbineClusterModelChain, self).__init__(**kwargs)
143139

144-
self.wind_object = wind_object
140+
self.power_plant = power_plant
145141
self.wake_losses_method = wake_losses_method
146142
self.smoothing = smoothing
147143
self.block_width = block_width
@@ -208,15 +204,15 @@ def run_model(self, weather_df):
208204
wake_losses_method_to_power_curve = self.wake_losses_method
209205
else:
210206
wake_losses_method_to_power_curve = None
211-
self.wind_object.assign_power_curve(
207+
self.power_plant.assign_power_curve(
212208
wake_losses_method=wake_losses_method_to_power_curve,
213209
smoothing=self.smoothing, block_width=self.block_width,
214210
standard_deviation_method=self.standard_deviation_method,
215211
smoothing_order=self.smoothing_order,
216212
roughness_length=weather_df['roughness_length'].values.mean(),
217213
turbulence_intensity=turbulence_intensity)
218214
# Assign mean hub height
219-
self.wind_object.mean_hub_height()
215+
self.power_plant.mean_hub_height()
220216

221217
# Run modelchain
222218
wind_speed_hub = self.wind_speed_hub(weather_df)

0 commit comments

Comments
 (0)