Agrometeorological Equations Package
Library for agrometeorological calculation like evapotranspiration, water balance, degree days, etc
About
This library was adapted to fit some needs of a private project,
and I decided to disponibilize as open source since the original project
that we used as base is.
All calculations and formulas were reviewed by the agrometeorologist Mariana Gonçalves dos Reis, based on the documents:
Conversion factors and general equations applied in agricultural and forest meteorology
Evapotranspiration_Equation.pdf
In case of questions related to the python code, bug fix ...
please contact Bruno Ducraux, who is the python developer responsible for the project.
Installation
pip install agro-met-equations-dynalogic
Usage
from AgroMetEquations import
Steps to calculate FAO56
- Day of year: days_passed_on_current_year()
- Solar declination: sol_dec(day_of_year)
- Sunset hour angle: sunset_hour_angle(latitude_rad, solar_declination)
- Daylight hours: daylight_hours(sunset_hour_angle)
- Inverse relative distance between earth and sun: inv_rel_dist_earth_sun(day_of_year)
- Extraterrestrial radiation: et_rad(latitude_rad, solar_declination, sunset_hour_angle, inv_rel_dist_earth_sun)
- Clear sky radiation: cs_rad(altitude, extraterrestrial_radiation)
- Saturation vapour pressure Min: svp_from_t(temperature_min)
- Saturation vapour pressure Max: svp_from_t(temperature_max)
- Saturation vapour pressure: svp(svp_min, svp_max)
- Actual vapour pressure: avp_from_rhmin_rhmax(svp_min, svp_max, relative_humidity_min, relative_humidity_max)
- Net outgoing longwave radiation: net_out_lw_rad(temperature_min:kelvin, temperature_max:kelvin, solar_radiation, clear_sky_radiation, actual_vapour_pressure)
- Net income solar radiation: net_in_sol_rad(solar_radiation)
- Net radiation at the crop surface: net_rad(net_in_sol_rad, net_outgoing_longwave_radiation)
- Soil heat flux: soil_heat_flux_by_nightday_period(net_rad)
- Latent heat: latent_heat(temperature_mean)
- Delta: delta_svp(temperature_mean)
- Psychrometric constant: psy_const(atmosphere_pressure, latent_heat)
- Wind speed measured at different heights: wind_speed_2m(wind_speed, sensor_height)
- FAO56: fao56_penman_monteith(net_rad, temperature_mean, wind_speed, latent_heat, svp, actual_vapour_pressure, delta, psychrometric_constant, soil_heat_flux)
Testing
To test the code you need to have pytest installed.
pip install pytest
Inside the AgroMetEquations folder run the command:
pytest