# Programmers documentation

The SEBCS plugin for QGIS contains the SEBCS_lib.py library, which may interest programmers and people who want to use methods for working with remote sensing data.

## SEBCS_lib library

SEBCS_lib is a library of SEBCS software (Brom 2013-2023) designed for geographical and remote sensing purposes, mainly for the surface energy balance analysis.

SEBCS_lib contains several tools for:

- raster manipulation (import, export, retrieval of coordinate system and metadata information)

- calculations of vegetation indices and aboveground biomass characteristics

- calculations of meteorological features of the boundary layer (physical properties)

- calculation of atmospheric stability characteristics

- calculation of energy fluxes and their characteristics, evapotranspiration intensity and vegetation water stress

Most of these methods work with Numpy arrays.

## Access to SEBCS_lib library

The library (package) can be accessed in standard pythonic way using import in the Python console in QGIS. Classes can be imported separately.

    from SEBCS import SEBCS_lib

The SEBCS_lib can be used within QGIS plugins. If there is an issue with importing SEBCS_lib please reinstall the plug-in.

## SEBCS_lib documentation

class SEBCS_lib.GeoIO

  Class includes functions for reading of geotransformation features from raster and for writing ne rasters from numpy arrays.

  arrayToRast(arrays, names, prj, gtransf, EPSG, out_folder, driver_name='GTiff', out_file_name=None, multiband=False)

    Export numpy 2D arrays to multiband or singleband raster files. Following common raster formats are accepted for export:

    - ENVI .hdr labeled raster format

    - Erdas Imagine (.img) raster format

    - Idrisi raster format (.rst)

    - TIFF / BigTIFF / GeoTIFF (.tif) raster format

    - PCI Geomatics Database File (.pix) raster format

    Parameters:

      - arrays (numpy.ndarray, list) – Numpy array or list of arrays for export to raster.

      - names (str, list) – Name or list of names of the exported bands (in case of multiband raster) or particular rasters (in case of singleband rasters).

      - prj (str) – Projection information of the exported raster (dataset).

      - gtransf (tuple) – The affine transformation coefficients.

      - EPSG (int) – EPSG Geodetic Parameter Set code.

      - out_folder (str) – Path to folder where the raster(s) will be created.

      - driver_name (str) – GDAL driver. ‘GTiff’ is default.

      - out_file_name (str) – Name of exported multiband raster.

      - multiband (bool) – Option of multiband raster creation.

    Returns:

      Raster singleband or multiband file(s)

    Return type:

      raster

  lyrsExtent(in_lyrs_list)

    Check differences between size of the input layers. Function compares rasters only on basis of number of columns and rows.

    Parameters:

      in_lyrs_list (list) – List of layers (Numpy 2D arrays).

    Returns:

      True

  static rasterToArray(layer)

    Conversion of raster layer to numpy array.

    Parameters:

      layer (str) – Path to raster layer.

    Returns:

      raster file converted to numpy array

    Return type:

      numpy.ndarray

  readGeo(rast)

    Reading geographical information from raster using GDAL.

    Parameters:

      rast (str) – Path to raster file in GDAL accepted format.

    Returns:

      The affine transformation coefficients.

    Return type:

      tuple

    Returns:

      Projection information of the raster (dataset).

    Return type:

      str

    Returns:

      Pixel width (m) on X axis.

    Return type:

      float

    Returns:

      Pixel height (m) on Y axis.

    Return type:

      float

    Returns:

      EPSG Geodetic Parameter Set code.

    Return type:

      int

