Commit 69794411 authored by Oscar Corvi's avatar Oscar Corvi
Browse files

"investigating the weir behavior of the PM equation to wind speed"

parent ca10fddc
Pipeline #235931 passed with stage
in 35 seconds
%% Cell type:markdown id:declared-dealer tags: %% Cell type:markdown id:dangerous-indie tags:
# **Sensitivity of the PM model to wind speed: Sympy study** # **Sensitivity of the PM model to wind speed: Sympy study**
%% Cell type:markdown id:heavy-plastic tags: %% Cell type:markdown id:superb-progressive tags:
# Part I - Methodology # Part I - Methodology
## <u> Motivation </u> ## <u> Motivation </u>
### Theoretical background ### Theoretical background
When assessing the models sensitivity to changes in atmospheric forcings in notebook simpler_model.ipynb, we found out that the potential evapo-transpiration models had a counter intuitive sensitivity to wind speed: When assessing the models sensitivity to changes in atmospheric forcings in notebook simpler_model.ipynb, we found out that the potential evapo-transpiration models had a counter intuitive sensitivity to wind speed:
<p align="center"> <p align="center">
<img width="460" height="300" src="Influence_atmo_rel_dry.png"> <img width="460" height="300" src="Influence_atmo_rel_dry.png">
</p> </p>
This otebook aims at investigating the mathematical structure of the Penman-Monteith model to investigate the variation behavior of the equation to wind speed. This otebook aims at investigating the mathematical structure of the Penman-Monteith model to investigate the variation behavior of the equation to wind speed.
### Modelling experiements ### Modelling experiements
Sympy is used in this notebook in order to compute the derivative of the Penman-Monteith equation to wind speed and to study its sign Sympy is used in this notebook in order to compute the derivative of the Penman-Monteith equation to wind speed and to study its sign
%% Cell type:markdown id:sonic-harrison tags: %% Cell type:markdown id:aquatic-uruguay tags:
# Part II - Functions set up # Part II - Functions set up
%% Cell type:markdown id:specialized-chest tags: %% Cell type:markdown id:limiting-mason tags:
## Importing relevant packages ## Importing relevant packages
%% Cell type:code id:gothic-native tags: %% Cell type:code id:realistic-biotechnology tags:
``` python ``` python
# data manipulation and plotting # data manipulation and plotting
import pandas as pd import pandas as pd
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from matplotlib.patches import Polygon from matplotlib.patches import Polygon
from matplotlib._layoutgrid import plot_children from matplotlib._layoutgrid import plot_children
from collections import OrderedDict from collections import OrderedDict
from IPython.display import display from IPython.display import display
import os # to look into the other folders of the project import os # to look into the other folders of the project
import importlib.util # to open the .py files written somewhere else import importlib.util # to open the .py files written somewhere else
#sns.set_theme(style="whitegrid") #sns.set_theme(style="whitegrid")
# Sympy and sympbolic mathematics # Sympy and sympbolic mathematics
from sympy import (asin, cos, diff, Eq, exp, init_printing, log, pi, sin, from sympy import (asin, cos, diff, Eq, exp, init_printing, log, pi, sin,
solve, sqrt, Symbol, symbols, tan, Abs) solve, sqrt, Symbol, symbols, tan, Abs)
from sympy.physics.units import convert_to from sympy.physics.units import convert_to
init_printing() init_printing()
from sympy.printing import StrPrinter from sympy.printing import StrPrinter
from sympy import Piecewise from sympy import Piecewise
StrPrinter._print_Quantity = lambda self, expr: str(expr.abbrev) # displays short units (m instead of meter) StrPrinter._print_Quantity = lambda self, expr: str(expr.abbrev) # displays short units (m instead of meter)
from sympy.printing.aesaracode import aesara_function from sympy.printing.aesaracode import aesara_function
from sympy.physics.units import * # Import all units and dimensions from sympy from sympy.physics.units import * # Import all units and dimensions from sympy
from sympy.physics.units.systems.si import dimsys_SI, SI from sympy.physics.units.systems.si import dimsys_SI, SI
# for ESSM, environmental science for symbolic math, see https://github.com/environmentalscience/essm # for ESSM, environmental science for symbolic math, see https://github.com/environmentalscience/essm
from essm.variables._core import BaseVariable, Variable from essm.variables._core import BaseVariable, Variable
from essm.equations import Equation from essm.equations import Equation
from essm.variables.units import derive_unit, SI, Quantity from essm.variables.units import derive_unit, SI, Quantity
from essm.variables.utils import (extract_variables, generate_metadata_table, markdown, from essm.variables.utils import (extract_variables, generate_metadata_table, markdown,
replace_defaults, replace_variables, subs_eq) replace_defaults, replace_variables, subs_eq)
from essm.variables.units import (SI_BASE_DIMENSIONS, SI_EXTENDED_DIMENSIONS, SI_EXTENDED_UNITS, from essm.variables.units import (SI_BASE_DIMENSIONS, SI_EXTENDED_DIMENSIONS, SI_EXTENDED_UNITS,
derive_unit, derive_baseunit, derive_base_dimension) derive_unit, derive_baseunit, derive_base_dimension)
# For netCDF # For netCDF
import netCDF4 import netCDF4
import numpy as np import numpy as np
import xarray as xr import xarray as xr
import warnings import warnings
from netCDF4 import Dataset from netCDF4 import Dataset
# For regressions # For regressions
from sklearn.linear_model import LinearRegression from sklearn.linear_model import LinearRegression
# Deactivate unncessary warning messages related to a bug in Numpy # Deactivate unncessary warning messages related to a bug in Numpy
warnings.simplefilter(action='ignore', category=FutureWarning) warnings.simplefilter(action='ignore', category=FutureWarning)
# for calibration # for calibration
from scipy import optimize from scipy import optimize
from random import random from random import random
``` ```
%% Cell type:markdown id:structured-judge tags: %%%% Output: stream
WARNING (aesara.link.c.cmodule): install mkl with `conda install mkl-service`: No module named 'mkl'
WARNING (aesara.tensor.blas): Using NumPy C-API based implementation for BLAS functions.
%% Cell type:markdown id:fewer-essex tags:
## Path of the different files (pre-defined python functions, sympy equations, sympy variables) ## Path of the different files (pre-defined python functions, sympy equations, sympy variables)
%% Cell type:code id:initial-marina tags:parameters %% Cell type:code id:olympic-wichita tags:parameters
``` python ``` python
path_variable = '../../theory/pyFile_storage/theory_variable.py' path_variable = '../../theory/pyFile_storage/theory_variable.py'
path_equation = '../../theory/pyFile_storage/theory_equation.py' path_equation = '../../theory/pyFile_storage/theory_equation.py'
path_analysis_functions = '../../theory/pyFile_storage/analysis_functions.py' path_analysis_functions = '../../theory/pyFile_storage/analysis_functions.py'
path_data = '../../../data/eddycovdata/' path_data = '../../../data/eddycovdata/'
dates_fPAR = '../../../data/fpar_howard_spring/dates_v5' dates_fPAR = '../../../data/fpar_howard_spring/dates_v5'
tex_file_whole = "latex_files/whole_year.tex" tex_file_whole = "latex_files/whole_year.tex"
tex_file_dry = "latex_files/dry_season.tex" tex_file_dry = "latex_files/dry_season.tex"
tex_file_wet = "latex_files/wet_season.tex" tex_file_wet = "latex_files/wet_season.tex"
timeSerie_oneSite_oneYear = 'timeSerie_oneSite_oneYear.png' timeSerie_oneSite_oneYear = 'timeSerie_oneSite_oneYear.png'
inverseModelling = "inverseModelling.png" inverseModelling = "inverseModelling.png"
Influence_atmo_E_dry = "Influence_atmo_E_dry.png" Influence_atmo_E_dry = "Influence_atmo_E_dry.png"
Influence_atmo_E_wet = "Influence_atmo_E_wet.png" Influence_atmo_E_wet = "Influence_atmo_E_wet.png"
Influence_atmo_rel_dry = "Influence_atmo_rel_dry.png" Influence_atmo_rel_dry = "Influence_atmo_rel_dry.png"
Influence_atmo_rel_wet = "Influence_atmo_rel_wet.png" Influence_atmo_rel_wet = "Influence_atmo_rel_wet.png"
sensitivity_parameters = "sensitivity_parameters.png" sensitivity_parameters = "sensitivity_parameters.png"
statistical_assessment = "statistical_assessment.png" statistical_assessment = "statistical_assessment.png"
different_sites = "different_sites.png" different_sites = "different_sites.png"
``` ```
%% Cell type:markdown id:cooperative-trinidad tags: %% Cell type:markdown id:manufactured-knight tags:
## Importing the sympy variables and equations defined in the theory.ipynb notebook ## Importing the sympy variables and equations defined in the theory.ipynb notebook
%% Cell type:code id:accepted-heart tags: %% Cell type:code id:waiting-pension tags:
``` python ``` python
for code in [path_variable,path_equation]: for code in [path_variable,path_equation]:
name_code = code[-20:-3] name_code = code[-20:-3]
spec = importlib.util.spec_from_file_location(name_code, code) spec = importlib.util.spec_from_file_location(name_code, code)
mod = importlib.util.module_from_spec(spec) mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod) spec.loader.exec_module(mod)
names = getattr(mod, '__all__', [n for n in dir(mod) if not n.startswith('_')]) names = getattr(mod, '__all__', [n for n in dir(mod) if not n.startswith('_')])
glob = globals() glob = globals()
for name in names: for name in names:
print(name) print(name)
glob[name] = getattr(mod, name) glob[name] = getattr(mod, name)
``` ```
%%%% Output: stream %%%% Output: stream
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:theta_sat" will be overridden by "e/theory_variable:<class 'e/theory_variable.theta_sat'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:theta_res" will be overridden by "e/theory_variable:<class 'e/theory_variable.theta_res'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:alpha" will be overridden by "e/theory_variable:<class 'e/theory_variable.alpha'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:n" will be overridden by "e/theory_variable:<class 'e/theory_variable.n'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:m" will be overridden by "e/theory_variable:<class 'e/theory_variable.m'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:S_mvg" will be overridden by "e/theory_variable:<class 'e/theory_variable.S_mvg'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:theta" will be overridden by "e/theory_variable:<class 'e/theory_variable.theta'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:h" will be overridden by "e/theory_variable:<class 'e/theory_variable.h'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:S" will be overridden by "e/theory_variable:<class 'e/theory_variable.S'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:theta_4" will be overridden by "e/theory_variable:<class 'e/theory_variable.theta_4'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:theta_3" will be overridden by "e/theory_variable:<class 'e/theory_variable.theta_3'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:theta_2" will be overridden by "e/theory_variable:<class 'e/theory_variable.theta_2'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:theta_1" will be overridden by "e/theory_variable:<class 'e/theory_variable.theta_1'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:L" will be overridden by "e/theory_variable:<class 'e/theory_variable.L'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:Mw" will be overridden by "e/theory_variable:<class 'e/theory_variable.Mw'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:Pv" will be overridden by "e/theory_variable:<class 'e/theory_variable.Pv'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:Pvs" will be overridden by "e/theory_variable:<class 'e/theory_variable.Pvs'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:R" will be overridden by "e/theory_variable:<class 'e/theory_variable.R'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:T" will be overridden by "e/theory_variable:<class 'e/theory_variable.T'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:c1" will be overridden by "e/theory_variable:<class 'e/theory_variable.c1'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:T0" will be overridden by "e/theory_variable:<class 'e/theory_variable.T0'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:Delta" will be overridden by "e/theory_variable:<class 'e/theory_variable.Delta'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:E" will be overridden by "e/theory_variable:<class 'e/theory_variable.E'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:G" will be overridden by "e/theory_variable:<class 'e/theory_variable.G'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:H" will be overridden by "e/theory_variable:<class 'e/theory_variable.H'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:Rn" will be overridden by "e/theory_variable:<class 'e/theory_variable.Rn'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:LE" will be overridden by "e/theory_variable:<class 'e/theory_variable.LE'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:gamma" will be overridden by "e/theory_variable:<class 'e/theory_variable.gamma'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:alpha_PT" will be overridden by "e/theory_variable:<class 'e/theory_variable.alpha_PT'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:c_p" will be overridden by "e/theory_variable:<class 'e/theory_variable.c_p'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:w" will be overridden by "e/theory_variable:<class 'e/theory_variable.w'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:kappa" will be overridden by "e/theory_variable:<class 'e/theory_variable.kappa'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:z" will be overridden by "e/theory_variable:<class 'e/theory_variable.z'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:u_star" will be overridden by "e/theory_variable:<class 'e/theory_variable.u_star'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:VH" will be overridden by "e/theory_variable:<class 'e/theory_variable.VH'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:d" will be overridden by "e/theory_variable:<class 'e/theory_variable.d'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:z_om" will be overridden by "e/theory_variable:<class 'e/theory_variable.z_om'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:z_oh" will be overridden by "e/theory_variable:<class 'e/theory_variable.z_oh'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:r_a" will be overridden by "e/theory_variable:<class 'e/theory_variable.r_a'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:g_a" will be overridden by "e/theory_variable:<class 'e/theory_variable.g_a'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:r_s" will be overridden by "e/theory_variable:<class 'e/theory_variable.r_s'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:g_s" will be overridden by "e/theory_variable:<class 'e/theory_variable.g_s'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:c1_e" will be overridden by "e/theory_variable:<class 'e/theory_variable.c1_e'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:c2_e" will be overridden by "e/theory_variable:<class 'e/theory_variable.c2_e'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:e" will be overridden by "e/theory_variable:<class 'e/theory_variable.e'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:T_min" will be overridden by "e/theory_variable:<class 'e/theory_variable.T_min'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:T_max" will be overridden by "e/theory_variable:<class 'e/theory_variable.T_max'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:RH_max" will be overridden by "e/theory_variable:<class 'e/theory_variable.RH_max'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:RH_min" will be overridden by "e/theory_variable:<class 'e/theory_variable.RH_min'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:e_a" will be overridden by "e/theory_variable:<class 'e/theory_variable.e_a'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:e_s" will be overridden by "e/theory_variable:<class 'e/theory_variable.e_s'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:iv_T" will be overridden by "e/theory_variable:<class 'e/theory_variable.iv_T'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:T_kv" will be overridden by "e/theory_variable:<class 'e/theory_variable.T_kv'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:P" will be overridden by "e/theory_variable:<class 'e/theory_variable.P'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:rho_a" will be overridden by "e/theory_variable:<class 'e/theory_variable.rho_a'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: "e/theory_variable:VPD" will be overridden by "e/theory_variable:<class 'e/theory_variable.VPD'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_m_n" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_m_n'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_MVG_neg_case" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_MVG_neg_case'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_MVG" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_MVG'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_sat_degree" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_sat_degree'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_MVG_h" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_MVG_h'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_h_FC" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_h_FC'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_theta_4_3" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_theta_4_3'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_theta_2_1" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_theta_2_1'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_water_stress_simple" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_water_stress_simple'>"
instance[expr] = instance
%%%% Output: stream
theta_sat theta_sat
theta_res theta_res
alpha alpha
n n
m m
S_mvg S_mvg
theta theta
h h
S S
theta_4 theta_4
theta_3 theta_3
theta_2 theta_2
theta_1 theta_1
L L
Mw Mw
Pv Pv
Pvs Pvs
R R
T T
c1 c1
T0 T0
Delta Delta
E E
G G
H H
Rn Rn
LE LE
gamma gamma
alpha_PT alpha_PT
c_p c_p
w w
kappa kappa
z z
u_star u_star
VH VH
d d
z_om z_om
z_oh z_oh
r_a r_a
g_a g_a
r_s r_s
g_s g_s
c1_e c1_e
c2_e c2_e
e e
T_min T_min
T_max T_max
RH_max RH_max
RH_min RH_min
e_a e_a
e_s e_s
iv_T iv_T
T_kv T_kv
P P
rho_a rho_a
VPD VPD
%%%% Output: stream
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_Pvs_T" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_Pvs_T'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_Delta" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_Delta'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_PT" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_PT'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_PM" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_PM'>"
instance[expr] = instance
%%%% Output: stream
eq_m_n eq_m_n
eq_MVG_neg_case eq_MVG_neg_case
eq_MVG eq_MVG
eq_sat_degree eq_sat_degree
eq_MVG_h eq_MVG_h
eq_h_FC eq_h_FC
eq_theta_4_3 eq_theta_4_3
eq_theta_2_1 eq_theta_2_1
eq_water_stress_simple eq_water_stress_simple
eq_Pvs_T eq_Pvs_T
eq_Delta eq_Delta
eq_PT eq_PT
eq_PM eq_PM
eq_PM_VPD eq_PM_VPD
eq_PM_g eq_PM_g
eq_PM_inv eq_PM_inv
%%%% Output: stream %% Cell type:markdown id:particular-shakespeare tags:
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_PM_VPD" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_PM_VPD'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_PM_g" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_PM_g'>"
instance[expr] = instance
/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: "e/theory_equation:eq_PM_inv" will be overridden by "e/theory_equation:<class 'e/theory_equation.eq_PM_inv'>"
instance[expr] = instance
%% Cell type:markdown id:fixed-lodging tags:
## Importing the performance assessment functions defined in the analysis_function.py file ## Importing the performance assessment functions defined in the analysis_function.py file
%% Cell type:code id:distinct-lighting tags: %% Cell type:code id:noble-guatemala tags:
``` python ``` python
for code in [path_analysis_functions]: for code in [path_analysis_functions]:
name_code = code[-20:-3] name_code = code[-20:-3]
spec = importlib.util.spec_from_file_location(name_code, code) spec = importlib.util.spec_from_file_location(name_code, code)
mod = importlib.util.module_from_spec(spec) mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod) spec.loader.exec_module(mod)
names = getattr(mod, '__all__', [n for n in dir(mod) if not n.startswith('_')]) names = getattr(mod, '__all__', [n for n in dir(mod) if not n.startswith('_')])
glob = globals() glob = globals()
for name in names: for name in names:
print(name) print(name)
glob[name] = getattr(mod, name) glob[name] = getattr(mod, name)
``` ```
%%%% Output: stream %%%% Output: stream
AIC AIC
AME AME
BIC BIC
CD CD
CP CP
IoA IoA
KGE