the program is coded in C language. Take the following steps to build and implement: navigate to the scr
folder, create directory build
and navigate to it. call cmake
and make
to build the software.
For example, to compile the program in the Windows OS with MinGW:
$ cd ./PML/scr/
$ mkdir build
$ cd build
$ cmake -G "MinGW Makefiles" ..
$ mingw32-make
then an executable is generated named PML.exe
(in Windows OS).
The required variables to calculate the actual evapotranspiration with PML method include:
VAR | variable | unit |
---|---|---|
Ta | air temperature | Cel degree |
Rs_in | incoming shortwave radiation | w/m2 |
Rl_in | incoming longwave radiation | w/m2 |
Da | vapor pressure deficit | hPa |
Pa | air pressure | kPa |
Prec | precipitation | mm |
WS | wind speed | m/s |
Ca | CO2 concentration |
|
Albedo | albedo | - |
emiss | emissitivity | - |
LAI | leaf area index | m2/m2 |
Hc | canopy height | m |
Zm | suggested measurement height of wind speed and humidity | m |
LE | latent heat | w/m2 |
LE_code | quality code of LE | - |
H | sensible heat | w/m2 |
an example data file is shown as following:
y,m,d,Ta,Rs_in,Rl_in,Da,Pa,Prec,WS,Ca,Albedo,emiss,LAI,Hc,Zm,LE,LE_code,H
2011,1,1,25.177,322.34,373.435,19.477,98.933,0.905,1.948,390.93,0.135,0.984,1.5,28,36,57.2376,0,127.758
2011,1,2,18.742,369.891,321.298,10.673,99.331,0,3.241,390.9435484,0.13475,0.984,1.5,28,36,55.6186,0,117.227
2011,1,3,16.626,372.732,302.404,9.774,99.409,0,3.667,390.9570968,0.1345,0.984,1.5,28,36,64.1627,0,136.383
2011,1,4,18.714,381.975,314.716,11.636,98.995,0,1.742,390.9706452,0.13425,0.984,1.5,28,36,57.2376,0,127.758
2011,1,5,18.471,342.724,327.956,9.841,98.774,0,3.264,390.9841935,0.134,0.984,1.5,28,36,55.6186,0,117.227
2011,1,6,21.912,372.203,341.696,14.362,98.771,0,1.683,390.9977419,0.13375,0.984,1.5,28,36,64.1627,0,136.383
...
Aside from the input variables for PML calculation, the PML parameters are also required to correctly simulate the actual evapotranspiration. See Leuning et al., (2008) and Gan et al., (2018) for details.
An example of parameter file is like below:
g_sx,Q50,D0,D50,k_Q,k_A,S_sls,f_ER0,beta,eta,m,A_m25
0.0038,30,0.536,0.7,0.832,0.899,0.098,0.085,0.048,0.024,10.602,13.875
0.0038,30,0.536,0.7,0.832,0.899,0.098,0.085,0.048,0.024,10.602,13.875
0.0038,30,0.536,0.7,0.832,0.899,0.098,0.085,0.048,0.024,10.602,13.875
0.0038,30,0.536,0.7,0.832,0.899,0.098,0.085,0.048,0.024,10.602,13.875
0.0038,30,0.536,0.7,0.832,0.899,0.098,0.085,0.048,0.024,10.602,13.875
...
Attention: the number of lines in the parameter file should be the same as that in data file, although the values of these variables can be temporally constant.
A configure file gp.txt
is required to provide arguments controlling the behavior of this program, an example is:
# lines starting with hash symbol are comments
# field-value pairs, separated by comma
# FP_DATA, the file path and name of data file
FP_DATA,../../data/data_AU-Whr.csv
# the file path and fname of PML parameter file
FP_PARA,../../data/PMLpara_AU-Whr.csv
# the file base of name to store the simulated outputs
FP_OUT,../../data/fluxsim_AU-Whr.csv
# number of calculation steps
CALC_N,1461
# the version of PML model: 1 or 2
PML_V,2
# a flag, if MUTE == TRUE, then run the program silently; if MUTE == FALSE, print some info during running
MUTE,FALSE
# a flag, if HEAT_OBS == TRUE, means the observed LE and H are available in data file, the program
# will conduct the data filtering and energy closure, the NSE is returned.
# when HEAT_OBS == TRUE, and MUTE == FALSE, the NSE, R2, RMSE, and Re are printed in the end.
HEAT_OBS,TRUE
Then run the program by executing this in the command-line terminal (or shell):
./PML.exe path/to/gp.txt
In this program, the evaporation from canopy Ec
, interception Ei
and soil Es
are simulated and net radiation Rn
over canopy and equilibirum soil evaporation Es_eq
are also returned in the output file. ET
stands for the actual surface evapotranspiration. If HEAT_OBS == TRUE
, the observed ET ET_obs
is aslo calculated based on LE and H, and printed to the output file.
The output file should look like:
y,m,d,Ec,Ei,Es,Es_eq,ET,Rn,FILTER,ET_obs
2011,1,1,2.30,0.23,0.67,1.46,3.20,209.96,0,2.30
2011,1,2,1.98,0.00,0.34,1.47,2.32,235.99,0,2.67
2011,1,3,1.88,0.00,0.22,1.39,2.10,231.28,0,2.60
2011,1,4,2.14,0.00,0.17,1.50,2.31,240.21,0,2.61
2011,1,5,1.89,0.00,0.13,1.38,2.02,220.91,0,2.50
2011,1,6,2.30,0.00,0.12,1.59,2.42,240.87,0,2.72
...
The column FILTER
in the output file indicates whether the value passes the data quality and energy closure control (yes: 1
; no: 0
). If the observed LE or H is not available, the -1
is returned.
When the observaed flux (LE and H) are available, namely HEAT_OBS == TRUE
, the program also prints the estimated Nash–Sutcliffe efficiency coefficient (NSE) even if MUTE == TRUE
.
Leuning, R., Zhang, Y.Q., Rajaud, A., Cleugh, H. and Tu, K. 2008. A simple surface conductance model to estimate regional evaporation using MODIS leaf area index and the Penman-Monteith equation. Water Resources Research, 44(10). doi: https://doi.org/10.1029/2007WR006562.
Gan, R., Zhang, Y., Shi, H., Yang, Y., Eamus, D., Cheng, L., Chiew, F.H.S. and Yu, Q. 2018. Use of satellite leaf area index estimating evapotranspiration and gross assimilation for Australian ecosystems. Ecohydrology, 11(5), e1974. doi: https://doi.org/10.1002/eco.1974.