class SEBCS_lib.HeatFluxes

  Calculation of heat fluxes and heat balance features from spectral and thermal spatial data and meteorological measurements. The class contains a set of methods for calculation heat balance, e.g. ground heat flux, sensible heat flux, latent heat flux, evaporative fraction, omega factor (decoupling coefficient), surface resistance for water vapour transfer etc. Calculation for both aerodynamic and gradient method is included.

  aeroEF(LE, Rn, G)

    Evaporative fraction calculated using aerodynamic method (rel.).

    Parameters:

      - LE (numpy.ndarray) – Latent heat flux \((W.m^{-2})\)

      - Rn (numpy.ndarray) – Total net radiation \((W.m^{-2})\)

      - G (numpy.ndarray) – Ground heat flux \((W.m^{-2})\)

    Returns:

      Evaporative fraction (rel.)

    Return type:

      numpy.ndarray

  bowen(flux_H, LE)

    Bowen ratio according to Bowen (1926)

    Parameters:

      - flux_H (numpy.ndarray) – Sensible heat flux \((W.m^{-2})\)

      - LE (numpy.ndarray) – Latent heat flux \((W.m^{-2})\)

    Returns:

      Bowen ratio (unitless)

    Return type:

      numpy.ndarray

  cwsi(LEp, ra, rc, E_Z_sat, e_Z, rho, delta, gamma, cp=1012)

    Crop Water Stress Index calculated according to Jackson et al. ( 1981, 1988).

    Parameters:

      - LEp (numpy.ndarray) – Potential evaporation latent heat flux \((W.m^{-2})\)

      - ra (numpy.ndarray) – Aerodynamic resistance \((s.m^{-1})\)

      - rc – Surface resistance for water vapour transfer \((s.m^{-1})\)

      - E_Z_sat (numpy.ndarray) – Saturated water vapour pressure (kPa).

      - e_Z (numpy.ndarray) – Water vapour pressure (kPa).

      - rho (numpy.ndarray) – Specific air density \((g.m^{-3})\)

      - delta (numpy.ndarray) – Delta function \((kPa.K^{-1})\)

      - gamma (numpy.ndarray) – Psychrometric constant \((kPa.K^{-1})\).

      - cp (float) – Thermal heat capacity of dry air \((K.kg^{-1}.K^{-1})\)

    Returns:

      Crop Water Stress Index (CWSI)

    Return type:

      numpy.ndarray

  fluxHAer(ra, rho, dT, cp=1012.0)

    Sensible heat flux \((W.m^{-2})\) calculated using aerodynamic method.

    Parameters:

      - ra (numpy.ndarray) – Aerodynamic resistance for heat and momentum transfer \((s.m^{-1})\) calculated according to Thom (1975)

      - rho (numpy.ndarray) – Specific air density \((g.m^{-3})\)

      - dT (numpy.ndarray) – Temperature gradient calculated according to SEBAL (Bastiaanssen et al. 1998) (˚C)

      - cp (float) – Thermal heat capacity of dry air \((K.kg^{-1}.K^{-1})\)

    Returns:

      Sensible heat flux \((W.m^{-2})\)

    Return type:

      numpy.ndarray

    References

    Bastiaanssen, W.G.M., Menenti, M., Feddes, R.A., Holtslag, A.A.M., 1998. A remote sensing surface energy balance algorithm for land ( SEBAL). 1. Formulation. Journal of Hydrology 212–213, 198–212. https://doi.org/10.1016/S0022-1694(98)00253-4

  fluxLE(Rn, G, flux_H)

    Latent heat flux \((W.m^{-2})\)

    Parameters:

      - Rn (numpy.ndarray) – Total net radiation \((W.m^{-2})\)

      - G (numpy.ndarray) – Ground heat flux \((W.m^{-2})\)

      - flux_H (numpy.ndarray) – Sensible heat flux \((W.m^{-2})\)

    Returns:

      Latent heat flux \((W.m^{-2})\)

    Return type:

      numpy.ndarray

  fluxLE_EQ(Rn, G, delta, gamma)

    Equilibrium evaporation rate \((W.m^{-2})\).

    Parameters:

      - Rn (numpy.ndarray) – Total net radiation \((W.m^{-2})\)

      - G (numpy.ndarray) – Ground heat flux \((W.m^{-2})\)

      - delta (numpy.ndarray) – Delta function \((kPa.K^{-1})\)

      - gamma (numpy.ndarray) – Psychrometric constant \((kPa.K^{-1})\).

    Returns:

      Equilibrium evaporation latent heat flux \((W.m^{-2})\).

    Return type:

      numpy.ndarray

  fluxLE_PT(LE_eq, alpha=1.26)

    Evaporation from wet surface according to Priestley-Taylor (1972).

    Parameters:

      - LE_eq (numpy.ndarray) – Equilibrium evaporation latent heat flux \((W.m^{-2})\)

      - alpha (float) – Priestley-Taylor alpha.

    Returns:

      Latent heat flux for wet surface calculated by Priestley-Taylor \((W.m^{-2})\)

    Return type:

      numpy.ndarray

  fluxLE_p(Rn, G, delta, VPD, ra, gamma, rho, cp=1012.0)

    Latent heat flux for potential evapotranspiration according to Penman (1948) \((W.m^{-2})\).

    Parameters:

      - Rn (numpy.ndarray) – Total net radiation \((W.m^{-2})\)

      - G (numpy.ndarray) – Ground heat flux \((W.m^{-2})\)

      - delta (numpy.ndarray) – Delta function \((kPa.K^{-1})\)

      - VPD (numpy.ndarray) – Water vapour pressure in air (kPa)

      - ra (numpy.ndarray) – Aerodynamic resistance \((s.m^{-1})\)

      - gamma (numpy.ndarray) – Psychrometric constant \((kPa.K^{-1})\).

      - rho (numpy.ndarray) – Specific air density \((g.m^{-3})\)

      - cp (float) – Thermal heat capacity of dry air \((K.kg^{-1}.K^{-1})\)

    Returns:

      Potential evaporation latent heat flux \((W.m^{-2})\).

    Return type:

      numpy.ndarray

  fluxLE_ref(Rn, G, ta, ts, U, Rh, DMT, veg_type='short', cp=1012.0)

    Latent heat flux for reference evapotranspiration according to FAO56 method (Allen et al. 1998, ASCE-ET 2000)

    Parameters:

      - Rn (numpy.ndarray, float) – Rn: Total net radiation \((W.m^{-2})\)

      - G (numpy.ndarray, float) – Ground heat flux \((W.m^{-2})\)

      - ta (numpy.ndarray, float) – Air temperature measured at meteostation at approx. 2 m. (˚C)

      - ts – Surface temperature measured at meteostation at approx. 2 m. (˚C)

      - U (numpy.ndarray, float) – Wind speed measured at meteostation \((m.s^{-1})\)

      - Rh (numpy.ndarray, float) – Relative humidity (%)

      - DMT (numpy.ndarray, float) – Digital model of terrain or altitude (m a.s.l.)

      - veg_type (str) – Type of vegetation - “short” or “tall”

      - cp (float) – Thermal heat capacity of dry air \((K.kg^{-1}.K^{-1})\)

    Returns:

      Latent heat flux for reference evapotranspiration.

    Return type:

      numpy.ndarray, float

    References

    Allen, R. et al., 1998. Crop Evapotranspiration: Guidelines for Computing Crop Water Requirements. United Nations Food and Agriculture Organization, Irrigation and Drainage Paper 56, Rome, Italy. 300 pp. *ASCE-ET 2000: ASCE’s Standardized Reference Evapotranspiration Equation. National Irrigation Symposium in Phoenix, Arizona, US.

  gamma_x(rcp, ra, gamma)

    Psychrometric constant corrected on the rcp and ra according to Jackson et al. (1981, 1988).

    Parameters:

      - rcp (numpy.ndarray) – Surface resistance for water vapour transfer for potential evapotranspiration \((s.m^{-1})\).

      - ra (numpy.ndarray) – Aerodynamic resistance \((s.m^{-1})\)

      - gamma (numpy.ndarray) – Psychrometric constant \((kPa.K^{-1})\).

    Returns:

      Psychrometric constant corrected on the rcp and ra according to Jackson et al. (1981, 1988) \((kPa.K^{-1})\)..

    Return type:

      numpy.ndarray

  gradEF(ts, ta, mask=None)

    Evaporative fraction calculated from gradient method according to Suleiman and Crago (2004).

    Parameters:

      - ts (numpy.ndarray) – Surface temperature (˚C)

      - ta (numpy.ndarray, float) – Air temperature (˚C)

      - mask (numpy.ndarray) – Mask of the area of interest. Number of rows and columns should be the same. Format (1, 0) or (1, nan).

    Returns:

      Evaporative fraction (rel.)

    Return type:

      numpy.ndarray

  gradH(LE, Rn, G)

    Sensible heat flux \((W.m^{-2})\) calculated using gradient method.

    Parameters:

      - LE (numpy.ndarray) – Latent heat flux \((W.m^{-2})\)

      - Rn (numpy.ndarray) – Total net radiation \((W.m^{-2})\)

      - G (numpy.ndarray) – Ground heat flux \((W.m^{-2})\)

    Returns:

      Sensible heat flux \((W.m^{-2})\)

    Return type:

      numpy.ndarray

  gradLE(EF, Rn, G)

    Latent heat flux calculated using gradient method \((W.m^{-2})\).

    Parameters:

      - EF – Evaporative fraction (rel.)

      - Rn (numpy.ndarray) – Total net radiation \((W.m^{-2})\)

      - G (numpy.ndarray) – Ground heat flux \((W.m^{-2})\)

    Returns:

      Latent heat flux \((W.m^{-2})\)

    Return type:

      numpy.ndarray

  groundFlux(ndvi, Rn, ts, albedo)

    Ground heat flux according to Bastiaanssen et al. (1998)

    Parameters:

      - ndvi (numpy.ndarray) – NDVI spectral vegetation index (unitless)

      - Rn (numpy.ndarray) – Total net radiation \((W.m^{-2})\)

      - ts (numpy.ndarray) – Surface temperature (˚C)

      - albedo (numpy.ndarray) – Albedo (rel.)

    Returns:

      Ground heat flux \((W.m^{-2})\)

    Return type:

      numpy.ndarray

    References

    Bastiaanssen, W.G.M., Menenti, M., Feddes, R.A., Holtslag, A.A.M., 1998. A remote sensing surface energy balance algorithm for land ( SEBAL). 1. Formulation. Journal of Hydrology 212–213, 198–212. https://doi.org/10.1016/S0022-1694(98)00253-4

  heatFluxes(Rn, G, ts, ta, method='aero', Uz=None, h_eff=None, LAI=None, z0m=None, z0h=None, rho=None, disp=None, mask=None, air_pressure=101.3, Z=200.0, cp=1012, L=-10000.0, n_iter=10, a=1.0, b=0.667, c=5.0, d=0.35, kappa=0.41, gravit=9.81)

    Function provides a calculation for heat fluxes, aerodynamic resistance of surface and friction velocity for three different methods:

    > 1. “aero” - Aerodynamic method based on Monin-Obukhov theory and Penman-Monteith method

    > 2. “SEBAL” - Method based on SEBAL approach provided by Bastiaanssen et al. (1998)

    > 3. “grad” - Gradient method proposed by Suleiman and Crago (2004)

    Parameters:

      - disp (numpy.ndarray, float) –

      - Rn (numpy.ndarray) – Total net radiation \((W.m^{-2})\)

      - G (numpy.ndarray) – Ground heat flux \((W.m^{-2})\)

      - ts (numpy.ndarray) – Surface temperature (˚C)

      - ta (numpy.ndarray, float) – Air temperature (˚C)

      - method (str) –

        Method of heat fluxes calculation:

        - aero - Aerodynamic method based on calculation of ra using approach proposed by Thom (1975)

        - SEBAL - SEBAL method proposed by Bastiaanssen et al. (1998)

        - grad - Gradient method proposed by Suleiman and Crago (2004)

      - Uz (float, numpy.ndarray) – Wind speed measured on meteostation at level Z_st \((m.s^{-1})\).

      - h_eff (numpy.ndarray, float) – Effective height of vegetation cover

      - LAI – Leaf area index \((m^{2}.m^{-2})\)

      - z0m (numpy.ndarray) – Aerodynamic roughness of the surface for momentum transfer (m)

      - z0h (numpy.ndarray) – Aerodynamic roughness of the surface for heat transfer (m)

      - rho (numpy.ndarray, float) – Volumetric dry air density \((kg.m^{-3})\)

      - disp – Zero plane displacement (m)

      - mask (numpy.ndarray) – Mask of the area of interest. Number of rows and columns should be the same. Format (1, 0) or (1, nan).

      - air_pressure (float, numpy.ndarray) – Air pressure at level Z (kPa)

      - Z (float) – Blending height (m)

      - cp (float) – Thermal heat capacity of dry air \((K.kg^{-1}.K^{-1})\)

      - L (float) – Initial Monin-Obukhov lenght (m).

      - n_iter (int) – Number of iteration in stability coefficient calculation.

      - a (float) – Constant for stability parameters calculation (Beljaars and Holtslag, 1991)

      - b (float) – Constant for stability parameters calculation (Beljaars and Holtslag, 1991)

      - c (float) – Constant for stability parameters calculation (Beljaars and Holtslag, 1991)

      - d (float) – Constant for stability parameters calculation (Beljaars and Holtslag, 1991)

      - kappa (float) – von Karman constant. Default 0.41

      - gravit (float) – Gravitation forcing (m/s2). Default 9.81

    Returns:

      Sensible heat flux \((W.m^{-2})\)

    Return type:

      numpy.ndarray

    Returns:

      Latent heat flux \((W.m^{-2})\)

    Return type:

      numpy.ndarray

    Returns:

      Evaporative fraction (rel.)

    Return type:

      numpy.ndarray

    Returns:

      Latent heat flux for equilibrium evaporation \((W.m^{-2})\)

    Return type:

      numpy.ndarray

    Returns:

      Latent heat flux for Priestley-Taylor evaporation \((W.m^{-2})\)

    Return type:

      numpy.ndarray

    Returns:

      Aerodynamic resistance for heat and momentum transfer \((s.m^{-1})\)

    Return type:

      numpy.ndarray

    Returns:

      Friction velocity \((m.s^{-1})\)

    References

    Bastiaanssen, W.G.M., Menenti, M., Feddes, R.A., Holtslag, A.A.M., 1998. A remote sensing surface energy balance algorithm for land ( SEBAL). 1. Formulation. Journal of Hydrology 212–213, 198–212. https://doi.org/10.1016/S0022-1694(98)00253-4

    Beljaars, A.C.M., Holtslag, A.A.M., 1991. Flux Parametrization over Land Surfaces for Atmospheric Models. Journal of Applied Meteorology 30, 327–341. https://doi.org/10.1175/1520-0450( 1991)030<0327:FPOLSF>2.0.CO;2

    Suleiman, A., Crago, R., 2004. Hourly and Daytime Evapotranspiration from Grassland Using Radiometric Surface Temperatures. Agronomy Journal 96, 384–390. https://doi.org/10.2134/agronj2004.3840

    Thom, A.S., 1975. Momentum, mass and heat exchange of plant communities, in: Monteith, J.L. (Ed.), Vegetation and the Atmosphere, Vol. 1 Principles. Academic Press, London, pp. 57–110.

  intensityE(LE, latent)

    Evaporation intensity in \(mmol.m^{-2}.s^{-1}\).

    Parameters:

      - LE (numpy.ndarray) – Latent heat flux \((W.m^{-2})\)

      - latent (numpy.ndarray) – Latent heat of water evaporation \((J.g^{-1})\).

    Returns:

      Intensity of water evaporation \((mmol.m^{-2}.s^{-1})\).

    Return type:

      numpy.ndarray

  omega(LE, LE_p)

    Omega factor (Decoupling coefficient) according to Jarvis and McNaughton (1985)

    Parameters:

      - LE (numpy.ndarray) – Latent heat flux \((W.m^{-2})\)

      - LE_p (numpy.ndarray) – Potential evaporation latent heat flux \((W.m^{-2})\)

    Returns:

      Omega factor (unitless)

    Return type:

      numpy.ndarray

    References:

    Jarvis, P., McNaughton, K., 1986. Stomatal Control of Transpiration: Scaling Up from Leaf to Region, in: Advances in Ecological Research. Elsevier, pp. 1–49.

  rcp(E_Z_sat, e_Z, rho, LE_p, ra, gamma, cp=1012.0)

    Surface resistance for water vapour transfer for potential evapotranspiration \((s.m^{-1})\).

    Parameters:

      - E_Z_sat (numpy.ndarray) – Saturated water vapour pressure (kPa).

      - e_Z (numpy.ndarray) – Water vapour pressure (kPa).

      - rho (numpy.ndarray) – Specific air density \((g.m^{-3})\)

      - LE_p (numpy.ndarray) – Potential evaporation latent heat flux \((W.m^{-2})\)

      - ra (numpy.ndarray) – Aerodynamic resistance \((s.m^{-1})\)

      - gamma (numpy.ndarray) – Psychrometric constant \((kPa.K^{-1})\).

      - cp (float) – Thermal heat capacity of dry air \((K.kg^{-1}.K^{-1})\)

    Returns:

      Surface resistance for water vapour transfer for potential evapotranspiration \((s.m^{-1})\).

    Return type:

      numpy.ndarray

  rs(delta, gamma, omega, ra)

    Surface resistance for water vapour transfer \((s.m^{-1})\)

    Parameters:

      - delta (numpy.ndarray) – Delta function \((kPa.K^{-1})\)

      - gamma (numpy.ndarray) – Psychrometric constant \((kPa.K^{-1})\).

      - omega (numpy.ndarray) – Decoupling coefficient (rel.)

      - ra (numpy.ndarray) – Aerodynamic resistance \((s.m^{-1})\)

    Returns:

      Surface resistance for water vapour transfer \((s.m^{-1})\)

    Return type:

      numpy.ndarray

