Roughness
The roughness module contains all functions related to surface roughness.
- roughness_length(lai, z_oro, z_obst, z_obst_max, land_mask=1)
Computes the surface roughness length. The roughness length is related to the roughness characteristics. For the logarithmic wind-profile the surface roughness length is the height at which the wind speed is zero. The roughness length is calculated differently for different types of land use.
Land use is classified as follows:
no data
land
water
urban
\[\begin{split}z_{0,m}=\begin{cases} \begin{array}{cc} 0 & l=0\\ z_{0,m} & l=1\\ 0.0001 & l=2\\ \frac{1}{7} \cdot z_{obst,max}+z_{oro} & l=3 \end{array}\end{cases}\end{split}\]- Parameters
lai (float) – leaf area index, \(I_{lai}\) [-]
z_oro (float) – orographic roughness, \(z_{oro}\) [m]
z_obst (float) – obstacle height, \(z_{obst}\) [m]
z_obst_max (float) – maximum obstacle height, \(z_{obst,max}\) [m]
land_mask (int) – land use classification, \(l\) [-]
- Returns
z0m – roughness length, \(z_{0,m}\) [m]
- Return type
float
Examples
>>> import ETLook.roughness as roughness >>> roughness.roughness_length(0.4) 0.34179999999999999
- obstacle_height(ndvi, z_obst_max, ndvi_obs_min=0.25, ndvi_obs_max=0.75, obs_fr=0.25)
Computes the obstacle height. The ndvi is used to limit the obstacle height.
\[\begin{split}z_{obst} = \begin{cases} \begin{array}{cc} f_{obs}z_{obst,max} & I_{ndvi}\leq I_{ndvi,obs,min}\\ z_{obst,max}\left(f_{obs}+\left(1-f_{obs}\right)\left (\frac{I_{ndvi}-I_{ndvi,obs,min}} {I_{ndvi,obs,max}-I_{ndvi,obs,min}}\right)\right) & I_{ndvi}>I_{ndvi,obs,min}\&I_{ndvi}<I_{ndvi,obs,max}\\ z_{obst,max} & I_{ndvi}\geq I_{ndvi,obs,max} \end{array}\end{cases}\end{split}\]- Parameters
ndvi (float) – normalized difference vegetation index, \(I_{ndvi}\) [-]
ndvi_obs_min (float) – normalized difference vegetation index @ min obstacle height, \(I_{ndvi,obs,min}\) [-]
ndvi_obs_max (float) – normalized difference vegetation index @ max obstacle height, \(I_{ndvi,obs,max}\) [-]
obs_fr (float) – ratio of minimum and maximum obstacle height, \(f_{obs}\) [-]
z_obst_max (float) – maximum obstacle height :math`z_{obst,max}` [m]
- Returns
z_obst – obstacle height, \(z_{obst}\) [m]
- Return type
float
Examples
>>> import ETLook.roughness as roughness >>> roughness.obstacle_height(0.4, 2.0) 0.95
- displacement_height(lai, z_obst, land_mask=1, c1=1)
Computes the displacement height. The lai is used to limit the displacement height. It is defined differently for different types of landuse.
Land use is classified as follows:
no data
land
water
urban
\[\begin{split}z_{disp}=\begin{cases} \begin{array}{cc} 0 & l=0\\ z_{obst}\left(1-\frac{1-\exp\left(-\sqrt{c_{1} \cdot I_{lai}}\right)} {\sqrt{c_{1} \cdot I_{lai}}}\right) & l=1\\ 0 & l=2\\ \frac{2}{3} \cdot z_{obst} & l=3 \end{array}\end{cases}\end{split}\]- Parameters
lai (float) – leaf area index, \(I_{lai}\) [-]
z_obst (float) – obstacle height, \(z_{obst}\) [m]
land_mask (int) – land use classification, \(l\) [-]
c1 (float) – exponential growth rate displacement height function, \(c_1\) [-]
- Returns
disp – displacement height, \({disp}\) [m]
- Return type
float
Examples
>>> import ETLook.roughness as roughness >>> roughness.displacement_height(0.4, 2.0) 0.51779495