Skip to content

Commit

Permalink
Rename shear coefficient to just shear
Browse files Browse the repository at this point in the history
It is not a coefficient
  • Loading branch information
Jens Gåsemyr Magnus authored and JensGM committed May 10, 2019
1 parent c5ad1d2 commit 36fbb09
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 24 deletions.
24 changes: 12 additions & 12 deletions camille/process/lidar.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,10 +117,10 @@ def planar_windspeed(rws_a, rws_b, pitch, roll, azm_a, azm_b, zn_a, zn_b):
return sqrt(x ** 2 + y ** 2)


def shear_coefficient(ws_upr, ws_lwr, hgt_upr, hgt_lwr):
"""Shear Coefficient
def shear(ws_upr, ws_lwr, hgt_upr, hgt_lwr):
"""Shear
Calculate shear coefficient
Calculate shear
Parameters
----------
Expand All @@ -136,7 +136,7 @@ def shear_coefficient(ws_upr, ws_lwr, hgt_upr, hgt_lwr):
Returns
-------
float
Shear coefficient
Shear
References
----------
Expand All @@ -146,7 +146,7 @@ def shear_coefficient(ws_upr, ws_lwr, hgt_upr, hgt_lwr):
return log(ws_upr / ws_lwr) / log(hgt_upr / hgt_lwr)


def extrapolate_windspeed(hgt, shear_coeff, ref_windspeed, ref_hgt):
def extrapolate_windspeed(hgt, shr, ref_windspeed, ref_hgt):
"""Extrapolate windspeed
Extrapolate windspeed using the wind profile power law [1]_.
Expand All @@ -155,8 +155,8 @@ def extrapolate_windspeed(hgt, shear_coeff, ref_windspeed, ref_hgt):
----------
hgt : float
Target height
shear_coeff : float
Shear coefficient
shr : float
Shear
ref_windspeed : float
Reference wind speed
ref_hgt : float
Expand All @@ -172,7 +172,7 @@ def extrapolate_windspeed(hgt, shear_coeff, ref_windspeed, ref_hgt):
.. [1] https://en.wikipedia.org/wiki/Wind_profile_power_law
"""
return ref_windspeed * pow(hgt / ref_hgt, shear_coeff)
return ref_windspeed * pow(hgt / ref_hgt, shr)


def horiz_windspeed(L, dist, hub_hgt, lidar_hgt, azimuths, zeniths):
Expand Down Expand Up @@ -229,10 +229,10 @@ def horiz_windspeed(L, dist, hub_hgt, lidar_hgt, azimuths, zeniths):
rws[2], rws[3], pitch_lwr, roll_lwr,
azimuths[2], azimuths[3], zeniths[2], zeniths[3])

shear_coeff = shear_coefficient(ws_upr, ws_lwr, hgt_upr, hgt_lwr)
hws = extrapolate_windspeed(hub_hgt, shear_coeff, ws_lwr, hgt_lwr)
shr = shear(ws_upr, ws_lwr, hgt_upr, hgt_lwr)
hws = extrapolate_windspeed(hub_hgt, shr, ws_lwr, hgt_lwr)
return hws, {
'shear_coeff': shear_coeff,
'shear': shr,
**{'rws{}'.format(s): rws[s] for s in sensors},
**{'beam_hgt{}'.format(s): beam_hgts[s] for s in sensors},
'planar_ws_upr': ws_upr,
Expand Down Expand Up @@ -373,7 +373,7 @@ def process(
Export extra data. Sometimes it can be useful to export intermediate
values computed by this processor. Available extra columns are:
- :code:`shear_coeff` - Shear coefficient
- :code:`shear` - Shear
- :code:`rws[0-3]` - radial wind speeds
- :code:`beam_hgt[0-3]` - beam heights
- :code:`planar_ws_(upr|lwr)` - planar wind speeds
Expand Down
24 changes: 12 additions & 12 deletions tests/process/test_lidar.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,21 +54,21 @@ def __repr__(self):


class windfield_function:
def __init__(self, direction, ref_speed, shear_coeff=0.0):
def __init__(self, direction, ref_speed, shear=0.0):
self.direction = direction
self.ref_speed = ref_speed
self.shear_coeff = shear_coeff
self.shear = shear

def __call__(self, pnt):
hgt = pnt[2]
u = self.ref_speed * pow(hgt / hub_hgt, self.shear_coeff)
u = self.ref_speed * pow(hgt / hub_hgt, self.shear)
return u, u * self.direction

def __repr__(self):
return 'windfield_function({}, {}, {})'.format(
self.direction,
self.ref_speed,
self.shear_coeff
self.shear
)


Expand Down Expand Up @@ -103,10 +103,10 @@ def uniform_dir(alpha):
windfields = builds(windfield_function, directions, windspeeds)
lidars = builds(lidar_simulator, angles, angles)

shear_coeffs = floats(min_value=0.143 / 2, max_value=0.143 * 2)
shears = floats(min_value=0.143 / 2, max_value=0.143 * 2)
sheared_windfields = builds(
windfield_function, directions, windspeeds, shear_coeffs)
# shear_coefficient is inaccurate with roll, could be addressed
windfield_function, directions, windspeeds, shears)
# shear is inaccurate with roll, could be addressed
flat_lidars = builds(lidar_simulator, angles)

distances = integers(min_value=50, max_value=400)
Expand All @@ -128,12 +128,12 @@ def test_lidar(args):
lidar_hgt=0,
pitch_offset=0,
roll_offset=0,
extra_columns=['shear_coeff'],
extra_columns=['shear'],
)

ref_speed, _ = windfield(np.array([dist, 0, hub_hgt]))
for _, row in processed.iterrows():
assert row.shear_coeff == approx(0)
assert row.shear == approx(0)
assert row.hws == approx(ref_speed)


Expand All @@ -148,11 +148,11 @@ def test_lidar_sheared_windfield(args):
lidar_hgt=0,
pitch_offset=0,
roll_offset=0,
extra_columns=['shear_coeff'],
extra_columns=['shear'],
)

ref_speed, _ = windfield(np.array([dist, 0, hub_hgt]))
ref_shear = windfield.shear_coeff
ref_shear = windfield.shear
for _, row in processed.iterrows():
assert row.shear_coeff == approx(ref_shear)
assert row.shear == approx(ref_shear)
assert row.hws == approx(ref_speed)

0 comments on commit 36fbb09

Please sign in to comment.