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