class SEBCS_lib.MeteoFeatures

  Calculation of basic meteorological features and miscellaneous variables.

  airDensity(ta)

    Volumetric dry air density \((kg.m^{-3})\).

    Parameters:

      ta (numpy.ndarray, float) – Air temperature (˚C)

    Returns:

      Volumetric dry air density \((kg.m^{-3})\)

    Return type:

      numpy.ndarray, float

  airPress(ta, DMT, Z=200.0, P0=101.325, adiabatic=0.0065)

    Atmospheric air pressure at level Z (kPa)

    Parameters:

      - ta (numpy.ndarray, float) – Air temperature (˚C)

      - DMT (numpy.ndarray, float) – Digital elevation model or altitude (m)

      - Z (float) – Height of measurement above surface (m)

      - P0 (float) – Sea level air pressure (kPa)

      - adiabatic (float) – Adiabatic lapse rate (˚C)

    Returns:

      Air pressure at level Z (kPa)

    Return type:

      numpy.ndarray, float

  airTemp(ta_st, st_altitude, DMT, adiabatic=0.0065)

    Conversion of air temperature calculated from temperature data and digital elevation model (˚) to spatial near to ground temperature or temperature at different altitude.

    Parameters:

      - ta_st (float) – Air temperature measured on meteostation (˚C)

      - st_altitude (float) – Meteostation altitude (m a.s.l.)

      - DMT (numpy.ndarray, float) – Digital elevation model (m) or altitude for calculation of ta value.

      - adiabatic (float) – Adiabatic lapse rate (˚C). Default = 0.0065 ˚C

    Returns:

      Spatial air temperature (˚C)

    Return type:

      numpy.ndarray, float

  airTemperatureBlending(ta_surface, Z=200.0, Z_st=2.0, adiabatic=0.0065)

    Conversion of spatial air temperature measured for near surface level to level Z above the surface. This approach is usually used for calculation of air temperature at blending height (mixing layer).

    Parameters:

      - ta_surface – Spatial air temperature for near ground level (Z_st; ˚C)

      - Z (float) – Height of a level which is used for calculation. Default value corresponds with “blending” height or height of mixing layer. Default is 200 m above surface.

      - Z_st (float) – Height of air temperature measurement (m)

      - adiabatic (float) – Adiabatic lapse rate (˚C). Default = 0.0065 \(˚C.m^{-1}\)

    Returns:

      Blending height air temperature (˚C)

    Return type:

      numpy.ndarray, float

  delta(ts, ta)

    Slope of water vapour pressure gradient to temperature gradient - delta function \((kPa.K^{-1})\). Calculation according to Jackson et al. (1998).

    Parameters:

      - ts (numpy.ndarray) – Surface temperature (˚C)

      - ta (numpy.ndarray, float) – Air temperature (˚C)

    Returns:

      Slope of water vapour pressure gradient to temperature gradient - delta function \((kPa.K^{-1})\)

    Return type:

      numpy.ndarray

  emissivity(red, ndvi)

    Surface emissivity calculated according to Sobrino et al. (2004) NDVI Treshold Method.

    Parameters:

      - red (numpy.ndarray) – Spectral reflectance in RED region (rel.)

      - ndvi (numpy.ndarray) – Spectral vegetation index NDVI (unitless)

    Returns:

      Surface emissivity (rel.)

    Return type:

      numpy.ndarray

  gamma(airP, latent, cp=1012.0)

    Psychrometric constant \((kPa.K^{-1})\).

    Parameters:

      - airP (numpy.ndarray, float) – Atmospheric pressure (kPa)

      - latent – Latent heat for water vapour exchange \((J.g^{-1})\)

      - cp (float) – Thermal heat capacity of dry air \((K.kg^{-1}.K^{-1})\)

    Returns:

      Psychrometric constant \((kPa.K^{-1})\)

    Return type:

      numpy.ndarray, float

  latent(ta)

    Latent heat for the water vapour exchange \((J.g^{-1})\).

    Parameters:

      ta (numpy.ndarray, float) – Air temperature (˚C)

    Returns:

      Latent heat for the water vapour exchange \((J.g^{-1})\)

    Return type:

      numpy.ndarray, float

  satVapourPress(ta)

    Saturated water vapour pressure (kPa) calculated using Magnus-Tetens equation.

    Parameters:

      ta (numpy.ndarray, float) – Air temperature (˚C)

    Returns:

      Saturated water vapour pressure (kPa)

    Return type:

      numpy.ndarray, float

  surfaceTemperature(tir_band, emissivity=1.0, emis_rule='No')

    Correction of surface temperature on emissivity.

    Parameters:

      - tir_band (numpy.ndarray) – Layer of surface temperature (˚C).

      - emissivity (numpy.ndarray) – Layer of emissivity (rel.).

      - emis_rule (str) – Setting if the correction will be done or not. No is default.

    Returns:

      Layer of corrected surface temperature (˚C).

    Return type:

      numpy.ndarray

  vapourPress(E_sat, Rh)

    Water vapour pressure in air (kPa).

    Parameters:

      - E_sat (numpy.ndarray, float) – Saturated water vapour pressure (kPa)

      - Rh (numpy.ndarray, float) – Relative humidity of air (%)

    Returns:

      Water vapour pressure in air (kPa)

    Return type:

      numpy.ndarray, float

  vpd(E_sat, e_abs)

    Water vapour pressure deficit (kPa).

    Parameters:

      - E_sat (numpy.array, float) – Saturated water vapour pressure (kPa)

      - e_abs (numpy.array, float) – Water vapour pressure in air (kPa)

    Returns:

      Water vapour pressure deficit (kPa)

    Return type:

      numpy.ndarray, float

