PenmanMonteithHourly

Computes Potential Evapotranspiration by using the algorithm of Penman-Monteith FAO 56 FAO56

"The so-called reference crop evapotranspiration or reference evapotranspiration, denoted as potential evapotranspiration ETp. The reference surface is a hypothetical grass reference crop with an assumed a fixed crop height, a fixed surface resistance and a fixed albedo. The reference surface closely resembles an extensive surface of green, well-watered grass of uniform height, actively growing and completely shading the ground. The fixed surface resistance implies a moderately dry soil surface resulting from about a weekly irrigation frequency"

Quick start

Installing the package

Install the package by typing:

]
add PenmanMonteithHourly

The instructions are found in Manual

Then to use it:

using PenmanMonteithHourly

Running the model with examples

Step 1:

The following climate input csv data file can be downloaded:

# create a "data/input" directory in the current directory
Testdir = @__DIR__

# The path can be modified
Inputdir = joinpath(Testdir, "DATA/INPUT")
isdir(Inputdir) || mkpath(Inputdir)

Outputdir = joinpath(Testdir, "DATA/OUTPUT")
isdir(Outputdir) || mkpath(Outputdir)

Csv_path = joinpath(Inputdir, "Ballycanew_Climate_Minute.csv")
Csv_url = "https://raw.githubusercontent.com/AquaPore/PenmanMonteithHourly.jl/refs/heads/main/test/Data/INPUT/Ballycanew/Ballycanew_Climate_Minute.csv"
download(Csv_url, Csv_path)

Step 2:

The following input toml file can be downloaded:

Testdir = @__DIR__

# The path can be modified
Inputdir = joinpath(Testdir, "DATA/INPUT")
isdir(Inputdir) || mkpath(Inputdir)

Outputdir = joinpath(Testdir, "DATA/OUTPUT")
isdir(Outputdir) || mkpath(Outputdir)

Toml_path = joinpath(Inputdir, "Ballycanew_PetOption.toml")
Toml_url = "https://raw.githubusercontent.com/AquaPore/PenmanMonteithHourly.jl/refs/heads/main/test/Data/INPUT/Ballycanew/Ballycanew_PetOption.toml"
download(Toml_url, Toml_path)

Step 3:

Modify the toml [path] to get the correct names of the files

Step 4:

Run the code

Path_Toml = raw"D:\JOE\MAIN\MODELS\PenmanMonteithHourly.jl\DATA\INPUT\Timoleague\Timoleague_PetOption.toml"

DayHour, DayHour_Reduced, Pet_Obs, Pet_Obs_Reduced, Pet_Sim, Pet_Sim_Reduced = PenmanMonteithHourly.PENMAN_MONTEITH_HOURLY_RUN(;Path_Toml, α = 0.23, 🎏_Debug=false);