class SEBCS_lib.SolarRadBalance

  Class contains functions for calculation of solar radiation balance and topographic features: incident radiation in dependence on surface geometry, slope of terrain, aspect of terrain, albedo, longwave radiation fluxes and atmospheric emissivity, shortwave radiation reflectance and total net radiation

  albedo(band_red, band_nir, sat_type='L8', band_blue=None, band_green=None, band_sw1=None, band_sw2=None)

    Calculation of Albedo according to data type (satellite data type) or data availability. Albedo can be calculated using Landsat data or using any data including RED and NIR band. For the Landsat 8 data Olmedo method is used, for tle Landsat 4, 5 and 7 Tasumi approach is used. If only RED and NIR bands are available, Brom method is used.

    Parameters:

      - band_red (numpy.ndarray) – Red band (rel.)

      - band_nir (numpy.ndarray) – NIR band (rel.)

      - sat_type (str) –

        Type of Landsat satellite:

        - L5 - Landsat 4 TM, 5 TM or Landsat 7 ETM+

        - L8 - Landsat 8 OLI/TIRS

      - band_blue (numpy.ndarray) – Blue band (rel.)

      - band_green (numpy.ndarray) – Green band (rel.)

      - band_sw1 (numpy.ndarray) – SWIR1 band on ca 1.61 \(\mu m\) (rel.)

      - band_sw2 (numpy.ndarray) – SWIR2 band on ca 2.2 \(\mu m\) (rel.)

    Returns:

      Albedo (rel.)

    Return type:

      numpy.ndarray

    References:

    G.F. Olmedo, S. Ortega-Farias, D. Fonseca-Luengo, D. de la Fuente-Saiz, F.F. Peñailillo 2018: Water: actual evapotranspiration with energy balance models. R Package Version 0.6 (2017)

    Tasumi, M., Allen, R.G., Trezza, R., 2008. At-Surface Reflectance and Albedo from Satellite for Operational Calculation of Land Surface Energy Balance. Journal of Hydrologic Engineering 13, 51–63. https://doi.org/10.1061/(ASCE)1084-0699(2008)13:2(51).

    Duffková, R., Brom, J., Žížala, D., Zemek, F., Procházka, J., Nováková, E., Zajíček, A., Kvítek, T., 2012. Určení infiltračních oblastí pomocí vodního stresu vegetace na základě dálkového průzkumu Země a pozemních měření. Certifikovaná metodika. VÚMOP, v.v.i., Praha.

  albedoBrom(ndvi, msavi, c_a=0.08611, c_b=0.894716, c_c=5.558657, c_d=-0.11829, c_e=-1.9818, c_f=-4.50339, c_g=-11.4625, c_h=7.461454, c_i=5.299396, c_j=4.76657, c_k=-2.3127, c_l=-3.42739)

    Albedo (rel.) calculated according to Duffková and Brom et al. (2012)

    Parameters:

      - ndvi (numpy.array) – Normalized Difference Vegetation Index (-)

      - msavi – Modified Soil Adjusted Vegetation Index (-) according to Gao et al. 1996.

      - c_a (float) – constant. Default c_a = 0.08611

      - c_b (float) – constant. Default c_b = 0.894716

      - c_c (float) – constant. Default c_c = 5.558657

      - c_d (float) – constant. Default c_d = -0.11829

      - c_e (float) – constant. Default c_e = -1.9818

      - c_f (float) – constant. Default c_f = -4.50339

      - c_g (float) – constant. Default c_g = -11.4625

      - c_h (float) – constant. Default c_h = 7.461454

      - c_i (float) – constant. Default c_i = 5.299396

      - c_j (float) – constant. Default c_j = 4.76657

      - c_k (float) – constant. Default c_k = -2.3127

      - c_l (float) – constant. Default c_l = -3.42739

    Returns:

      Albedo (rel.)

    Return type:

      numpy.ndarray

    References:

    Duffková, R., Brom, J., Žížala, D., Zemek, F., Procházka, J., Nováková, E., Zajíček, A., Kvítek, T., 2012. Určení infiltračních oblastí pomocí vodního stresu vegetace na základě dálkového průzkumu Země a pozemních měření. Certifikovaná metodika. VÚMOP, v.v.i., Praha.

    Gao, Z.Q., Liu, C.S., Gao, W., Chang, N.B. (2011): A coupled remote sensing and the Surface Energy Balance with Topography Algorithm (SEBTA) to estimate actual evapotranspiration over heterogeneous terrain. Hydrology and Earth System Sciences, 15, 119-139.

  albedoLandsat(blue, green, red, nir, swir1, swir2, sat_type='L8')

    Albedo (rel.) calculated for Landsat satellite sensors. Albedo for Landsat 4 TM, 5 TM and Landsat 7 ETM+ is calculated according to Tasumi et al. (2008). Albedo for Landsat 8 OLI/TIRS is calculated according to Olmeo et al. (2017). Albedo is computed with spectral reflectance bands on relative scale (0 to 1).

    Note: This algorithm might be used with another data from different devices, however a comparable spectral data (bands) should be used.

    Parameters:

      - blue (numpy.ndarray) – Blue band (rel.)

      - green (numpy.ndarray) – Green band (rel.)

      - red (numpy.ndarray) – Red band (rel.)

      - nir (numpy.ndarray) – NIR band (rel.)

      - swir1 (numpy.ndarray) – SWIR1 band on ca 1.61 \(\mu m\) (rel.)

      - swir2 (numpy.ndarray) – SWIR2 band on ca 2.2 \(\mu m\) (rel.)

      - sat_type (str) –

        Type of Landsat satellite:

        - L5 - Landsat 4 TM, 5 TM or Landsat 7 ETM+

        - L8 - Landsat 8 OLI/TIRS

    Returns:

      Albedo (rel.)

    Return type:

      numpy.ndarray

    References:

    G.F. Olmedo, S. Ortega-Farias, D. Fonseca-Luengo, D. de la Fuente-Saiz, F.F. Peñailillo 2018: Water: actual evapotranspiration with energy balance models. R Package Version 0.6 (2017)

    Tasumi, M., Allen, R.G., Trezza, R., 2008. At-Surface Reflectance and Albedo from Satellite for Operational Calculation of Land Surface Energy Balance. Journal of Hydrologic Engineering 13, 51–63. https://doi.org/10.1061/(ASCE)1084-0699(2008)13:2(51)

  atmEmissivity(e_Z, ta)

    Atmospheric emissivity calculated according to Idso (see Brutsaert 1982).

    Parameters:

      - e_Z (numpy.ndarray, float) – Atmospheric water vapour pressure (kPa)

      - ta (numpy.ndarray, float) – Air temperature (˚C)

    Returns:

      Air emissivity (rel.)

    Return type:

      numpy.ndarray, float

    References:

    Brutsaert W. (1982) Evapotranspiration into the atmosphere. Theory, history and applications. D. Reidel Publishing Company, Dotrecht.

  downRL(ta, emis_a)

    Funtion calculates downward flux of longwave radiation \((W.m^{ -2})\)

    Parameters:

      - ta (numpy.ndarray, float) – Air temperature (˚C)

      - emis_a (numpy.ndarray, float) – Air emissivity (rel.)

    Return RL_in:

      Downward flux of longwave radiation \((W.m^{-2})\)

    Rtype RL_in:

      numpy.ndarray, float

  netRad(Rs_in_corr, Rs_out, RL_in, RL_out)

    Total net radiation.

    Parameters:

      - Rs_in_corr (numpy.ndarray) – Incomming global (shortwave) radiation \((W.m^{-2})\)

      - Rs_out (numpy.ndarray) – Outgoing (reflected) shortwave radiation \((W.m^{-2})\)

      - RL_in (numpy.ndarray) – Incomming (downward) longwave radiation \((W.m^{-2})\)

      - RL_out (numpy.ndarray) – Outgoing (upward) longwave radiation \((W.m^{-2})\)

    Returns:

      Total net radiation flux \((W.m^{-2})\)

    Return type:

      numpy.ndarray

  outRL(ts, emiss)

    Upward flux of longwave radiation \((W.m^{-2})\)

    Parameters:

      - ts (numpy.ndarray) – Surface temperature (˚C)

      - emiss (numpy.ndarray) – Surface emissivity (rel.)

    Returns:

      Upward flux of longwave radiation \((W.m^{-2})\)

    Return type:

      numpy.ndarray

  reflectRs(Rs_in_corr, albedo)

    Amount of shortwave radiation reflected from surface \((W.m^{-2})\)

    Parameters:

      - Rs_in_corr (numpy.ndarray) – Incomming global radiation corrected on DEM \((W.m^{-2})\)

      - albedo (numpy.ndarray) – Surface albedo (rel.)

    Returns:

      Amount of reflected global radiation \((W.m^{-2})\)

    Return type:

      numpy.ndarray

  slopeAspect(DMT, x_size, y_size)

    Slope and aspect of terrain (DMT) in degrees.

    Parameters:

      - DMT (numpy.ndarray) – Digital model of terrain (m a.s.l.)

      - x_size (float) – Size of pixel in x axis (m)

      - y_size (float) – Size of pixel in y axis (m)

    Returns:

      Slope of the terrain (˚)

    Return type:

      numpy.ndarray

    Returns:

      Aspect of the terrain (˚)

    Return type:

      numpy.ndarray

  solarInTopo(Rs_in, slope, aspect, latitude, longitude, date_acq, time_acq)

    Calculation of incident shortwave solar radiation flux according to the solar geometry, position (latitude and longitude) and shape of surface (slope and orientation). Flux of the solar energy \((W.m^{-2})\) is calculated on basis of the measured global radiation using pyranometer (incomming global radiation). Diffuse part of radiation is not separated in calculation.

    Parameters:

      - Rs_in (float) – Global radiation measured by pyranometer \((W.m^{-2})\).

      - slope (numpy.ndarray) – Slope of the terrain (˚).

      - aspect (numpy.ndarray) – Orientation of the terrain (˚).

      - latitude (float) – Mean latitude of the data in decimal degrees

      - longitude (float) – Mean longitude of the data in decimal degrees

      - date_acq (datetime.date) – Date of data acquisition in iso format (‘YYYY-mm-dd’)

      - time_acq (datetime.time) – Time in GMT in datetime.time format (‘HH:MM:SS.SS’)

    Returns:

      Incident shortwave radiation \((W.m^{-2})\) corrected on the terrain and solar geometry.

    Return type:

      numpy.ndarray

class SEBCS_lib.VegIndices

  Calculation of vegetation indices from spectral data.

  LAI(red, nir, method=3)

    Leaf Area Index (LAI) calculated according to several methods.

    Parameters:

      - red (numpy.ndarray) – Spectral reflectance in RED region (rel.)

      - nir (numpy.ndarray) – Spectral reflectance in NIR region (rel.)

      - method (int) –

        Method of LAI calculation:

        - 1: Pôças

        - 2: Bastiaanssen

        - 3: Jafaar (default)

        - 4: Anderson

        - 5: vineyard

        - 6: Carrasco

        - 7: Turner

    Returns:

      Leaf Area Index (LAI) \((m^2.m^{-2})\)

    Return type:

      numpy.ndarray

    References

    Anderson, M., Neale, C., Li, F., Norman, J., Kustas, W., Jayanthi, H., Chavez, J., 2004. Upscaling ground observations of vegetation water content, canopy height, and leaf area index during SMEX02 using aircraft and Landsat imagery. Remote Sensing of Environment 92, 447–464. https://doi.org/10.1016/j.rse.2004.03.019

    Bastiaanssen, W.G.M., Menenti, M., Feddes, R.A., Holtslag, A.A.M., 1998. A remote sensing surface energy balance algorithm for land ( SEBAL). 1. Formulation. Journal of Hydrology 212–213, 198–212. https://doi.org/10.1016/S0022-1694(98)00253-4

    Carrasco-Benavides, M., Ortega-Farías, S., Lagos, L., Kleissl, J., Morales-Salinas, L., Kilic, A., 2014. Parameterization of the Satellite-Based Model (METRIC) for the Estimation of Instantaneous Surface Energy Balance Components over a Drip-Irrigated Vineyard. Remote Sensing 6, 11342–11371. https://doi.org/10.3390/rs61111342

    Jaafar, H.H., Ahmad, F.A., 2019. Time series trends of Landsat-based ET using automated calibration in METRIC and SEBAL: The Bekaa Valley, Lebanon. Remote Sensing of Environment S0034425718305947. https://doi.org/10.1016/j.rse.2018.12.033

    Pôças, I., Paço, T.A., Cunha, M., Andrade, J.A., Silvestre, J., Sousa, A., Santos, F.L., Pereira, L.S., Allen, R.G., 2014. Satellite-based evapotranspiration of a super-intensive olive orchard: Application of METRIC algorithms. Biosystems Engineering 128, 69–81. https://doi.org/10.1016/j.biosystemseng.2014.06.019

    Turner, D.P., Cohen, W.B., Kennedy, R.E., Fassnacht, K.S., Briggs, J.M., 1999. Relationships between Leaf Area Index and Landsat TM Spectral Vegetation Indices across Three Temperate Zone Sites. Remote Sensing of Environment 70, 52–68. https://doi.org/10.1016/S0034-4257(99)00057-7

  biomass_sat(ndvi)

    Calculation of amount of fresh biomass from satellite data. NDVI is used for estimation \((t.ha^{-1})\)

    Parameters:

      ndvi – Normalized Difference Vegetation Index (NDVI).

    Returns:

      Amount of fresh biomass \((t.ha^{-1})\)

  fractVegCover(ndvi)

    Fractional vegetation cover layer - Fc.

    Parameters:

      ndvi (numpy.ndarray) – Normalized Difference Vegetation Index - NDVI (unitless)

    Returns:

      Fractional vegetation cover layer - Fc (unitless)

    Return type:

      numpy.ndarray

  vegHeight(h_min, h_max, msavi)

    Height of effective vegetation cover (m) derived from MSAVI index according to Gao et al. (2011).

    Parameters:

      - h_min (numpy.ndarray) – Maximal height of vegetation cover (m)

      - h_max (numpy.ndarray) – Minimal height of vegetation cover (m)

      - msavi (numpy.ndarray) – Modified Soil Adjusted Vegetation Index (MSAVI)

    Returns:

      Effective vegetation cover height (m)

    Return type:

      numpy.ndarray

    References

    Gao, Z.Q., Liu, C.S., Gao, W., Chang, N.-B., 2011. A coupled remote sensing and the Surface Energy Balance with Topography Algorithm (SEBTA) to estimate actual evapotranspiration over heterogeneous terrain. Hydrol. Earth Syst. Sci. 15, 119–139. https://doi.org/10.5194/hess-15-119-2011

  viMSAVI(red, nir)

    Modified Soil Adjusted Vegetation Index - MSAVI (Qi et al. 1994).

    Parameters:

      - red (numpy.ndarray) – Spectral reflectance in RED region (rel.)

      - nir (numpy.ndarray) – Spectral reflectance in NIR region (rel.)

    Returns:

      Modified Soil Adjusted Vegetation Index - SAVI (unitless)

    Return type:

      numpy.ndarray

    References

    Qi, J., Chehbouni, A., Huete, A.R., Kerr, Y.H., Sorooshian, S., 1994. A modified soil adjusted vegetation index. Remote Sensing of Environment 48, 119–126. https://doi.org/10.1016/0034-4257(94)90134-1

  viNDMI(nir, swir1)

    Normalized Vegetation Moisture Index - NDMI.

    Parameters:

      - nir (numpy.ndarray) – Spectral reflectance in NIR region (rel.)

      - swir1 – Spectral reflectance in SWIR region (approx. 1.61 \(\mu{m}\) (rel.)

    Returns:

      Normalized Vegetation Moisture Index - NDMI (unitless)

    Return type:

      numpy.ndarray

  viNDVI(red, nir)

    Normalized Difference Vegetation Index - NDVI.

    Parameters:

      - red (numpy.ndarray) – Spectral reflectance in RED region (rel.)

      - nir (numpy.ndarray) – Spectral reflectance in NIR region (rel.)

    Returns:

      Normalized Difference Vegetation Index - NDVI (unitless)

    Return type:

      numpy.ndarray

  viOSAVI(red, nir, L=0.16)

    Optimized Soil Adjusted Vegetation Index - OSAVI (Rondeaux et al. ( 1996)).

    Parameters:

      - red (numpy.ndarray) – Spectral reflectance in RED region (rel.)

      - nir (numpy.ndarray) – Spectral reflectance in NIR region (rel.)

      - L (float) – Parameter L. Default L=0.5

    Returns:

      Soil Adjusted Vegetation Index - OSAVI (unitless)

    Return type:

      numpy.ndarray

    References

    Rondeaux G., Steven M., Baret F. (1996): Optimisation of soil-adjusted vegetation indices Remote Sensing of Environment, 55 (1996), pp. 95-107

  viRDVI(red, nir)

    Renormalized Difference Vegetation Index - RDVI (Roujean and Breon, 1995).

    Parameters:

      - red (numpy.ndarray) – Spectral reflectance in RED region (rel.)

      - nir (numpy.ndarray) – Spectral reflectance in NIR region (rel.)

    Returns:

      RDVI

    Return type:

      numpy.ndarray

    References

    Roujean, J.-L., Breon, F.-M., 1995. Estimating PAR absorbed by vegetation from bidirectional reflectance measurements. Remote Sensing of Environment 51, 375–384. https://doi.org/10.1016/0034-4257(94)00114-3

  viSAVI(red, nir, L=0.5)

    Soil Adjusted Vegetation Index - SAVI (Huete, 1988).

    Parameters:

      - red (numpy.ndarray) – Spectral reflectance in RED region (rel.)

      - nir (numpy.ndarray) – Spectral reflectance in NIR region (rel.)

      - L (float) – Parameter L. Default L=0.5

    Returns:

      Soil Adjusted Vegetation Index - SAVI (unitless)

    Return type:

      numpy.ndarray

    References

    Huete A.R. (1988): A soil-adjusted vegetation index (SAVI) Remote Sensing of Environment 27, 47-57.

class SEBCS_lib.WindStability

  Atmospheric stability calculation. Class includes methods for calculation of boundary layer stability, friction velocity and aerodynamic resistance of the surface. Methods for calculation of stability parameters for both aerodynamic and gradient methods are included. Methods for SEBAL procedure are also used. Some another features are included.

  aeroSEBAL(Uz, ta, ts, z0m, Rn, G, rho, niter=10, Z=200, z1=0.1, z2=2, cp=1012.0, kappa=0.41, mask=None)

    Calculation of sensible heat flux and surface aerodynamic resistance according to Bastiaanssen et al. (1998).

    Parameters:

      - Uz (numpy.ndarray) – Wind speed at level Z \((m.s^{-1})\)

      - ta (numpy.ndarray) – Air temperature at blending height (˚C)

      - ts (numpy.ndarray) – Surface temperature (˚C)

      - z0m (numpy.ndarray) – Surface roughness for momentum transfer (m)

      - Rn (numpy.ndarray) – Total net radiation \((W.m^{-2})\)

      - G (numpy.ndarray) – Ground heat flux \((W.m^{-2})\)

      - rho (numpy.ndarray) – Specific air density \((g.m^{-3})\)

      - niter (int) – Number of iteration

      - Z (float (Numpy array)) – Blending height (mixing layer height) (m). Default 200 m.

      - z1 (float) – First height above zero plane displacement (m)

      - z2 (float) – Second height above zero plane displacement (m)

      - cp (float) – Thermal heat capacity of dry air \((K.kg^{-1}.K^{-1})\)

      - kappa (float) – von Karman constant. Default 0.41

      - mask (numpy.ndarray) – Mask of the area of interest. Number of rows and columns should be the same. Format (1, 0) or (1, nan).

    Returns:

      Aerodynamic resistance for heat transfer \((s.m^{-1})\) calculated according to SEBAL (Bastiaanssen et al. 1998)

    Return type:

      numpy.ndarray

    Returns:

      Sensible heat flux \((W.m^{-2})\) calculated according to SEBAL (Bastiaanssen et al. 1998)

    Return type:

      numpy.ndarray

    References

    Bastiaanssen, W.G.M., Menenti, M., Feddes, R.A., Holtslag, A.A.M., 1998. A remote sensing surface energy balance algorithm for land ( SEBAL). 1. Formulation. Journal of Hydrology 212–213, 198–212. https://doi.org/10.1016/S0022-1694(98)00253-4

  static coefX(Z, L)

    X coefficient for atmospheric stability calculation.

    Parameters:

      - Z (float) – Blending height (mixing layer height) (m). Default 200 m.

      - L (numpy.ndarray) – Monin-Obukhov length (m)

    Returns:

      X coefficient for atmospheric stability calculation

    Return type:

      numpy.ndarray

  static coef_a(t_wet, cb)

    Coefficient a calculated from temperature gradient.

    Parameters:

      - t_wet (numpy.ndarray) – Temperature for wet surface (˚C)

      - cb (numpy.ndarray) – Coefficient b calculated from temperature gradient

    Returns:

      Coefficient a calculated from temperature gradient

    Return type:

      numpy.ndarray

  static coef_b(t_dry, t_wet, t_max, ta)

    Coefficient b calculated from temperature gradient.

    Parameters:

      - t_dry (float, numpy.ndarray) – Temperature for dry surface derived from the surface temperature layer (˚C)

      - t_wet (float, numpy.ndarray) – Temperature for wet surface derived from the surface temperature layer (˚C)

      - t_max (numpy.ndarray) – Maximal surface temperature calculated from energy balance (˚C)

      - ta (numpy.ndarray) – Air temperature at level Z (˚C)

    Returns:

      Coefficient a calculated from temperature gradient

    Return type:

      numpy.ndarray

  dT(ts, ta, Rn, G, ra, rho, cp=1012.0, mask=None)

    Temperature gradient calculated according to SEBAL (Bastiaanssen et al. 1998).

    Parameters:

      - ts (numpy.ndarray) – Surface temperature (˚C)

      - ta (numpy.ndarray) – Air temperature at level Z (˚C)

      - Rn (numpy.ndarray) – Total net radiation \((W.m^{-2})\)

      - G (numpy.ndarray) – Ground heat flux \((W.m^{-2})\)

      - ra (numpy.ndarray) – Aerodynamic resistance \((s.m^{-1})\)

      - rho (numpy.ndarray) – Specific air density \((g.m^{-3})\)

      - cp (float) – Thermal heat capacity of dry air \((K.kg^{-1}.K^{-1})\)

      - mask (numpy.ndarray) – Mask of the area of interest. Number of rows and columns should be the same. Format (1, 0) or (1, nan).

    Returns:

      Temperature difference dT calculated according to Bastiaanssen (1998)

    Return type:

      numpy.ndarray

    References

    Bastiaanssen, W.G.M., Menenti, M., Feddes, R.A., Holtslag, A.A.M., 1998. A remote sensing surface energy balance algorithm for land ( SEBAL). 1. Formulation. Journal of Hydrology 212–213, 198–212. https://doi.org/10.1016/S0022-1694(98)00253-4

  static dryT(ts, mask=None)

    Extraction of temperature for dry surface with no evaporation.

    Parameters:

      - ts (numpy.ndarray) – Surface temperature (˚C)

      - mask – Mask of the area of interest. Number of rows and columns

    should be the same. Format (1, 0) or (1, nan). :type mask: numpy.ndarray

    Returns:

      Temperature of dry surface derived from surface temperature layer.

    Return type:

      float

  static frictVelo(Uz, z0m, disp=0.0, Z=200.0, psi_m=0, kappa=0.41)

    Friction velocity of wind speed \((m.s^{-1})\) corrected on atmospheric stability.

    Parameters:

      - disp (numpy.ndarray, float) –

      - Uz (numpy.ndarray) – Wind speed at Z level \((m.s^{-1})\)

      - z0m (numpy.ndarray, float) – Surface roughness for momentum transfer (m)

      - disp – Zero plane displacement (m)

      - Z (float) – Blending height (mixing layer height) (m). Default 200 m.

      - psi_m (numpy.ndarray) – Stability parameter for momentum transfer. Defaul 0.

      - kappa (float) – von Karman constant. Default 0.41

    Returns:

      Friction velocity \((m.s^{-1})\)

    Return type:

      numpy.ndarray

  static lengthMO(frict, ts, flux_H=None, rho=None, t_virt=None, cp=1012, kappa=0.41, gravit=9.81)

    Monin-Obukhov length (m)

    Parameters:

      - frict (numpy.ndarray) – Friction velocity \((m.s^{-1})\)

      - ts (numpy.ndarray) – Surface temperature (C degree)

      - flux_H (numpy.ndarray) – Sensible heat flux (W.m2)

      - rho (numpy.ndarray) – Specific air density \((g.m^{-3})\)

      - t_virt (numpy.ndarray) – Virtual temperature

      - cp (float) – Thermal heat capacity of dry air \((K.kg^{-1}.K^{-1})\)

      - kappa (float) – von Karman constant. Default 0.41

      - gravit (float) – Gravitation forcing (m/s2). Default 9.81

    Returns:

      Monin-Obukhov length (m)

    Return type:

      numpy.ndarray

  static maxT(Rn, G, ra, ta, rho, cp=1012.0)

    Maximal surface temperature calculated on physical basis (K).

    Parameters:

      - Rn (numpy.ndarray) – Total net radiation \((W.m^{-2})\)

      - G (numpy.ndarray) – Ground heat flux \((W.m^{-2})\)

      - ra (numpy.ndarray) – Aerodynamic resistance for heat transfer \((s.m^{-1})\)

      - ta (numpy.ndarray) – Air temperature at level Z (˚C)

      - rho (numpy.ndarray) – Specific air density \((g.m^{-3})\)

      - cp (float) – Thermal heat capacity of dry air \((K.kg^{-1}.K^{-1})\)

    Returns:

      Maximal surface temperature calculated from energy balance equation (˚C)

    Return type:

      numpy.ndarray

  static psiH(L, X, Z=200, a=1.0, b=0.667, c=5.0, d=0.35)

    Calculation of stability parameter for heat transfer (-) according to Beljaars et Holstag (1991) for stable conditions and Liu et al. (2007) for unstable and neutral conditions.

    Parameters:

      - L (numpy.ndarray) – Monin-Obukhov length (m)

      - X (numpy.ndarray) – X coefficient for stability calculation

      - Z (float) – Blending height (mixing layer height) (m). Default 200 m.

      - a (float) – Coefficient. Default a = 1.0

      - b (float) – Coefficient. Default b = 0.667

      - c (float) – Coefficient. Defalt c = 5.0

      - d (float) – Coefficient. Default d = 0.35

    Returns:

      Stability parameter for momentum transfer (-)

    Return type:

      numpy.ndarray

  static psiM(L, X, Z=200, a=1.0, b=0.667, c=5.0, d=0.35)

    Calculation of stability parameter for momentum transfer (-) according to Beljaars et Holstag (1991) for stable conditions and Liu et al. (2007) for unstable and neutral conditions.

    Parameters:

      - L (numpy.ndarray) – Monin-Obukhov length (m)

      - X (numpy.ndarray) – X coefficient for stability calculation

      - Z (float) – Blending height (mixing layer height) (m). Default 200 m.

      - a (float) – Coefficient. Default a = 1.0

      - b (float) – Coefficient. Default b = 0.667

      - c (float) – Coefficient. Defalt c = 5.0

      - d (float) – Coefficient. Default d = 0.35

    Returns:

      Stability parameter for momentum transfer (-)

    Return type:

      numpy.ndarray

  static raGrad(flux_H, rho, ts, ta, cp=1012)

    Aerodynamic resistance for heat and momentum transfer (s.m^{-1}) calculated from conversion of sensible heat flux equation.

    Parameters:

      - flux_H (numpy.ndarray) – Sensible heat flux \((W.m^{-2})\)

      - rho (numpy.ndarray) – Specific air density \((g.m^{-3})\)

      - ts – Surface temperature (˚C)

      - ta (numpy.ndarray) – Air temperature at level Z (˚C)

      - cp (float) – Thermal heat capacity of dry air \((K.kg^{-1}.K^{-1})\)

    Returns:

      Aerodynamic resistance for gradient model \((s.m^{-1})\)

    Return type:

      numpy.ndarray

  static raSEBAL(frict, psiH_z1, psiH_z2, z1=0.1, z2=2.0, kappa=0.41)

    Calculation of surface aerodynamic resistance for heat transfer based on SEBAL approach (Bastiaanssen, 1998).

    Parameters:

      - frict (numpy.ndarray) – Friction velocity \((m.s^{-1})\)

      - psiH_z1 (numpy.ndarray) – Stability parameter for momentum transfer (-) at level z1

      - psiH_z2 (numpy.ndarray) – Stability parameter for momentum transfer (-) at level z2

      - z1 (float) – First height above zero plane displacement (m)

      - z2 (float) – Second height above zero plane displacement (m)

      - kappa (float) – von Karman constant. Default 0.41

    Returns:

      Aerodynamic resistance for heat transfer based on SEBAL approach (Bastiaanssen, 1998).

    Return type:

      numpy.ndarray

    References

    Bastiaanssen, W.G.M., Menenti, M., Feddes, R.A., Holtslag, A.A.M., 1998. A remote sensing surface energy balance algorithm for land ( SEBAL). 1. Formulation. Journal of Hydrology 212–213, 198–212. https://doi.org/10.1016/S0022-1694(98)00253-4

  static raThom(Uz, z0m, z0h, disp=0.0, psi_m=0.0, psi_h=0.0, Z=200.0, kappa=0.41)

    Aerodynamic resistance for heat and momentum transfer (s.m-1) calculated according to Thom (1975).

    Parameters:

      - disp (numpy.ndarray, float) –

      - Uz (numpy.ndarray) – Wind speed at level Z \((m.s^{-1})\)

      - z0m (numpy.ndarray) – Surface roughness for momentum transfer (m)

      - z0h (numpy.ndarray) – Surface roughness for heat transfer (m)

      - disp – Zero plane displacement (m)

      - psi_m (numpy.ndarray) – Stability parameter for momentum transfer (-). Default is 0.

      - psi_h (numpy.ndarray) – Stability parameter for heat transfer (-) Default is 0.

      - Z (float (Numpy array)) – Blending height (mixing layer height) (m). Default 200 m.

      - kappa (float) – von Karman constant. Default 0.41

    Return ra:

      Aerodynamic resistance for heat and momentum transfer (s.m-1) calculated according to Thom (1975)

    Rtype ra:

      numpy.ndarray

    References

    Thom, A.S., 1975. Momentum, mass and heat exchange of plant communities, in: Monteith, J.L. (Ed.), Vegetation and the Atmosphere, Vol. 1 Principles. Academic Press, London, pp. 57–110.

  stabCoef(Uz, ta, ts, z0m, z0h, disp=0, Z=200, L=-10000.0, n_iter=10, a=1.0, b=0.667, c=5.0, d=0.35, kappa=0.41, gravit=9.81)

    Stability parameters calculation using iterative procedure described by Itier (1980).

    Parameters:

      - disp (numpy.ndarray, float) –

      - Uz (numpy.ndarray) – Wind speed at level Z \((m.s^{-1})\)

      - ta (numpy.ndarray) – Air temperature at Z level (K, C degrees)

      - ts (numpy.ndarray) – Surface temperature (K, C degrees)

      - z0m (numpy.ndarray) – Surface roughness for momentum transfer (m)

      - z0h (numpy.ndarray) – Surface roughness for heat transfer (m)

      - disp – Zero plane displacement (m)

      - Z (float (Numpy array)) – Blending height (mixing layer height) (m). Default 200 m.

      - L (float) – Initial value of Monin-Obukhov length (m). Default -10000.0

      - n_iter (int) – Number of iteration

      - a (float) – Coefficient. Default a = 1.0

      - b (float) – Coefficient. Default b = 0.667

      - c (float) – Coefficient. Defalt c = 5.0

      - d (float) – Coefficient. Default d = 0.35

      - kappa (float) – von Karman constant. Default 0.41

      - gravit (float) – Gravitation forcing (m/s2). Default 9.81

    Returns:

      Stability parameter for momentum transfer (-)

    Return type:

      numpy.ndarray

    Returns:

      Stability parameter for heat transfer (-)

    Return type:

      numpy.ndarray

    Returns:

      Friction velocity \((m.s^{-1})\).

    Return type:

      numpy.ndarray

    Returns:

      Monin-Obukhov length (m)

    Return type:

      numpy.ndarray

  static virtTemp(ta, ts, z0h, disp=0.0, Z=200, psi_h=0, kappa=0.41)

    Virtual temperature (K) corrected on atmospheric stability.

    Parameters:

      - disp (numpy.ndarray, float) –

      - ta (numpy.ndarray) – Air temperature at Z level (K, C degrees)

      - ts (numpy.ndarray) – Surface temperature (K, C degrees)

      - z0h (numpy.ndarray) – Surface roughness for heat transfer (m)

      - disp – Zero plane displacement (m)

      - Z (float) – Blending height (mixing layer height) (m). Default 200 m.

      - psi_h (numpy.ndarray) – Stability parameter for heat transfer, Default 0.

      - kappa (float) – von Karman constant. Default 0.41

    Returns:

      Virtual temperature (K)

    Return type:

      numpy.ndarray

  static wetT(ta)

    Surface temperature for wet surface. In this case surface temperature for wet surface is equal to air temperature. This statement follows from imagine that the LE = Rn - G and thus H is close to zero.

    Parameters:

      ta (numpy.ndarray) – Air temperature at level Z (˚C)

    Returns:

      Temperature of wet surface.

    Return type:

      numpy.ndarray

  static windSpeedZ(U, Z=200.0, Z_st=2.0, h_st=0.12, ws_homog=1)

    Wind speed recalculated to height Z according to logarithmic law (Gao et al. 2011). The results can contain simple number, homogenous or heterogenous matrix of data (Numpy array).

    Parameters:

      - U (float, numpy.ndarray) – Wind speed measured on meteostation at level Z_st \((m.s^{-1})\).

      - Z (float) – Blending height (mixing layer height) (m). Default 200 m.

      - Z_st (float) – Height of wind speed measurement (m). Default 2 m.

      - h_st (float) – Height of vegetation cover under meteostation (m). Default value is 0.12 m which corresponds with reference cover used for meteostations.

      - ws_homog – Indicates if the result matrix contains uniform

    result (mean value of wind speed for the area) or if the results includes heterogeneity of input data (each pixel is calculated separately). 0 - homogenous, 1 - heterogenous :type ws_homog: int :return: Wind speed at mixing layer \((m.s^{-1})\) :rtype: float, numpy.ndarray

    References

    Gao, Z.Q., Liu, C.S., Gao, W., Chang, N.B., 2011. A coupled remote sensing and the Surface Energy Balance with Topography Algorithm (SEBTA) to estimate actual evapotranspiration over heterogeneous terrain. Hydrol. Earth Syst. Sci. 15, 119–139. https://doi.org/10.5194/hess-15-119-2011

  static z0h(z0m)

    Aerodynamic roughness of the surface for heat transfer (m) calculated according to Thom (1975).

    Parameters:

      z0m (numpy.ndarray, float) – Aerodynamic roughness of the surface for momentum transfer (m)

    Returns:

      Aerodynamic roughness of the surface for heat transfer (m)

    Return type:

      numpy.ndarray, float

    References

    Thom, A.S., 1975. Momentum, mass and heat exchange of plant communities, in: Monteith, J.L. (Ed.), Vegetation and the Atmosphere, Vol. 1 Principles. Academic Press, London, pp. 57–110.

  static z0m(h_eff, LAI)

    Aerodynamic roughness of the surface for momentum transfer (m). z0m is calculated according to Tasumi (2003) for vegetation cover lower tha 1 m and according to Thom (1975) for vegetation cover higher than 1 m. The lowest value of z0m is 0.005, which is typical value for agricultural bare soils (Allen et al. 2007)

    Parameters:

      - h_eff (numpy.ndarray) – Effective vegetation cover height (m)

      - LAI (numpy.ndarray) – Leaf Area Index

    Returns:

      Aerodynamic roughness of the surface for momentum transfer (m)

    Return type:

      numpy.ndarray

    References

    Allen, R.G., Tasumi, M., Trezza, R., 2007. Satellite-Based Energy Balance for Mapping Evapotranspiration with Internalized Calibration (METRIC)—Model. J. Irrig. Drain Eng. 133, 380–394. https://doi.org/10.1061/(ASCE)0733-9437(2007)133:4(380)

    Tasumi, M., 2003. Progress in Operational Estimation of Regional Evapotranspiration Using Satellite Imagery (Ph.D. Thesis). University of Idaho, Moscow, Idaho.

    Thom, A.S., 1975. Momentum, mass and heat exchange of plant communities, in: Monteith, J.L. (Ed.), Vegetation and the Atmosphere, Vol. 1 Principles. Academic Press, London, pp. 57–110.

  static zeroPlaneDis(h_eff)

    Zero plane displacement (m) calculated according to Thom (1975).

    Parameters:

      h_eff (numpy.ndarray) – Effective vegetation cover height (m)

    Returns:

      Zero plane displacement (m)

    Return type:

      numpy.ndarray

    References

    Thom, A.S., 1975. Momentum, mass and heat exchange of plant communities, in: Monteith, J.L. (Ed.), Vegetation and the Atmosphere, Vol. 1 Principles. Academic Press, London, pp. 57–110.