From 6c7cf7dbf8b547b21e91a544f3fa5e208f45ec01 Mon Sep 17 00:00:00 2001
From: Isaac Mudge <66634423+imscw95@users.noreply.github.com>
Date: Tue, 25 Jun 2024 11:16:14 -0500
Subject: [PATCH] Finished alkalinity tests
---
.../dev_sandbox/model_architecture_nsm.ipynb | 376 +--
src/clearwater_modules/nsm1/processes.py | 31 +-
tests/test_12_nsm_alkalinity_calculations.py | 2658 +++++++++++++++++
3 files changed, 2865 insertions(+), 200 deletions(-)
create mode 100644 tests/test_12_nsm_alkalinity_calculations.py
diff --git a/examples/dev_sandbox/model_architecture_nsm.ipynb b/examples/dev_sandbox/model_architecture_nsm.ipynb
index 92a1bec..ecf6b55 100644
--- a/examples/dev_sandbox/model_architecture_nsm.ipynb
+++ b/examples/dev_sandbox/model_architecture_nsm.ipynb
@@ -602,357 +602,357 @@
" * x (x) float64 1.0\n",
" * y (y) float64 1.0\n",
"Data variables: (12/281)\n",
- " Ap (year, x, y) float64 36.77 58.28\n",
- " Ab (year, x, y) float64 24.0 9.954\n",
- " NH4 (year, x, y) float64 0.5 0.8985\n",
- " NO3 (year, x, y) float64 5.54 5.299\n",
+ " Ap (year, x, y) float64 36.77 58.26\n",
+ " Ab (year, x, y) float64 24.0 9.951\n",
+ " NH4 (year, x, y) float64 0.063 0.557\n",
+ " NO3 (year, x, y) float64 5.54 5.203\n",
" OrgN (year, x, y) float64 1.726 1.726\n",
" N2 (year, x, y) float64 1.0 1.895e+04\n",
" ... ...\n",
- " dAlkdt (year, x, y) float64 nan 0.0006381\n",
+ " dAlkdt (year, x, y) float64 nan 2.315\n",
" KHN2_tc (year, x, y) float64 nan 0.0006499\n",
" P_wv (year, x, y) float64 nan 0.03128\n",
" N2sat (year, x, y) float64 nan 1.457e+04\n",
" dN2dt (year, x, y) float64 nan 1.895e+04\n",
- " TDG (year, x, y) float64 nan 123.1
Ap
(year, x, y)
float64
36.77 58.28
- long_name :
- Algae Concentration
- units :
- ug-Chla/L
- description :
- Algal Concentration
array([[[36.77 ]],\n",
+ " TDG (year, x, y) float64 nan 105.3
Ap
(year, x, y)
float64
36.77 58.26
- long_name :
- Algae Concentration
- units :
- ug-Chla/L
- description :
- Algal Concentration
array([[[36.77 ]],\n",
"\n",
- " [[58.27903423]]])
Ab
(year, x, y)
float64
24.0 9.954
- long_name :
- Benthic Algae Concentration
- units :
- g-D/m^2
- description :
- Benthic Algae Concentration
array([[[24. ]],\n",
+ " [[58.25781341]]])
Ab
(year, x, y)
float64
24.0 9.951
- long_name :
- Benthic Algae Concentration
- units :
- g-D/m^2
- description :
- Benthic Algae Concentration
array([[[24. ]],\n",
"\n",
- " [[ 9.95429744]]])
NH4
(year, x, y)
float64
0.5 0.8985
- long_name :
- Ammonium Concentration
- units :
- mg-N/L
- description :
- Ammonium Concentration
array([[[0.5 ]],\n",
+ " [[ 9.951046]]])
NH4
(year, x, y)
float64
0.063 0.557
- long_name :
- Ammonium Concentration
- units :
- mg-N/L
- description :
- Ammonium Concentration
array([[[0.063 ]],\n",
"\n",
- " [[0.89851798]]])
NO3
(year, x, y)
float64
5.54 5.299
- long_name :
- Nitrate Concentration
- units :
- mg-N/L
- description :
- Nitrate Concentration
array([[[5.54 ]],\n",
+ " [[0.55700145]]])
NO3
(year, x, y)
float64
5.54 5.203
- long_name :
- Nitrate Concentration
- units :
- mg-N/L
- description :
- Nitrate Concentration
array([[[5.54 ]],\n",
"\n",
- " [[5.29937438]]])
OrgN
(year, x, y)
float64
1.726 1.726
- long_name :
- Organic Nitrogen Concentration
- units :
- mg-N/L
- description :
- Organic Nitrogen Concentration
array([[[1.726]],\n",
+ " [[5.20308732]]])
OrgN
(year, x, y)
float64
1.726 1.726
- long_name :
- Organic Nitrogen Concentration
- units :
- mg-N/L
- description :
- Organic Nitrogen Concentration
array([[[1.726]],\n",
"\n",
- " [[1.726]]])
N2
(year, x, y)
float64
1.0 1.895e+04
- long_name :
- Nitrogen concentration air
- units :
- mg-N/L
- description :
- Nitrogen concentration air
array([[[1.00000000e+00]],\n",
+ " [[1.726]]])
N2
(year, x, y)
float64
1.0 1.895e+04
- long_name :
- Nitrogen concentration air
- units :
- mg-N/L
- description :
- Nitrogen concentration air
array([[[1.00000000e+00]],\n",
"\n",
- " [[1.89489532e+04]]])
TIP
(year, x, y)
float64
0.071 0.09295
- long_name :
- Total Inorganic Phosphorus
- units :
- mg-P/L
- description :
- Total Inorganic Phosphorus Concentration
array([[[0.071 ]],\n",
+ " [[1.89489532e+04]]])
TIP
(year, x, y)
float64
0.071 0.09299
- long_name :
- Total Inorganic Phosphorus
- units :
- mg-P/L
- description :
- Total Inorganic Phosphorus Concentration
array([[[0.071 ]],\n",
"\n",
- " [[0.09295317]]])
OrgP
(year, x, y)
float64
0.24 0.24
- long_name :
- Total Organic Phosphorus
- units :
- mg-P/L
- description :
- Total Organic Phosphorus Concentration
array([[[0.24]],\n",
+ " [[0.0929939]]])
OrgP
(year, x, y)
float64
0.24 0.24
- long_name :
- Total Organic Phosphorus
- units :
- mg-P/L
- description :
- Total Organic Phosphorus Concentration
array([[[0.24]],\n",
"\n",
- " [[0.24]]])
POC
(year, x, y)
float64
4.356 6.31
- long_name :
- Particulate Organic Carbon
- units :
- mg-C/L
- description :
- Particulate Organic Carbon Concentration
array([[[4.356 ]],\n",
+ " [[0.24]]])
POC
(year, x, y)
float64
4.356 6.31
- long_name :
- Particulate Organic Carbon
- units :
- mg-C/L
- description :
- Particulate Organic Carbon Concentration
array([[[4.356 ]],\n",
"\n",
- " [[6.31038514]]])
DOC
(year, x, y)
float64
1.0 1.24
- long_name :
- Dissolved Organic Carbon
- units :
- mg-C/L
- description :
- Dissolved Organic Carbon Concentration
array([[[1. ]],\n",
+ " [[6.31038514]]])
DOC
(year, x, y)
float64
1.0 1.245
- long_name :
- Dissolved Organic Carbon
- units :
- mg-C/L
- description :
- Dissolved Organic Carbon Concentration
array([[[1. ]],\n",
"\n",
- " [[1.23964429]]])
DIC
(year, x, y)
float64
1.0 0.7678
- long_name :
- Dissolved Inorganic Carbon
- units :
- mg-C/L
- description :
- Dissolved Inorganic Carbon Concentration
array([[[1. ]],\n",
+ " [[1.24453711]]])
DIC
(year, x, y)
float64
1.0 0.7678
- long_name :
- Dissolved Inorganic Carbon
- units :
- mg-C/L
- description :
- Dissolved Inorganic Carbon Concentration
array([[[1. ]],\n",
"\n",
- " [[0.76776895]]])
POM
(year, x, y)
float64
1.0 1.779
- long_name :
- Particulate Organic Matter
- units :
- mg-D/L
- description :
- Particulate Organic Matter Concentration
array([[[1. ]],\n",
+ " [[0.7677627]]])
POM
(year, x, y)
float64
1.0 1.779
- long_name :
- Particulate Organic Matter
- units :
- mg-D/L
- description :
- Particulate Organic Matter Concentration
array([[[1. ]],\n",
"\n",
- " [[1.77874008]]])
CBOD
(year, x, y)
float64
1.0 0.8579
- long_name :
- Carbonaceous Biochemical Oxygen Demand
- units :
- mg-O2/L
- description :
- Carbonaceous Biochemical Oxygen Demand Concentration
array([[[1. ]],\n",
+ " [[1.77874008]]])
CBOD
(year, x, y)
float64
1.0 0.8993
- long_name :
- Carbonaceous Biochemical Oxygen Demand
- units :
- mg-O2/L
- description :
- Carbonaceous Biochemical Oxygen Demand Concentration
array([[[1. ]],\n",
"\n",
- " [[0.85790274]]])
DOX
(year, x, y)
float64
8.0 9.088
- long_name :
- Dissolved Oxygen
- units :
- mg-O2/L
- description :
- Dissolved Oxygen
array([[[8. ]],\n",
+ " [[0.89934777]]])
DOX
(year, x, y)
float64
1.0 11.56
- long_name :
- Dissolved Oxygen
- units :
- mg-O2/L
- description :
- Dissolved Oxygen
array([[[ 1. ]],\n",
"\n",
- " [[9.08800766]]])
PX
(year, x, y)
float64
1.0 -268.7
- long_name :
- Pathogen
- units :
- cfu/100mL
- description :
- Pathogen concentration
array([[[ 1. ]],\n",
+ " [[11.55784638]]])
PX
(year, x, y)
float64
1.0 -268.7
- long_name :
- Pathogen
- units :
- cfu/100mL
- description :
- Pathogen concentration
array([[[ 1. ]],\n",
"\n",
- " [[-268.71612345]]])
Alk
(year, x, y)
float64
1.0 1.001
- long_name :
- Alkalinity
- units :
- mg-CaCO3/L
- description :
- Alkalinity concentration
array([[[1. ]],\n",
+ " [[-268.71612345]]])
Alk
(year, x, y)
float64
1.0 3.315
- long_name :
- Alkalinity
- units :
- mg-CaCO3/L
- description :
- Alkalinity concentration
array([[[1. ]],\n",
"\n",
- " [[1.00063811]]])
vson
(x, y)
float64
0.01
- long_name :
- Organic N settling velocity
- units :
- m/d
- description :
- Organic N settling velocity
vsoc
(x, y)
float64
0.01
- long_name :
- POC settling velocity
- units :
- m/d
- description :
- POC settling velocity
vsop
(x, y)
float64
0.01
- long_name :
- Organic phosphorus settling velocity
- units :
- m/d
- description :
- Organic phosphorus settling velocity
vs
(x, y)
float64
0.01
- long_name :
- Sediment settling velocity
- units :
- m/d
- description :
- Sediment settling velocity
SOD_20
(x, y)
float64
0.5
- long_name :
- Sediment oxygen demand at 20 degrees C
- units :
- g-O2/m/d
- description :
- Sediment oxygen demand at 20 degrees C
SOD_theta
(x, y)
float64
1.047
- long_name :
- Arrhenius coefficient for sediment oxygen demand
- units :
- unitless
- description :
- Arrhenius coefficient for sediment oxygen demand
fcom
(x, y)
float64
0.4
- long_name :
- Fraction of carbon in organic matter
- units :
- mg-C/mg-D
- description :
- Fraction of carbon in organic matter
vb
(x, y)
float64
0.01
- long_name :
- Burial velocity
- units :
- m/d
- description :
- Rate at which constituents are buried on the bottom
kaw_20_user
(x, y)
int32
0
- long_name :
- Wind oxygen reaeration velocity at 20C
- units :
- m/d
- description :
- Wind oxygen reaeration velocity at 20C
kah_20_user
(x, y)
int32
1
- long_name :
- Hydraulic oxygen reaeration rate at 20C
- units :
- 1/d
- description :
- Hydraulic oxygen reaeration rate at 20C
hydraulic_reaeration_option
(x, y)
int32
1
- long_name :
- Option for chosing the method by which O2 reaeration rate is calculated
- units :
- unitless
- description :
- Selects method for computing O2 reaeration rate
wind_reaeration_option
(x, y)
int32
1
- long_name :
- Option for chosing the method by which wind reaeration is calculated
- units :
- unitless
- description :
- Selects method for computing O2 reaeration due to wind
use_NH4
(x, y)
bool
True
- long_name :
- Use ammonium module
- units :
- unitless
- description :
- True/False use ammonium module
use_NO3
(x, y)
bool
True
- long_name :
- Use nitrate module
- units :
- unitless
- description :
- True/False use nitrate module
use_OrgN
(x, y)
bool
False
- long_name :
- Use organic nitrogen module
- units :
- unitless
- description :
- True/False use organic nitrogen module
use_SedFlux
(x, y)
bool
False
- long_name :
- Use sediment flux module
- units :
- unitless
- description :
- True/False use sediment flux module
use_DOX
(x, y)
bool
True
- long_name :
- Use dissolved oxygen module
- units :
- unitless
- description :
- True/False use dissolved oxygen module
use_Algae
(x, y)
bool
True
- long_name :
- Use algae module
- units :
- unitless
- description :
- True/False use algae module
use_Balgae
(x, y)
bool
True
- long_name :
- Use benthic algae module
- units :
- unitless
- description :
- True/False use benthic algae module
use_TIP
(x, y)
bool
True
- long_name :
- Use total inorganic phosphorus module
- units :
- unitless
- description :
- True/False use total inorganic phosphorus module
use_OrgP
(x, y)
bool
False
- long_name :
- Use total organic phosphorus module
- units :
- unitless
- description :
- True/False use total organic phosphorus module
use_POC
(x, y)
bool
False
- long_name :
- Use particulate organic carbon module
- units :
- unitless
- description :
- True/False use particulate organic carbon module
use_DOC
(x, y)
bool
True
- long_name :
- Use dissolved organic carbon module
- units :
- unitless
- description :
- True/False use dissolved organic carbon module
use_DIC
(x, y)
bool
True
- long_name :
- Use dissolved inorganic carbon module
- units :
- unitless
- description :
- True/False use dissolved inorganic carbon module
use_N2
(x, y)
bool
False
- long_name :
- Use dissolved N2 module
- units :
- unitless
- description :
- True/False use N2 module
use_Pathogen
(x, y)
bool
False
- long_name :
- Use pathogen module
- units :
- unitless
- description :
- True/False use pathogen module
use_Alk
(x, y)
bool
False
- long_name :
- Use alkalinity module
- units :
- unitless
- description :
- True/False use alkalinity module
use_POM
(x, y)
bool
False
- long_name :
- Use particulate organic matter module
- units :
- unitless
- description :
- True/False use particulate organic matter module
dt
(x, y)
int32
1
- long_name :
- dt
- units :
- d
- description :
- calculation dt
depth
(x, y)
float64
1.5
- long_name :
- Depth of water in cell
- units :
- m
- description :
- Depth of water in cell
TwaterC
(x, y)
int32
25
- long_name :
- Water temperature in celsius
- units :
- degrees C
- description :
- Water temperature in celsius
theta
(x, y)
float64
1.047
- long_name :
- Water temperature theta adjustment factor
- units :
- unitless
- description :
- Water temperature theta adjustment factor
velocity
(x, y)
int32
1
- long_name :
- velocity
- units :
- m/s
- description :
- Average water velocity in cell
flow
(x, y)
int32
150
- long_name :
- flow
- units :
- m3/s
- description :
- Average flow rate in cell
topwidth
(x, y)
int32
100
- long_name :
- topwidth
- units :
- m
- description :
- Average topwidth of cell
slope
(x, y)
float64
0.0002
- long_name :
- slope
- units :
- TODO
- description :
- Average slope of bottom surface
shear_velocity
(x, y)
float64
0.05334
- long_name :
- shear_velocity
- units :
- TODO
- description :
- Average shear velocity on bottom surface
pressure_atm
(x, y)
float64
1.013e+03
- long_name :
- pressure_atm
- units :
- TODO
- description :
- atmospheric pressure in atm
wind_speed
(x, y)
int32
3
- long_name :
- Wind speed at 10 meters above the water surface
- units :
- m/s
- description :
- Wind speed at 10 meters above the water surface
q_solar
(x, y)
int32
500
- long_name :
- Incident short-wave solar radiation
- units :
- W/m2
- description :
- Incident short-wave solar radiation
Solid
(x, y)
int32
1
- long_name :
- Solid reaeration option
- units :
- Unknown
- description :
- Solid
AWd
(x, y)
int32
100
- long_name :
- Algal Dry Weight
- units :
- mg
- description :
- Algal Dry Weight
AWc
(x, y)
int32
40
- long_name :
- Carbon Weight
- units :
- mg
- description :
- Carbon Weight
AWn
(x, y)
float64
7.2
- long_name :
- Nitrogen Weight
- units :
- mg
- description :
- Nitrogen Weight
AWp
(x, y)
int32
1
- long_name :
- Phosphorus Weight
- units :
- mg
- description :
- Phosphorus Weight
AWa
(x, y)
int32
1000
- long_name :
- Algal Chlorophyll
- units :
- ug Chla
- description :
- Algal Chlorophyll
KL
(x, y)
int32
10
- long_name :
- Light Limiting Constant for Algal Growth
- units :
- W/m^2
- description :
- Light Limiting Constant for Algal Growth
KsN
(x, y)
float64
0.04
- long_name :
- Half-Saturation N Limiting Constant for Algal Growth
- units :
- mg-N/L
- description :
- Half-Saturation N Limiting Constant for Algal Growth
KsP
(x, y)
float64
0.0012
- long_name :
- Half-Saturation P Limiting Constant for Algal Growth
- units :
- mg-P/L
- description :
- Half-Saturation P Limiting Constant for Algal Growth
mu_max_20
(x, y)
int32
1
- long_name :
- Max Algae Growth
- units :
- 1/d
- description :
- Max Algae Growth at 20C
kdp_20
(x, y)
float64
0.15
- long_name :
- Algal Mortality Rate
- units :
- 1/d
- description :
- Algal Mortality Rate at 20C
krp_20
(x, y)
float64
0.2
- long_name :
- Algal Respiration Rate
- units :
- 1/d
- description :
- Algal Respiration Rate at 20C
vsap
(x, y)
float64
0.15
- long_name :
- Algal Setting Velocity
- units :
- m/d
- description :
- Algal Setting Velocity
growth_rate_option
(x, y)
int32
1
- long_name :
- Growth Rate Option
- units :
- 1/d
- description :
- Algal growth rate option 1) multiplicative, 2) Limiting Nutrient, 3) Harmonic Mean Option
light_limitation_option
(x, y)
int32
1
- long_name :
- Light Limitation Option
- units :
- 1/d
- description :
- Algal light limitation 1) half-saturation, 2) Smith model, 3) Steele model
lambda0
(x, y)
float64
0.02
- long_name :
- lambda0
- units :
- 1/m
- description :
- background portion
lambda1
(x, y)
float64
0.0088
- long_name :
- lambda1
- units :
- 1/m/(ug Chla/L)
- description :
- linear self shading
lambda2
(x, y)
float64
0.054
- long_name :
- lambda2
- units :
- unitless
- description :
- nonlinear
lambdas
(x, y)
float64
0.056
- long_name :
- lambdas
- units :
- L/mg/m
- description :
- ISS portion
lambdam
(x, y)
float64
0.174
- long_name :
- lambdam
- units :
- L/mg/m
- description :
- POM portion
Fr_PAR
(x, y)
float64
0.47
- long_name :
- fraction PAR
- units :
- unitless
- description :
- fraction of solar radiation within the PAR of the spectrum
Fw
(x, y)
float64
0.9
- long_name :
- Fraction of benthic algae mortality into water column
- units :
- unitless
- description :
- Fraction of benthic algae mortality into water column
Fb
(x, y)
float64
0.9
- long_name :
- Fraction of bottom area available for benthic algae
- units :
- unitless
- description :
- Fraction of bottom area available for benthic algae
BWd
(x, y)
int32
100
- long_name :
- Benthic algae dry weight
- units :
- unitless
- description :
- Benthic algae dry weight
BWc
(x, y)
int32
40
- long_name :
- Benthic algae carbon
- units :
- unitless
- description :
- Benthic algae carbon
BWn
(x, y)
float64
7.2
- long_name :
- Benthic algae nitrogen
- units :
- unitless
- description :
- Benthic algae nitrogen
BWp
(x, y)
int32
1
- long_name :
- Benthic algae phosphorus
- units :
- unitless
- description :
- Benthic algae phosphorus
BWa
(x, y)
int32
5000
- long_name :
- Benthic algae Chla
- units :
- unitless
- description :
- Benthic algae Chla
KLb
(x, y)
int32
10
- long_name :
- Light limiting constant for benthic algae growth
- units :
- W/m^2
- description :
- Light limiting constant for benthic algae growth
KsNb
(x, y)
float64
0.25
- long_name :
- Half-Saturation N limiting constant for Benthic algae
- units :
- mg-N/L
- description :
- Half-Saturation N limiting constant for Benthic algae
KsPb
(x, y)
float64
0.125
- long_name :
- Half-Saturation P limiting constant for Benthic algae
- units :
- mg-P/L
- description :
- Half-Saturation P limiting constant for Benthic algae
Ksb
(x, y)
int32
10
- long_name :
- Half-Saturation density constant for benthic algae growth
- units :
- g-D/m^2
- description :
- Half-Saturation density constant for benthic algae growth
mub_max_20
(x, y)
float64
0.4
- long_name :
- Maximum benthic algal growth rate
- units :
- 1/d
- description :
- maximum benthic algal growth rate
krb_20
(x, y)
float64
0.2
- long_name :
- Benthic algal respiration rate
- units :
- 1/d
- description :
- Benthic algal respiration rate
kdb_20
(x, y)
float64
0.3
- long_name :
- Benthic algal mortality rate
- units :
- 1/d
- description :
- Benthic algal mortality rate
b_growth_rate_option
(x, y)
int32
1
- long_name :
- Benthic Algal growth rate options
- units :
- unitless
- description :
- Benthic Algal growth rate with two options: 1) Multiplicative, 2) Limiting Nutritent
b_light_limitation_option
(x, y)
int32
1
- long_name :
- Benthic Algal light limitation rate options
- units :
- unitless
- description :
- Benthic Algal light limitation rate with three options: 1) Half-saturation formulation, 2) Smiths Model, 3) Steeles Model
KNR
(x, y)
int32
10
- long_name :
- Oxygen inhabitation factor for nitrification
- units :
- mg-O2/L
- description :
- Oxygen inhabitation factor for nitrification
knit_20
(x, y)
float64
0.1
- long_name :
- Nitrification Rate Ammonia decay at 20C
- units :
- 1/d
- description :
- Nitrification Rate Ammonia NH4 -> NO3 decay at 20C
kon_20
(x, y)
float64
0.1
- long_name :
- Decay Rate of OrgN to NH4 at 20C
- units :
- 1/d
- description :
- Decay Rate of OrgN to NH4 at 20C
kdnit_20
(x, y)
float64
0.002
- long_name :
- Denitrification rate at 20C
- units :
- 1/d
- description :
- Denitrification rate at 20C
rnh4_20
(x, y)
int32
0
- long_name :
- Sediment release rate of NH4 at 20C
- units :
- g-N/m^2/d
- description :
- Sediment release rate of NH4 at 20C
vno3_20
(x, y)
int32
0
- long_name :
- Sediment denitrification velocity at 20C
- units :
- m/d
- description :
- Sediment denitrification velocity at 20C
KsOxdn
(x, y)
float64
0.1
- long_name :
- Half-saturation oxygen inhibition constant for denitrification
- units :
- mg-O2/L
- description :
- Half-saturation oxygen inhibition constant for denitrification
PN
(x, y)
float64
0.5
- long_name :
- NH4 preference factor algae
- units :
- unitless
- description :
- NH4 preference factor algae (1=full NH4, 0=full NO3)
PNb
(x, y)
float64
0.5
- long_name :
- NH4 preference factor benthic algae
- units :
- unitless
- description :
- NH4 preference factor benthic algae (1=full NH4, 0=full NO3)
kop_20
(x, y)
float64
0.1
- long_name :
- Decay rate of organic P to DIP
- units :
- 1/d
- description :
- Decay rate of organic P to DIP
rpo4_20
(x, y)
int32
0
- long_name :
- Benthic sediment release rate of DIP
- units :
- g-P/m^2/d
- description :
- Benthic sediment release rate of DIP
kdpo4
(x, y)
int32
100
- long_name :
- solid partitioning coeff. of PO4
- units :
- L/kg
- description :
- solid partitioning coeff. of PO4
kpom_20
(x, y)
float64
0.1
- long_name :
- POM dissolution rate at 20C
- units :
- 1/d
- description :
- POM dissolution rate at 20C
kbod_20
(x, y)
float64
0.12
- long_name :
- CBOD oxidation rate at 20C
- units :
- 1/d
- description :
- CBOD oxidation rate at 20C
ksbod_20
(x, y)
int32
0
- long_name :
- CBOD sedimentation rate at 20C
- units :
- m/d
- description :
- CBOD sedimentation rate at 20C
KsOxbod
(x, y)
float64
0.5
- long_name :
- Half saturation oxygen attenuation constant for CBOD oxidation
- units :
- mg-O2/L
- description :
- Half saturation oxygen attenuation constant for CBOD oxidation
f_pocp
(x, y)
float64
0.9
- long_name :
- Fraction of algal mortality into POC
- units :
- unitless
- description :
- Fraction of dead algae that converts to particulate organic carbon
kdoc_20
(x, y)
float64
0.01
- long_name :
- Dissolved organic carbon oxidation rate
- units :
- 1/d
- description :
- Dissolved organic carbon oxidation rate
f_pocb
(x, y)
float64
0.9
- long_name :
- fraction of benthic algal mortality into POC
- units :
- unitless
- description :
- fraction of benthic algal mortality into POC
kpoc_20
(x, y)
float64
0.005
- long_name :
- POC hydrolysis rate at 20 degrees Celsius
- units :
- 1/d
- description :
- POC hydrolysis rate at 20 degrees Celsius
KsOxmc
(x, y)
int32
1
- long_name :
- half saturation oxygen attenuation constant for DOC oxidation rate
- units :
- mg-O2/L
- description :
- half saturation oxygen attenuation constant for DOC oxidation rate
pCO2
(x, y)
int32
383
- long_name :
- partial atmospheric CO2 pressure
- units :
- ppm
- description :
- partial pressure of CO2 in the atmosphere
FCO2
(x, y)
float64
0.2
- long_name :
- CO2 reaeration rate
- units :
- 1/d
- description :
- CO2 reaeration rate
roc
(x, y)
float64
2.667
- long_name :
- O2:C ratio for carbon oxidation
- units :
- mg-O2/mg-C
- description :
- O2:C ratio for carbon oxidation (32/12)
ron
(x, y)
float64
4.571
- long_name :
- O2:N ratio for nitrification
- units :
- mg-O2/mg-N
- description :
- O2:N ratio for nitrification (2*32/14)
KsSOD
(x, y)
int32
1
- long_name :
- half saturation oxygen attenuation constant for SOD
- units :
- mg/L
- description :
- half saturation oxygen attenuation constant for SOD
kdx_20
(x, y)
float64
0.8
- long_name :
- Pathogen death rate at 20C
- units :
- 1/d
- description :
- Pathogen death rate at 20C
apx
(x, y)
int32
1
- long_name :
- Light efficiency factor for pathogen decay
- units :
- unitless
- description :
- Light efficiency factor for pathogen decay
vx
(x, y)
int32
1
- long_name :
- Pathogen net settling velocity
- units :
- unitless
- description :
- Pathogen net settling velocity
r_alkaa
(x, y)
float64
1.101e-05
- long_name :
- Ratio translating algal growth into Alk if NH4 is the N source
- units :
- eq/ug-Chla
- description :
- Ratio translating algal growth into Alk if NH4 is the N source
array([[1.10062893e-05]])
r_alkan
(x, y)
float64
1.415e-05
- long_name :
- Ratio translating algal growth into Alk if NO3 is the N source
- units :
- eq/ug-Chla
- description :
- Ratio translating algal growth into Alk if NO3 is the N source
array([[1.41509434e-05]])
r_alkn
(x, y)
float64
0.0001429
- long_name :
- Ratio translating NH4 nitrification into Alk
- units :
- eq/mg-N
- description :
- Ratio translating NH4 nitrification into Alk
r_alkden
(x, y)
float64
0.0002857
- long_name :
- Ratio translating NO3 denitrification into Alk
- units :
- eq/mg-N
- description :
- Ratio translating NO3 denitrification into Alk
r_alkba
(x, y)
float64
1.101e-05
- long_name :
- Ratio translating benthic algae growth into Alk if NH4 is the N source
- units :
- eq/mg-D
- description :
- Ratio translating benthic algae growth into Alk if NH4 is the N source
array([[1.10062893e-05]])
r_alkbn
(x, y)
float64
1.415e-05
- long_name :
- Ratio translating benthic algae growth into Alk if NO3 is the N source
- units :
- eq/mg-D
- description :
- Ratio translating benthic algae growth into Alk if NO3 is the N source
array([[1.41509434e-05]])
TwaterK
(year, x, y)
float64
nan 298.2
- long_name :
- Water Temperature K
- units :
- K
- description :
- Water temperature degree kelvin
array([[[ nan]],\n",
+ " [[3.315476]]])
vson
(x, y)
float64
0.01
- long_name :
- Organic N settling velocity
- units :
- m/d
- description :
- Organic N settling velocity
vsoc
(x, y)
float64
0.01
- long_name :
- POC settling velocity
- units :
- m/d
- description :
- POC settling velocity
vsop
(x, y)
float64
0.01
- long_name :
- Organic phosphorus settling velocity
- units :
- m/d
- description :
- Organic phosphorus settling velocity
vs
(x, y)
float64
0.01
- long_name :
- Sediment settling velocity
- units :
- m/d
- description :
- Sediment settling velocity
SOD_20
(x, y)
float64
0.5
- long_name :
- Sediment oxygen demand at 20 degrees C
- units :
- g-O2/m/d
- description :
- Sediment oxygen demand at 20 degrees C
SOD_theta
(x, y)
float64
1.047
- long_name :
- Arrhenius coefficient for sediment oxygen demand
- units :
- unitless
- description :
- Arrhenius coefficient for sediment oxygen demand
fcom
(x, y)
float64
0.4
- long_name :
- Fraction of carbon in organic matter
- units :
- mg-C/mg-D
- description :
- Fraction of carbon in organic matter
vb
(x, y)
float64
0.01
- long_name :
- Burial velocity
- units :
- m/d
- description :
- Rate at which constituents are buried on the bottom
kaw_20_user
(x, y)
int32
0
- long_name :
- Wind oxygen reaeration velocity at 20C
- units :
- m/d
- description :
- Wind oxygen reaeration velocity at 20C
kah_20_user
(x, y)
int32
1
- long_name :
- Hydraulic oxygen reaeration rate at 20C
- units :
- 1/d
- description :
- Hydraulic oxygen reaeration rate at 20C
hydraulic_reaeration_option
(x, y)
int32
1
- long_name :
- Option for chosing the method by which O2 reaeration rate is calculated
- units :
- unitless
- description :
- Selects method for computing O2 reaeration rate
wind_reaeration_option
(x, y)
int32
1
- long_name :
- Option for chosing the method by which wind reaeration is calculated
- units :
- unitless
- description :
- Selects method for computing O2 reaeration due to wind
use_NH4
(x, y)
bool
True
- long_name :
- Use ammonium module
- units :
- unitless
- description :
- True/False use ammonium module
use_NO3
(x, y)
bool
True
- long_name :
- Use nitrate module
- units :
- unitless
- description :
- True/False use nitrate module
use_OrgN
(x, y)
bool
False
- long_name :
- Use organic nitrogen module
- units :
- unitless
- description :
- True/False use organic nitrogen module
use_SedFlux
(x, y)
bool
False
- long_name :
- Use sediment flux module
- units :
- unitless
- description :
- True/False use sediment flux module
use_DOX
(x, y)
bool
True
- long_name :
- Use dissolved oxygen module
- units :
- unitless
- description :
- True/False use dissolved oxygen module
use_Algae
(x, y)
bool
True
- long_name :
- Use algae module
- units :
- unitless
- description :
- True/False use algae module
use_Balgae
(x, y)
bool
True
- long_name :
- Use benthic algae module
- units :
- unitless
- description :
- True/False use benthic algae module
use_TIP
(x, y)
bool
True
- long_name :
- Use total inorganic phosphorus module
- units :
- unitless
- description :
- True/False use total inorganic phosphorus module
use_OrgP
(x, y)
bool
False
- long_name :
- Use total organic phosphorus module
- units :
- unitless
- description :
- True/False use total organic phosphorus module
use_POC
(x, y)
bool
False
- long_name :
- Use particulate organic carbon module
- units :
- unitless
- description :
- True/False use particulate organic carbon module
use_DOC
(x, y)
bool
False
- long_name :
- Use dissolved organic carbon module
- units :
- unitless
- description :
- True/False use dissolved organic carbon module
use_DIC
(x, y)
bool
False
- long_name :
- Use dissolved inorganic carbon module
- units :
- unitless
- description :
- True/False use dissolved inorganic carbon module
use_N2
(x, y)
bool
False
- long_name :
- Use dissolved N2 module
- units :
- unitless
- description :
- True/False use N2 module
use_Pathogen
(x, y)
bool
False
- long_name :
- Use pathogen module
- units :
- unitless
- description :
- True/False use pathogen module
use_Alk
(x, y)
bool
True
- long_name :
- Use alkalinity module
- units :
- unitless
- description :
- True/False use alkalinity module
use_POM
(x, y)
bool
False
- long_name :
- Use particulate organic matter module
- units :
- unitless
- description :
- True/False use particulate organic matter module
dt
(x, y)
int32
1
- long_name :
- dt
- units :
- d
- description :
- calculation dt
depth
(x, y)
float64
1.5
- long_name :
- Depth of water in cell
- units :
- m
- description :
- Depth of water in cell
TwaterC
(x, y)
int32
25
- long_name :
- Water temperature in celsius
- units :
- degrees C
- description :
- Water temperature in celsius
theta
(x, y)
float64
1.047
- long_name :
- Water temperature theta adjustment factor
- units :
- unitless
- description :
- Water temperature theta adjustment factor
velocity
(x, y)
int32
1
- long_name :
- velocity
- units :
- m/s
- description :
- Average water velocity in cell
flow
(x, y)
int32
150
- long_name :
- flow
- units :
- m3/s
- description :
- Average flow rate in cell
topwidth
(x, y)
int32
100
- long_name :
- topwidth
- units :
- m
- description :
- Average topwidth of cell
slope
(x, y)
float64
0.0002
- long_name :
- slope
- units :
- TODO
- description :
- Average slope of bottom surface
shear_velocity
(x, y)
float64
0.05334
- long_name :
- shear_velocity
- units :
- TODO
- description :
- Average shear velocity on bottom surface
pressure_atm
(x, y)
float64
1.013e+03
- long_name :
- pressure_atm
- units :
- TODO
- description :
- atmospheric pressure in atm
wind_speed
(x, y)
int32
3
- long_name :
- Wind speed at 10 meters above the water surface
- units :
- m/s
- description :
- Wind speed at 10 meters above the water surface
q_solar
(x, y)
int32
500
- long_name :
- Incident short-wave solar radiation
- units :
- W/m2
- description :
- Incident short-wave solar radiation
Solid
(x, y)
int32
1
- long_name :
- Solid reaeration option
- units :
- Unknown
- description :
- Solid
AWd
(x, y)
int32
100
- long_name :
- Algal Dry Weight
- units :
- mg
- description :
- Algal Dry Weight
AWc
(x, y)
int32
40
- long_name :
- Carbon Weight
- units :
- mg
- description :
- Carbon Weight
AWn
(x, y)
float64
7.2
- long_name :
- Nitrogen Weight
- units :
- mg
- description :
- Nitrogen Weight
AWp
(x, y)
int32
1
- long_name :
- Phosphorus Weight
- units :
- mg
- description :
- Phosphorus Weight
AWa
(x, y)
int32
1000
- long_name :
- Algal Chlorophyll
- units :
- ug Chla
- description :
- Algal Chlorophyll
KL
(x, y)
int32
10
- long_name :
- Light Limiting Constant for Algal Growth
- units :
- W/m^2
- description :
- Light Limiting Constant for Algal Growth
KsN
(x, y)
float64
0.04
- long_name :
- Half-Saturation N Limiting Constant for Algal Growth
- units :
- mg-N/L
- description :
- Half-Saturation N Limiting Constant for Algal Growth
KsP
(x, y)
float64
0.0012
- long_name :
- Half-Saturation P Limiting Constant for Algal Growth
- units :
- mg-P/L
- description :
- Half-Saturation P Limiting Constant for Algal Growth
mu_max_20
(x, y)
int32
1
- long_name :
- Max Algae Growth
- units :
- 1/d
- description :
- Max Algae Growth at 20C
kdp_20
(x, y)
float64
0.15
- long_name :
- Algal Mortality Rate
- units :
- 1/d
- description :
- Algal Mortality Rate at 20C
krp_20
(x, y)
float64
0.2
- long_name :
- Algal Respiration Rate
- units :
- 1/d
- description :
- Algal Respiration Rate at 20C
vsap
(x, y)
float64
0.15
- long_name :
- Algal Setting Velocity
- units :
- m/d
- description :
- Algal Setting Velocity
growth_rate_option
(x, y)
int32
1
- long_name :
- Growth Rate Option
- units :
- 1/d
- description :
- Algal growth rate option 1) multiplicative, 2) Limiting Nutrient, 3) Harmonic Mean Option
light_limitation_option
(x, y)
int32
1
- long_name :
- Light Limitation Option
- units :
- 1/d
- description :
- Algal light limitation 1) half-saturation, 2) Smith model, 3) Steele model
lambda0
(x, y)
float64
0.02
- long_name :
- lambda0
- units :
- 1/m
- description :
- background portion
lambda1
(x, y)
float64
0.0088
- long_name :
- lambda1
- units :
- 1/m/(ug Chla/L)
- description :
- linear self shading
lambda2
(x, y)
float64
0.054
- long_name :
- lambda2
- units :
- unitless
- description :
- nonlinear
lambdas
(x, y)
float64
0.056
- long_name :
- lambdas
- units :
- L/mg/m
- description :
- ISS portion
lambdam
(x, y)
float64
0.174
- long_name :
- lambdam
- units :
- L/mg/m
- description :
- POM portion
Fr_PAR
(x, y)
float64
0.47
- long_name :
- fraction PAR
- units :
- unitless
- description :
- fraction of solar radiation within the PAR of the spectrum
Fw
(x, y)
float64
0.9
- long_name :
- Fraction of benthic algae mortality into water column
- units :
- unitless
- description :
- Fraction of benthic algae mortality into water column
Fb
(x, y)
float64
0.9
- long_name :
- Fraction of bottom area available for benthic algae
- units :
- unitless
- description :
- Fraction of bottom area available for benthic algae
BWd
(x, y)
int32
100
- long_name :
- Benthic algae dry weight
- units :
- unitless
- description :
- Benthic algae dry weight
BWc
(x, y)
int32
40
- long_name :
- Benthic algae carbon
- units :
- unitless
- description :
- Benthic algae carbon
BWn
(x, y)
float64
7.2
- long_name :
- Benthic algae nitrogen
- units :
- unitless
- description :
- Benthic algae nitrogen
BWp
(x, y)
int32
1
- long_name :
- Benthic algae phosphorus
- units :
- unitless
- description :
- Benthic algae phosphorus
BWa
(x, y)
int32
5000
- long_name :
- Benthic algae Chla
- units :
- unitless
- description :
- Benthic algae Chla
KLb
(x, y)
int32
10
- long_name :
- Light limiting constant for benthic algae growth
- units :
- W/m^2
- description :
- Light limiting constant for benthic algae growth
KsNb
(x, y)
float64
0.25
- long_name :
- Half-Saturation N limiting constant for Benthic algae
- units :
- mg-N/L
- description :
- Half-Saturation N limiting constant for Benthic algae
KsPb
(x, y)
float64
0.125
- long_name :
- Half-Saturation P limiting constant for Benthic algae
- units :
- mg-P/L
- description :
- Half-Saturation P limiting constant for Benthic algae
Ksb
(x, y)
int32
10
- long_name :
- Half-Saturation density constant for benthic algae growth
- units :
- g-D/m^2
- description :
- Half-Saturation density constant for benthic algae growth
mub_max_20
(x, y)
float64
0.4
- long_name :
- Maximum benthic algal growth rate
- units :
- 1/d
- description :
- maximum benthic algal growth rate
krb_20
(x, y)
float64
0.2
- long_name :
- Benthic algal respiration rate
- units :
- 1/d
- description :
- Benthic algal respiration rate
kdb_20
(x, y)
float64
0.3
- long_name :
- Benthic algal mortality rate
- units :
- 1/d
- description :
- Benthic algal mortality rate
b_growth_rate_option
(x, y)
int32
1
- long_name :
- Benthic Algal growth rate options
- units :
- unitless
- description :
- Benthic Algal growth rate with two options: 1) Multiplicative, 2) Limiting Nutritent
b_light_limitation_option
(x, y)
int32
1
- long_name :
- Benthic Algal light limitation rate options
- units :
- unitless
- description :
- Benthic Algal light limitation rate with three options: 1) Half-saturation formulation, 2) Smiths Model, 3) Steeles Model
KNR
(x, y)
float64
0.6
- long_name :
- Oxygen inhabitation factor for nitrification
- units :
- mg-O2/L
- description :
- Oxygen inhabitation factor for nitrification
knit_20
(x, y)
float64
0.1
- long_name :
- Nitrification Rate Ammonia decay at 20C
- units :
- 1/d
- description :
- Nitrification Rate Ammonia NH4 -> NO3 decay at 20C
kon_20
(x, y)
float64
0.1
- long_name :
- Decay Rate of OrgN to NH4 at 20C
- units :
- 1/d
- description :
- Decay Rate of OrgN to NH4 at 20C
kdnit_20
(x, y)
float64
0.002
- long_name :
- Denitrification rate at 20C
- units :
- 1/d
- description :
- Denitrification rate at 20C
rnh4_20
(x, y)
int32
0
- long_name :
- Sediment release rate of NH4 at 20C
- units :
- g-N/m^2/d
- description :
- Sediment release rate of NH4 at 20C
vno3_20
(x, y)
int32
0
- long_name :
- Sediment denitrification velocity at 20C
- units :
- m/d
- description :
- Sediment denitrification velocity at 20C
KsOxdn
(x, y)
float64
0.1
- long_name :
- Half-saturation oxygen inhibition constant for denitrification
- units :
- mg-O2/L
- description :
- Half-saturation oxygen inhibition constant for denitrification
PN
(x, y)
float64
0.5
- long_name :
- NH4 preference factor algae
- units :
- unitless
- description :
- NH4 preference factor algae (1=full NH4, 0=full NO3)
PNb
(x, y)
float64
0.5
- long_name :
- NH4 preference factor benthic algae
- units :
- unitless
- description :
- NH4 preference factor benthic algae (1=full NH4, 0=full NO3)
kop_20
(x, y)
float64
0.1
- long_name :
- Decay rate of organic P to DIP
- units :
- 1/d
- description :
- Decay rate of organic P to DIP
rpo4_20
(x, y)
int32
0
- long_name :
- Benthic sediment release rate of DIP
- units :
- g-P/m^2/d
- description :
- Benthic sediment release rate of DIP
kdpo4
(x, y)
int32
100
- long_name :
- solid partitioning coeff. of PO4
- units :
- L/kg
- description :
- solid partitioning coeff. of PO4
kpom_20
(x, y)
float64
0.1
- long_name :
- POM dissolution rate at 20C
- units :
- 1/d
- description :
- POM dissolution rate at 20C
kbod_20
(x, y)
float64
0.12
- long_name :
- CBOD oxidation rate at 20C
- units :
- 1/d
- description :
- CBOD oxidation rate at 20C
ksbod_20
(x, y)
int32
0
- long_name :
- CBOD sedimentation rate at 20C
- units :
- m/d
- description :
- CBOD sedimentation rate at 20C
KsOxbod
(x, y)
float64
0.5
- long_name :
- Half saturation oxygen attenuation constant for CBOD oxidation
- units :
- mg-O2/L
- description :
- Half saturation oxygen attenuation constant for CBOD oxidation
f_pocp
(x, y)
float64
0.9
- long_name :
- Fraction of algal mortality into POC
- units :
- unitless
- description :
- Fraction of dead algae that converts to particulate organic carbon
kdoc_20
(x, y)
float64
0.01
- long_name :
- Dissolved organic carbon oxidation rate
- units :
- 1/d
- description :
- Dissolved organic carbon oxidation rate
f_pocb
(x, y)
float64
0.9
- long_name :
- fraction of benthic algal mortality into POC
- units :
- unitless
- description :
- fraction of benthic algal mortality into POC
kpoc_20
(x, y)
float64
0.005
- long_name :
- POC hydrolysis rate at 20 degrees Celsius
- units :
- 1/d
- description :
- POC hydrolysis rate at 20 degrees Celsius
KsOxmc
(x, y)
int32
1
- long_name :
- half saturation oxygen attenuation constant for DOC oxidation rate
- units :
- mg-O2/L
- description :
- half saturation oxygen attenuation constant for DOC oxidation rate
pCO2
(x, y)
int32
383
- long_name :
- partial atmospheric CO2 pressure
- units :
- ppm
- description :
- partial pressure of CO2 in the atmosphere
FCO2
(x, y)
float64
0.2
- long_name :
- CO2 reaeration rate
- units :
- 1/d
- description :
- CO2 reaeration rate
roc
(x, y)
float64
2.667
- long_name :
- O2:C ratio for carbon oxidation
- units :
- mg-O2/mg-C
- description :
- O2:C ratio for carbon oxidation (32/12)
ron
(x, y)
float64
4.571
- long_name :
- O2:N ratio for nitrification
- units :
- mg-O2/mg-N
- description :
- O2:N ratio for nitrification (2*32/14)
KsSOD
(x, y)
int32
1
- long_name :
- half saturation oxygen attenuation constant for SOD
- units :
- mg/L
- description :
- half saturation oxygen attenuation constant for SOD
kdx_20
(x, y)
float64
0.8
- long_name :
- Pathogen death rate at 20C
- units :
- 1/d
- description :
- Pathogen death rate at 20C
apx
(x, y)
int32
1
- long_name :
- Light efficiency factor for pathogen decay
- units :
- unitless
- description :
- Light efficiency factor for pathogen decay
vx
(x, y)
int32
1
- long_name :
- Pathogen net settling velocity
- units :
- unitless
- description :
- Pathogen net settling velocity
r_alkaa
(x, y)
float64
1.101e-05
- long_name :
- Ratio translating algal growth into Alk if NH4 is the N source
- units :
- eq/ug-Chla
- description :
- Ratio translating algal growth into Alk if NH4 is the N source
array([[1.10062893e-05]])
r_alkan
(x, y)
float64
1.415e-05
- long_name :
- Ratio translating algal growth into Alk if NO3 is the N source
- units :
- eq/ug-Chla
- description :
- Ratio translating algal growth into Alk if NO3 is the N source
array([[1.41509434e-05]])
r_alkn
(x, y)
float64
0.0001429
- long_name :
- Ratio translating NH4 nitrification into Alk
- units :
- eq/mg-N
- description :
- Ratio translating NH4 nitrification into Alk
r_alkden
(x, y)
float64
0.0002857
- long_name :
- Ratio translating NO3 denitrification into Alk
- units :
- eq/mg-N
- description :
- Ratio translating NO3 denitrification into Alk
r_alkba
(x, y)
float64
1.101e-05
- long_name :
- Ratio translating benthic algae growth into Alk if NH4 is the N source
- units :
- eq/mg-D
- description :
- Ratio translating benthic algae growth into Alk if NH4 is the N source
array([[1.10062893e-05]])
r_alkbn
(x, y)
float64
1.415e-05
- long_name :
- Ratio translating benthic algae growth into Alk if NO3 is the N source
- units :
- eq/mg-D
- description :
- Ratio translating benthic algae growth into Alk if NO3 is the N source
array([[1.41509434e-05]])
TwaterK
(year, x, y)
float64
nan 298.2
- long_name :
- Water Temperature K
- units :
- K
- description :
- Water temperature degree kelvin
array([[[ nan]],\n",
"\n",
- " [[298.16]]])
SOD_tc
(year, x, y)
float64
nan 0.5592
- long_name :
- Sediment Oxygen Demand at water temperature tc
- units :
- mg/L
- description :
- Sediment Oxygen Demand at water temperature tc
array([[[ nan]],\n",
+ " [[298.16]]])
SOD_tc
(year, x, y)
float64
nan 0.3145
- long_name :
- Sediment Oxygen Demand at water temperature tc
- units :
- mg/L
- description :
- Sediment Oxygen Demand at water temperature tc
array([[[ nan]],\n",
"\n",
- " [[0.55917905]]])
kah_20
(year, x, y)
float64
nan 1.0
- long_name :
- Hydraulic oxygen reaeration rate adjusted for hydraulics
- units :
- 1/d
- description :
- Hydraulic oxygen reaeration rate adjusted for hydraulic parameters according to XX lit
array([[[nan]],\n",
+ " [[0.31453821]]])
kah_20
(year, x, y)
float64
nan 1.0
- long_name :
- Hydraulic oxygen reaeration rate adjusted for hydraulics
- units :
- 1/d
- description :
- Hydraulic oxygen reaeration rate adjusted for hydraulic parameters according to XX lit
array([[[nan]],\n",
"\n",
- " [[ 1.]]])
kah_tc
(year, x, y)
float64
nan 1.258
- long_name :
- Hydraulic oxygen reaeration rate adjusted for temperature
- units :
- 1/d
- description :
- Hydraulic oxygen reaeration rate adjusted for temperature
array([[[ nan]],\n",
+ " [[ 1.]]])
kah_tc
(year, x, y)
float64
nan 1.258
- long_name :
- Hydraulic oxygen reaeration rate adjusted for temperature
- units :
- 1/d
- description :
- Hydraulic oxygen reaeration rate adjusted for temperature
array([[[ nan]],\n",
"\n",
- " [[1.25815286]]])
kaw_20
(year, x, y)
float64
nan 0.0
- long_name :
- Wind oxygen reaeration velocity adjusted for hydraulics
- units :
- m/d
- description :
- Wind oxygen reaeration velocity adjusted for hydraulic parameters according to XX lit
array([[[nan]],\n",
+ " [[1.25815286]]])
kaw_20
(year, x, y)
float64
nan 0.0
- long_name :
- Wind oxygen reaeration velocity adjusted for hydraulics
- units :
- m/d
- description :
- Wind oxygen reaeration velocity adjusted for hydraulic parameters according to XX lit
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
kaw_tc
(year, x, y)
float64
nan 0.0
- long_name :
- Wind oxygen reaeration velocity adjusted for temperature
- units :
- m/d
- description :
- Wind oxygen reaeration velocity adjusted for temperature
array([[[nan]],\n",
+ " [[ 0.]]])
kaw_tc
(year, x, y)
float64
nan 0.0
- long_name :
- Wind oxygen reaeration velocity adjusted for temperature
- units :
- m/d
- description :
- Wind oxygen reaeration velocity adjusted for temperature
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
ka_tc
(year, x, y)
float64
nan 1.258
- long_name :
- Oxygen reaeration rate
- units :
- 1/d
- description :
- Oxygen reaeration rate
array([[[ nan]],\n",
+ " [[ 0.]]])
ka_tc
(year, x, y)
float64
nan 1.258
- long_name :
- Oxygen reaeration rate
- units :
- 1/d
- description :
- Oxygen reaeration rate
array([[[ nan]],\n",
"\n",
- " [[1.25815286]]])
L
(year, x, y)
float64
nan 0.9407
- long_name :
- Light attenuation coefficient
- units :
- unitless
- description :
- Light attenuation coefficient
array([[[ nan]],\n",
+ " [[1.25815286]]])
L
(year, x, y)
float64
nan 0.9407
- long_name :
- Light attenuation coefficient
- units :
- unitless
- description :
- Light attenuation coefficient
array([[[ nan]],\n",
"\n",
- " [[0.94068852]]])
PAR
(year, x, y)
float64
nan 235.0
- long_name :
- surface light intensity
- units :
- W/m2
- description :
- surface light intensity
array([[[ nan]],\n",
+ " [[0.94068852]]])
PAR
(year, x, y)
float64
nan 235.0
- long_name :
- surface light intensity
- units :
- W/m2
- description :
- surface light intensity
array([[[ nan]],\n",
"\n",
- " [[235.]]])
fdp
(year, x, y)
float64
nan 1.0
- long_name :
- Fraction phosphorus dissolved
- units :
- Unitless
- description :
- Fraction phosphorus dissolved
array([[[nan]],\n",
+ " [[235.]]])
fdp
(year, x, y)
float64
nan 1.0
- long_name :
- Fraction phosphorus dissolved
- units :
- Unitless
- description :
- Fraction phosphorus dissolved
array([[[nan]],\n",
"\n",
- " [[ 1.]]])
rna
(year, x, y)
float64
nan 0.0072
- long_name :
- Algal N:Chla Ratio
- units :
- mg-N/ug Chla
- description :
- Algal N:Chla Ratio
array([[[ nan]],\n",
+ " [[ 1.]]])
rna
(year, x, y)
float64
nan 0.0072
- long_name :
- Algal N:Chla Ratio
- units :
- mg-N/ug Chla
- description :
- Algal N:Chla Ratio
array([[[ nan]],\n",
"\n",
- " [[0.0072]]])
rpa
(year, x, y)
float64
nan 0.001
- long_name :
- Algal P:Chla Ratio
- units :
- mg-P/ug Chla
- description :
- Algal P:Chla Ratio
array([[[ nan]],\n",
+ " [[0.0072]]])
rpa
(year, x, y)
float64
nan 0.001
- long_name :
- Algal P:Chla Ratio
- units :
- mg-P/ug Chla
- description :
- Algal P:Chla Ratio
array([[[ nan]],\n",
"\n",
- " [[0.001]]])
rca
(year, x, y)
float64
nan 0.04
- long_name :
- Algal C:Chla Ratio
- units :
- mg-C/ug Chla
- description :
- Algal C:Chla Ratio
array([[[ nan]],\n",
+ " [[0.001]]])
rca
(year, x, y)
float64
nan 0.04
- long_name :
- Algal C:Chla Ratio
- units :
- mg-C/ug Chla
- description :
- Algal C:Chla Ratio
array([[[ nan]],\n",
"\n",
- " [[0.04]]])
rda
(year, x, y)
float64
nan 0.1
- long_name :
- Algal D:Chla Ratio
- units :
- mg-D/ug Chla
- description :
- Algal D:Chla Ratio
array([[[nan]],\n",
+ " [[0.04]]])
rda
(year, x, y)
float64
nan 0.1
- long_name :
- Algal D:Chla Ratio
- units :
- mg-D/ug Chla
- description :
- Algal D:Chla Ratio
array([[[nan]],\n",
"\n",
- " [[0.1]]])
mu_max_tc
(year, x, y)
float64
nan 1.258
- long_name :
- Max Algae Growth with Temperature Correction
- units :
- 1/d
- description :
- Max Algae Growth with Temperature Correction
array([[[ nan]],\n",
+ " [[0.1]]])
mu_max_tc
(year, x, y)
float64
nan 1.258
- long_name :
- Max Algae Growth with Temperature Correction
- units :
- 1/d
- description :
- Max Algae Growth with Temperature Correction
array([[[ nan]],\n",
"\n",
- " [[1.25815286]]])
krp_tc
(year, x, y)
float64
nan 0.2516
- long_name :
- Algal Respiration Rate with Temperature Correction
- units :
- 1/d
- description :
- Algal Respiration Rate with Temperature Correction
array([[[ nan]],\n",
+ " [[1.25815286]]])
krp_tc
(year, x, y)
float64
nan 0.2516
- long_name :
- Algal Respiration Rate with Temperature Correction
- units :
- 1/d
- description :
- Algal Respiration Rate with Temperature Correction
array([[[ nan]],\n",
"\n",
- " [[0.25163057]]])
kdp_tc
(year, x, y)
float64
nan 0.1887
- long_name :
- Algal Mortality Rate with Temperature Correction
- units :
- 1/d
- description :
- Algal Mortality Rate with Temperature Correction
array([[[ nan]],\n",
+ " [[0.25163057]]])
kdp_tc
(year, x, y)
float64
nan 0.1887
- long_name :
- Algal Mortality Rate with Temperature Correction
- units :
- 1/d
- description :
- Algal Mortality Rate with Temperature Correction
array([[[ nan]],\n",
"\n",
- " [[0.18872293]]])
FL
(year, x, y)
float64
nan 0.9156
- long_name :
- Algal Light Limitation
- units :
- unitless
- description :
- Algal Light Limitation
array([[[ nan]],\n",
+ " [[0.18872293]]])
FL
(year, x, y)
float64
nan 0.9156
- long_name :
- Algal Light Limitation
- units :
- unitless
- description :
- Algal Light Limitation
array([[[ nan]],\n",
"\n",
- " [[0.91555869]]])
FN
(year, x, y)
float64
nan 0.9934
- long_name :
- Algal Nitrogen Limitation
- units :
- unitless
- description :
- Algal Nitrogen Limitation
array([[[ nan]],\n",
+ " [[0.91555869]]])
FN
(year, x, y)
float64
nan 0.9929
- long_name :
- Algal Nitrogen Limitation
- units :
- unitless
- description :
- Algal Nitrogen Limitation
array([[[ nan]],\n",
"\n",
- " [[0.99342105]]])
FP
(year, x, y)
float64
nan 0.9834
- long_name :
- Algal Phosphorus Limitation
- units :
- unitless
- description :
- Algal Phosphorus Limitation
array([[[ nan]],\n",
+ " [[0.99291157]]])
FP
(year, x, y)
float64
nan 0.9834
- long_name :
- Algal Phosphorus Limitation
- units :
- unitless
- description :
- Algal Phosphorus Limitation
array([[[ nan]],\n",
"\n",
- " [[0.9833795]]])
mu
(year, x, y)
float64
nan 1.125
- long_name :
- Algal Growth Rate
- units :
- 1/d
- description :
- Algal Growth Rate
array([[[ nan]],\n",
+ " [[0.9833795]]])
mu
(year, x, y)
float64
nan 1.125
- long_name :
- Algal Growth Rate
- units :
- 1/d
- description :
- Algal Growth Rate
array([[[ nan]],\n",
"\n",
- " [[1.125315]]])
ApGrowth
(year, x, y)
float64
nan 41.38
- long_name :
- Algal Growth
- units :
- ug-Chala/L/d
- description :
- Algal Growth
array([[[ nan]],\n",
+ " [[1.12473787]]])
ApGrowth
(year, x, y)
float64
nan 41.36
- long_name :
- Algal Growth
- units :
- ug-Chala/L/d
- description :
- Algal Growth
array([[[ nan]],\n",
"\n",
- " [[41.37783244]]])
ApRespiration
(year, x, y)
float64
nan 9.252
- long_name :
- Algal Respiration
- units :
- ug-Chala/L/d
- description :
- Algal Respiration
array([[[ nan]],\n",
+ " [[41.35661162]]])
ApRespiration
(year, x, y)
float64
nan 9.252
- long_name :
- Algal Respiration
- units :
- ug-Chala/L/d
- description :
- Algal Respiration
array([[[ nan]],\n",
"\n",
- " [[9.25245612]]])
ApDeath
(year, x, y)
float64
nan 6.939
- long_name :
- Algal Death
- units :
- ug-Chala/L/d
- description :
- Algal Death
array([[[ nan]],\n",
+ " [[9.25245612]]])
ApDeath
(year, x, y)
float64
nan 6.939
- long_name :
- Algal Death
- units :
- ug-Chala/L/d
- description :
- Algal Death
array([[[ nan]],\n",
"\n",
- " [[6.93934209]]])
ApSettling
(year, x, y)
float64
nan 3.677
- long_name :
- Algal Settling
- units :
- ug-Chala/L/d
- description :
- Algal Settling
array([[[ nan]],\n",
+ " [[6.93934209]]])
ApSettling
(year, x, y)
float64
nan 3.677
- long_name :
- Algal Settling
- units :
- ug-Chala/L/d
- description :
- Algal Settling
array([[[ nan]],\n",
"\n",
- " [[3.677]]])
dApdt
(year, x, y)
float64
nan 21.51
- long_name :
- Algal Biomass Concentration Change
- units :
- ug-Chala/L/d
- description :
- Algal Biomass Concentration Change
array([[[ nan]],\n",
+ " [[3.677]]])
dApdt
(year, x, y)
float64
nan 21.49
- long_name :
- Algal Biomass Concentration Change
- units :
- ug-Chala/L/d
- description :
- Algal Biomass Concentration Change
array([[[ nan]],\n",
"\n",
- " [[21.50903423]]])
mub_max_tc
(year, x, y)
float64
nan 0.5033
- long_name :
- Maximum benthic algal growth rate
- units :
- 1/d
- description :
- Maximum benthic algal growth rate with temperature correction
array([[[ nan]],\n",
+ " [[21.48781341]]])
mub_max_tc
(year, x, y)
float64
nan 0.5033
- long_name :
- Maximum benthic algal growth rate
- units :
- 1/d
- description :
- Maximum benthic algal growth rate with temperature correction
array([[[ nan]],\n",
"\n",
- " [[0.50326114]]])
krb_tc
(year, x, y)
float64
nan 0.2516
- long_name :
- Benthic algae respiration rate
- units :
- 1/d
- description :
- Benthic algae respiration rate with temperature correction
array([[[ nan]],\n",
+ " [[0.50326114]]])
krb_tc
(year, x, y)
float64
nan 0.2516
- long_name :
- Benthic algae respiration rate
- units :
- 1/d
- description :
- Benthic algae respiration rate with temperature correction
array([[[ nan]],\n",
"\n",
- " [[0.25163057]]])
kdb_tc
(year, x, y)
float64
nan 0.3774
- long_name :
- Benthic algae mortality rate
- units :
- 1/d
- description :
- Benthic algae mortality rate with temperature correction
array([[[ nan]],\n",
+ " [[0.25163057]]])
kdb_tc
(year, x, y)
float64
nan 0.3774
- long_name :
- Benthic algae mortality rate
- units :
- 1/d
- description :
- Benthic algae mortality rate with temperature correction
array([[[ nan]],\n",
"\n",
- " [[0.37744586]]])
rnb
(year, x, y)
float64
nan 0.072
- long_name :
- Ratio nitrogen to dry weight
- units :
- mg-N/mg-D
- description :
- Ratio benthic algae nitrogen to dry weight
array([[[ nan]],\n",
+ " [[0.37744586]]])
rnb
(year, x, y)
float64
nan 0.072
- long_name :
- Ratio nitrogen to dry weight
- units :
- mg-N/mg-D
- description :
- Ratio benthic algae nitrogen to dry weight
array([[[ nan]],\n",
"\n",
- " [[0.072]]])
rpb
(year, x, y)
float64
nan 0.01
- long_name :
- Ratio benthic algae phosphorus to dry weight
- units :
- mg-P/mg-D
- description :
- Ratio benthic algae phosphorus to dry weight
array([[[ nan]],\n",
+ " [[0.072]]])
rpb
(year, x, y)
float64
nan 0.01
- long_name :
- Ratio benthic algae phosphorus to dry weight
- units :
- mg-P/mg-D
- description :
- Ratio benthic algae phosphorus to dry weight
array([[[ nan]],\n",
"\n",
- " [[0.01]]])
rcb
(year, x, y)
float64
nan 0.4
- long_name :
- Ratio benthic algae carbon to dry weight
- units :
- mg-C/mg-D
- description :
- Ratio benthic algae carbon to dry weight
array([[[nan]],\n",
+ " [[0.01]]])
rcb
(year, x, y)
float64
nan 0.4
- long_name :
- Ratio benthic algae carbon to dry weight
- units :
- mg-C/mg-D
- description :
- Ratio benthic algae carbon to dry weight
array([[[nan]],\n",
"\n",
- " [[0.4]]])
rab
(year, x, y)
float64
nan 50.0
- long_name :
- Ratio benthic algae chlorophyll-a to dry weight
- units :
- ug-Chala-a/mg-D
- description :
- Ratio benthic algae chlorophyll-a to dry weight
array([[[nan]],\n",
+ " [[0.4]]])
rab
(year, x, y)
float64
nan 50.0
- long_name :
- Ratio benthic algae chlorophyll-a to dry weight
- units :
- ug-Chala-a/mg-D
- description :
- Ratio benthic algae chlorophyll-a to dry weight
array([[[nan]],\n",
"\n",
- " [[50.]]])
FLb
(year, x, y)
float64
nan 0.8514
- long_name :
- Benthic algal light limitation factor
- units :
- unitless
- description :
- Benthic algal light limitation factor
array([[[ nan]],\n",
+ " [[50.]]])
FLb
(year, x, y)
float64
nan 0.8514
- long_name :
- Benthic algal light limitation factor
- units :
- unitless
- description :
- Benthic algal light limitation factor
array([[[ nan]],\n",
"\n",
- " [[0.85144348]]])
FNb
(year, x, y)
float64
nan 0.9603
- long_name :
- Benthic algal nitrogen limitation factor
- units :
- unitless
- description :
- Benthic algal nitrogen limitation factor
array([[[ nan]],\n",
+ " [[0.85144348]]])
FNb
(year, x, y)
float64
nan 0.9573
- long_name :
- Benthic algal nitrogen limitation factor
- units :
- unitless
- description :
- Benthic algal nitrogen limitation factor
array([[[ nan]],\n",
"\n",
- " [[0.96025437]]])
FPb
(year, x, y)
float64
nan 0.3622
- long_name :
- Benthic algal phosphorous limitation factor
- units :
- unitless
- description :
- Benthic algal phosphorous limitation factor
array([[[ nan]],\n",
+ " [[0.95728686]]])
FPb
(year, x, y)
float64
nan 0.3622
- long_name :
- Benthic algal phosphorous limitation factor
- units :
- unitless
- description :
- Benthic algal phosphorous limitation factor
array([[[ nan]],\n",
"\n",
- " [[0.3622449]]])
FSb
(year, x, y)
float64
nan 0.2941
- long_name :
- Benthic algal density attenuation
- units :
- unitless
- description :
- Benthic algal density attenuation
array([[[ nan]],\n",
+ " [[0.3622449]]])
FSb
(year, x, y)
float64
nan 0.2941
- long_name :
- Benthic algal density attenuation
- units :
- unitless
- description :
- Benthic algal density attenuation
array([[[ nan]],\n",
"\n",
- " [[0.29411765]]])
mub
(year, x, y)
float64
nan 0.04384
- long_name :
- Benthic algae specific growth rate
- units :
- 1/d
- description :
- Benthic algae specific growth rate
array([[[ nan]],\n",
+ " [[0.29411765]]])
mub
(year, x, y)
float64
nan 0.0437
- long_name :
- Benthic algae specific growth rate
- units :
- 1/d
- description :
- Benthic algae specific growth rate
array([[[ nan]],\n",
"\n",
- " [[0.04383882]]])
AbGrowth
(year, x, y)
float64
nan 1.052
- long_name :
- Benthic algae growth rate
- units :
- g/m^2/d
- description :
- Benthic algae growth rate
array([[[ nan]],\n",
+ " [[0.04370335]]])
AbGrowth
(year, x, y)
float64
nan 1.049
- long_name :
- Benthic algae growth rate
- units :
- g/m^2/d
- description :
- Benthic algae growth rate
array([[[ nan]],\n",
"\n",
- " [[1.05213173]]])
AbRespiration
(year, x, y)
float64
nan 6.039
- long_name :
- Benthic algae respiration rate
- units :
- g/m^2/d
- description :
- Benthic algae respiration rate
array([[[ nan]],\n",
+ " [[1.04888029]]])
AbRespiration
(year, x, y)
float64
nan 6.039
- long_name :
- Benthic algae respiration rate
- units :
- g/m^2/d
- description :
- Benthic algae respiration rate
array([[[ nan]],\n",
"\n",
- " [[6.03913372]]])
AbDeath
(year, x, y)
float64
nan 9.059
- long_name :
- Benthic algae death rate
- units :
- g/m^2/d
- description :
- Benthic algae death rate
array([[[ nan]],\n",
+ " [[6.03913372]]])
AbDeath
(year, x, y)
float64
nan 9.059
- long_name :
- Benthic algae death rate
- units :
- g/m^2/d
- description :
- Benthic algae death rate
array([[[ nan]],\n",
"\n",
- " [[9.05870058]]])
dAbdt
(year, x, y)
float64
nan -14.05
- long_name :
- Change in benthic algae concentration
- units :
- g/m^2/d
- description :
- Change in benthic algae concentration
array([[[ nan]],\n",
+ " [[9.05870058]]])
dAbdt
(year, x, y)
float64
nan -14.05
- long_name :
- Change in benthic algae concentration
- units :
- g/m^2/d
- description :
- Change in benthic algae concentration
array([[[ nan]],\n",
"\n",
- " [[-14.04570256]]])
Chlb
(year, x, y)
float64
nan 1.2e+03
- long_name :
- Chlorophyll-a concentration
- units :
- mg-Chla/m^2
- description :
- Chlorophyll-a concentration
array([[[ nan]],\n",
+ " [[-14.048954]]])
Chlb
(year, x, y)
float64
nan 1.2e+03
- long_name :
- Chlorophyll-a concentration
- units :
- mg-Chla/m^2
- description :
- Chlorophyll-a concentration
array([[[ nan]],\n",
"\n",
- " [[1200.]]])
knit_tc
(year, x, y)
float64
nan 0.149
- long_name :
- Nitrification rate ammonia decay
- units :
- 1/d
- description :
- Nitrification rate ammonia decay temperature correction
array([[[ nan]],\n",
+ " [[1200.]]])
knit_tc
(year, x, y)
float64
nan 0.1258
- long_name :
- Nitrification rate ammonia decay
- units :
- 1/d
- description :
- Nitrification rate ammonia decay temperature correction
array([[[ nan]],\n",
"\n",
- " [[0.14898491]]])
rnh4_tc
(year, x, y)
float64
nan 0.0
- long_name :
- Sediment release rate of NH4
- units :
- 1/d
- description :
- Sediment release rate of NH4 temperature correction
array([[[nan]],\n",
+ " [[0.12581529]]])
rnh4_tc
(year, x, y)
float64
nan 0.0
- long_name :
- Sediment release rate of NH4
- units :
- 1/d
- description :
- Sediment release rate of NH4 temperature correction
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
vno3_tc
(year, x, y)
float64
nan 0.0
- long_name :
- Sediment denitrification velocity
- units :
- m/d
- description :
- Sediment denitrification velocity temperature correction
array([[[nan]],\n",
+ " [[ 0.]]])
vno3_tc
(year, x, y)
float64
nan 0.0
- long_name :
- Sediment denitrification velocity
- units :
- m/d
- description :
- Sediment denitrification velocity temperature correction
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
kon_tc
(year, x, y)
float64
nan 0.1429
- long_name :
- Decay rate of OrgN to NH4
- units :
- 1/d
- description :
- Decay rate of OrgN to NH4 temperature correction
array([[[ nan]],\n",
+ " [[ 0.]]])
kon_tc
(year, x, y)
float64
nan 0.1429
- long_name :
- Decay rate of OrgN to NH4
- units :
- 1/d
- description :
- Decay rate of OrgN to NH4 temperature correction
array([[[ nan]],\n",
"\n",
- " [[0.14289644]]])
kdnit_tc
(year, x, y)
float64
nan 0.002492
- long_name :
- Denitrification rate
- units :
- 1/d
- description :
- Denitrification rate temperature correction
array([[[ nan]],\n",
+ " [[0.14289644]]])
kdnit_tc
(year, x, y)
float64
nan 0.002516
- long_name :
- Denitrification rate
- units :
- 1/d
- description :
- Denitrification rate temperature correction
array([[[ nan]],\n",
"\n",
- " [[0.00249236]]])
ApUptakeFr_NH4
(year, x, y)
float64
nan 0.08278
- long_name :
- Fraction of actual floating algal uptake from ammonia pool
- units :
- unitless
- description :
- Fraction of actual floating algal uptake from ammonia pool
array([[[ nan]],\n",
+ " [[0.00251631]]])
ApUptakeFr_NH4
(year, x, y)
float64
nan 0.01124
- long_name :
- Fraction of actual floating algal uptake from ammonia pool
- units :
- unitless
- description :
- Fraction of actual floating algal uptake from ammonia pool
array([[[ nan]],\n",
"\n",
- " [[0.08278146]]])
ApUptakeFr_NO3
(year, x, y)
float64
nan 0.9172
- long_name :
- Fraction of actual floating algal uptake from nitrate pool
- units :
- unitless
- description :
- Fraction of actual floating algal uptake from nitrate pool
array([[[ nan]],\n",
+ " [[0.01124398]]])
ApUptakeFr_NO3
(year, x, y)
float64
nan 0.9888
- long_name :
- Fraction of actual floating algal uptake from nitrate pool
- units :
- unitless
- description :
- Fraction of actual floating algal uptake from nitrate pool
array([[[ nan]],\n",
"\n",
- " [[0.91721854]]])
AbUptakeFr_NH4
(year, x, y)
float64
nan 0.08278
- long_name :
- Fraction of actual benthic algal uptake from ammonia pool
- units :
- unitless
- description :
- Fraction of actual benthic algal uptake from ammonia pool
array([[[ nan]],\n",
+ " [[0.98875602]]])
AbUptakeFr_NH4
(year, x, y)
float64
nan 0.01124
- long_name :
- Fraction of actual benthic algal uptake from ammonia pool
- units :
- unitless
- description :
- Fraction of actual benthic algal uptake from ammonia pool
array([[[ nan]],\n",
"\n",
- " [[0.08278146]]])
AbUptakeFr_NO3
(year, x, y)
float64
nan 0.9172
- long_name :
- Fraction of actual benthic algal uptake from nitrate pool
- units :
- unitless
- description :
- Fraction of actual benthic algal uptake from nitrate pool
array([[[ nan]],\n",
+ " [[0.01124398]]])
AbUptakeFr_NO3
(year, x, y)
float64
nan 0.9888
- long_name :
- Fraction of actual benthic algal uptake from nitrate pool
- units :
- unitless
- description :
- Fraction of actual benthic algal uptake from nitrate pool
array([[[ nan]],\n",
"\n",
- " [[0.91721854]]])
ApDeath_OrgN
(year, x, y)
float64
nan 0.04996
- long_name :
- Algae -> OrgN
- units :
- mg-N/L/d
- description :
- Algae conversion to Organic nitrogen
array([[[ nan]],\n",
+ " [[0.98875602]]])
ApDeath_OrgN
(year, x, y)
float64
nan 0.04996
- long_name :
- Algae -> OrgN
- units :
- mg-N/L/d
- description :
- Algae conversion to Organic nitrogen
array([[[ nan]],\n",
"\n",
- " [[0.04996326]]])
AbDeath_OrgN
(year, x, y)
float64
nan 0.3522
- long_name :
- Benthic Algae -> OrgN
- units :
- mg-N/L/d
- description :
- Benthic algae conversion to Organic nitrogen
array([[[ nan]],\n",
+ " [[0.04996326]]])
AbDeath_OrgN
(year, x, y)
float64
nan 0.3522
- long_name :
- Benthic Algae -> OrgN
- units :
- mg-N/L/d
- description :
- Benthic algae conversion to Organic nitrogen
array([[[ nan]],\n",
"\n",
- " [[0.35220228]]])
OrgN_NH4_Decay
(year, x, y)
float64
nan 0.0
- long_name :
- OrgN -> NH4
- units :
- mg-N/L/d
- description :
- Organic nitrogen to ammonium decay
array([[[nan]],\n",
+ " [[0.35220228]]])
OrgN_NH4_Decay
(year, x, y)
float64
nan 0.0
- long_name :
- OrgN -> NH4
- units :
- mg-N/L/d
- description :
- Organic nitrogen to ammonium decay
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
OrgN_Settling
(year, x, y)
float64
nan 0.01151
- long_name :
- OrgN -> bed
- units :
- mg-N/L/d
- description :
- Organic nitrogen to bed settling
array([[[ nan]],\n",
+ " [[ 0.]]])
OrgN_Settling
(year, x, y)
float64
nan 0.01151
- long_name :
- OrgN -> bed
- units :
- mg-N/L/d
- description :
- Organic nitrogen to bed settling
array([[[ nan]],\n",
"\n",
- " [[0.01150667]]])
dOrgNdt
(year, x, y)
float64
nan 0.0
- long_name :
- Change in organic nitrogen
- units :
- mg-N/L
- description :
- Change in organic nitrogen
array([[[nan]],\n",
+ " [[0.01150667]]])
dOrgNdt
(year, x, y)
float64
nan 0.0
- long_name :
- Change in organic nitrogen
- units :
- mg-N/L
- description :
- Change in organic nitrogen
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
NH4_Nitrification
(year, x, y)
float64
nan 0.07449
- long_name :
- NH4 -> NO3 Nitrification
- units :
- mg-N/L/d
- description :
- NH4 Nitrification
array([[[ nan]],\n",
+ " [[ 0.]]])
NH4_Nitrification
(year, x, y)
float64
nan 0.003576
- long_name :
- NH4 -> NO3 Nitrification
- units :
- mg-N/L/d
- description :
- NH4 Nitrification
array([[[ nan]],\n",
"\n",
- " [[0.07449246]]])
NH4fromBed
(year, x, y)
float64
nan 0.0
- long_name :
- bed -> NH4 (diffusion)
- units :
- mg-N/L/d
- description :
- Sediment bed release of NH4
array([[[nan]],\n",
+ " [[0.00357628]]])
NH4fromBed
(year, x, y)
float64
nan 0.0
- long_name :
- bed -> NH4 (diffusion)
- units :
- mg-N/L/d
- description :
- Sediment bed release of NH4
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
NH4_ApRespiration
(year, x, y)
float64
nan 0.06662
- long_name :
- Floating algae -> NH4
- units :
- mg-N/L/d
- description :
- Floating algae to NH4
array([[[ nan]],\n",
+ " [[ 0.]]])
NH4_ApRespiration
(year, x, y)
float64
nan 0.06662
- long_name :
- Floating algae -> NH4
- units :
- mg-N/L/d
- description :
- Floating algae to NH4
array([[[ nan]],\n",
"\n",
- " [[0.06661768]]])
NH4_ApGrowth
(year, x, y)
float64
nan 0.02466
- long_name :
- NH4 -> Floating algae
- units :
- mg-N/L/d
- description :
- NH4 uptake to algae
array([[[ nan]],\n",
+ " [[0.06661768]]])
NH4_ApGrowth
(year, x, y)
float64
nan 0.003348
- long_name :
- NH4 -> Floating algae
- units :
- mg-N/L/d
- description :
- NH4 uptake to algae
array([[[ nan]],\n",
"\n",
- " [[0.02466228]]])
NH4_AbRespiration
(year, x, y)
float64
nan 0.4348
- long_name :
- Benthic algae -> NH4
- units :
- mg-N/L/d
- description :
- Benthic algae release of NH4
array([[[ nan]],\n",
+ " [[0.00334809]]])
NH4_AbRespiration
(year, x, y)
float64
nan 0.4348
- long_name :
- Benthic algae -> NH4
- units :
- mg-N/L/d
- description :
- Benthic algae release of NH4
array([[[ nan]],\n",
"\n",
- " [[0.43481763]]])
NH4_AbGrowth
(year, x, y)
float64
nan 0.003763
- long_name :
- NH4 -> Benthic Algae
- units :
- mg-N/L/d
- description :
- Benthic algae uptake of NH4
array([[[ nan]],\n",
+ " [[0.43481763]]])
NH4_AbGrowth
(year, x, y)
float64
nan 0.0005095
- long_name :
- NH4 -> Benthic Algae
- units :
- mg-N/L/d
- description :
- Benthic algae uptake of NH4
array([[[ nan]],\n",
"\n",
- " [[0.00376259]]])
dNH4dt
(year, x, y)
float64
nan 0.3985
- long_name :
- Change in ammonium concentration
- units :
- mg-N/L
- description :
- Change in ammonium concentration
array([[[ nan]],\n",
+ " [[0.00050948]]])
dNH4dt
(year, x, y)
float64
nan 0.494
- long_name :
- Change in ammonium concentration
- units :
- mg-N/L
- description :
- Change in ammonium concentration
array([[[ nan]],\n",
"\n",
- " [[0.39851798]]])
NO3_Denit
(year, x, y)
float64
nan 0.0001705
- long_name :
- NO3 -> Loss
- units :
- mg-N/L/d
- description :
- NO3 loss from denitrification
array([[[ nan]],\n",
+ " [[0.49400145]]])
NO3_Denit
(year, x, y)
float64
nan 0.001267
- long_name :
- NO3 -> Loss
- units :
- mg-N/L/d
- description :
- NO3 loss from denitrification
array([[[ nan]],\n",
"\n",
- " [[0.00017047]]])
NO3_BedDenit
(year, x, y)
float64
nan 0.0
- long_name :
- Sediment denitrification
- units :
- mg-N/L/d
- description :
- Sediment denitrification
array([[[nan]],\n",
+ " [[0.0012673]]])
NO3_BedDenit
(year, x, y)
float64
nan 0.0
- long_name :
- Sediment denitrification
- units :
- mg-N/L/d
- description :
- Sediment denitrification
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
NO3_ApGrowth
(year, x, y)
float64
nan 0.2733
- long_name :
- NO3 -> Floating algae
- units :
- mg-N/L/d
- description :
- NO3 uptake to floating algae
array([[[ nan]],\n",
+ " [[ 0.]]])
NO3_ApGrowth
(year, x, y)
float64
nan 0.2944
- long_name :
- NO3 -> Floating algae
- units :
- mg-N/L/d
- description :
- NO3 uptake to floating algae
array([[[ nan]],\n",
"\n",
- " [[0.27325811]]])
NO3_AbGrowth
(year, x, y)
float64
nan 0.04169
- long_name :
- NO3 -> Benthic algae
- units :
- mg-N/L/d
- description :
- NO3 uptake to benthic algae
array([[[ nan]],\n",
+ " [[0.29441951]]])
NO3_AbGrowth
(year, x, y)
float64
nan 0.0448
- long_name :
- NO3 -> Benthic algae
- units :
- mg-N/L/d
- description :
- NO3 uptake to benthic algae
array([[[ nan]],\n",
"\n",
- " [[0.0416895]]])
dNO3dt
(year, x, y)
float64
nan -0.2406
- long_name :
- Change in nitrate concentration
- units :
- mg-N/L
- description :
- Change in nitrate concentration
array([[[ nan]],\n",
+ " [[0.04480215]]])
dNO3dt
(year, x, y)
float64
nan -0.3369
- long_name :
- Change in nitrate concentration
- units :
- mg-N/L
- description :
- Change in nitrate concentration
array([[[ nan]],\n",
"\n",
- " [[-0.24062562]]])
DIN
(year, x, y)
float64
nan 6.04
- long_name :
- Dissolve inorganic nitrogen
- units :
- mg-N/L
- description :
- Dissolve inorganic nitrogen
array([[[ nan]],\n",
+ " [[-0.33691268]]])
DIN
(year, x, y)
float64
nan 5.603
- long_name :
- Dissolve inorganic nitrogen
- units :
- mg-N/L
- description :
- Dissolve inorganic nitrogen
array([[[ nan]],\n",
"\n",
- " [[6.04]]])
TON
(year, x, y)
float64
nan 0.2647
- long_name :
- Total organic nitrogen
- units :
- mg-N/L
- description :
- Total organic nitrogen
array([[[ nan]],\n",
+ " [[5.603]]])
TON
(year, x, y)
float64
nan 0.2647
- long_name :
- Total organic nitrogen
- units :
- mg-N/L
- description :
- Total organic nitrogen
array([[[ nan]],\n",
"\n",
- " [[0.264744]]])
TKN
(year, x, y)
float64
nan 0.7647
- long_name :
- Total kjeldhl nitrogen
- units :
- mg-N/L
- description :
- Total kjeldhl nitrogen
array([[[ nan]],\n",
+ " [[0.264744]]])
TKN
(year, x, y)
float64
nan 0.3277
- long_name :
- Total kjeldhl nitrogen
- units :
- mg-N/L
- description :
- Total kjeldhl nitrogen
array([[[ nan]],\n",
"\n",
- " [[0.764744]]])
TN
(year, x, y)
float64
nan 6.305
- long_name :
- Total nitrogen
- units :
- mg-N/L
- description :
- Total nitrogen
array([[[ nan]],\n",
+ " [[0.327744]]])
TN
(year, x, y)
float64
nan 5.868
- long_name :
- Total nitrogen
- units :
- mg-N/L
- description :
- Total nitrogen
array([[[ nan]],\n",
"\n",
- " [[6.304744]]])
NitrificationInhibition
(year, x, y)
float64
nan 1.0
- long_name :
- Nitrification Inhibitation (limits nitrification under low DO conditions)
- units :
- unitless
- description :
- Nitrification Inhibitation (limits nitrification under low DO conditions)
array([[[nan]],\n",
+ " [[5.867744]]])
NitrificationInhibition
(year, x, y)
float64
nan 0.4512
- long_name :
- Nitrification Inhibitation (limits nitrification under low DO conditions)
- units :
- unitless
- description :
- Nitrification Inhibitation (limits nitrification under low DO conditions)
array([[[ nan]],\n",
"\n",
- " [[ 1.]]])
kop_tc
(year, x, y)
float64
nan 0.1258
- long_name :
- Decay rate of organic P to DIP
- units :
- 1/d
- description :
- Decay rate of organic P to DIP temperature correction
array([[[ nan]],\n",
+ " [[0.45118836]]])
kop_tc
(year, x, y)
float64
nan 0.1258
- long_name :
- Decay rate of organic P to DIP
- units :
- 1/d
- description :
- Decay rate of organic P to DIP temperature correction
array([[[ nan]],\n",
"\n",
- " [[0.12581529]]])
rpo4_tc
(year, x, y)
float64
nan 0.0
- long_name :
- Benthic sediment release rate of DIP
- units :
- g-P/m2/d
- description :
- Benthic sediment release rate of DIP temperature correction
array([[[nan]],\n",
+ " [[0.12581529]]])
rpo4_tc
(year, x, y)
float64
nan 0.0
- long_name :
- Benthic sediment release rate of DIP
- units :
- g-P/m2/d
- description :
- Benthic sediment release rate of DIP temperature correction
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
OrgP_DIP_decay
(year, x, y)
float64
nan 0.0
- long_name :
- Organic phosphorus decay to dissolve inorganic phosphorus
- units :
- mg-P/L/d
- description :
- Organic phosphorus decay to dissolve inorganic phosphorus
array([[[nan]],\n",
+ " [[ 0.]]])
OrgP_DIP_decay
(year, x, y)
float64
nan 0.0
- long_name :
- Organic phosphorus decay to dissolve inorganic phosphorus
- units :
- mg-P/L/d
- description :
- Organic phosphorus decay to dissolve inorganic phosphorus
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
OrgP_Settling
(year, x, y)
float64
nan 0.0016
- long_name :
- Organic phosphorus settling to sediment
- units :
- mg-P/L/d
- description :
- Organic phosphorus settling to sediment
array([[[ nan]],\n",
+ " [[ 0.]]])
OrgP_Settling
(year, x, y)
float64
nan 0.0016
- long_name :
- Organic phosphorus settling to sediment
- units :
- mg-P/L/d
- description :
- Organic phosphorus settling to sediment
array([[[ nan]],\n",
"\n",
- " [[0.0016]]])
ApDeath_OrgP
(year, x, y)
float64
nan 0.006939
- long_name :
- Algal death turning into organic phosphorus
- units :
- mg-P/L/d
- description :
- Algal death turning into organic phosphorus
array([[[ nan]],\n",
+ " [[0.0016]]])
ApDeath_OrgP
(year, x, y)
float64
nan 0.006939
- long_name :
- Algal death turning into organic phosphorus
- units :
- mg-P/L/d
- description :
- Algal death turning into organic phosphorus
array([[[ nan]],\n",
"\n",
- " [[0.00693934]]])
AbDeath_OrgP
(year, x, y)
float64
nan 0.04892
- long_name :
- Benthic algal death turning into organic phosphorus
- units :
- mg-P/L/d
- description :
- Benthic algal death turning into organic phosphorus
array([[[ nan]],\n",
+ " [[0.00693934]]])
AbDeath_OrgP
(year, x, y)
float64
nan 0.04892
- long_name :
- Benthic algal death turning into organic phosphorus
- units :
- mg-P/L/d
- description :
- Benthic algal death turning into organic phosphorus
array([[[ nan]],\n",
"\n",
- " [[0.04891698]]])
dOrgPdt
(year, x, y)
float64
nan 0.0
- long_name :
- Change in organic phosphorus concentration
- units :
- mg-P/L/d
- description :
- Change in organic phosphorus concentration
array([[[nan]],\n",
+ " [[0.04891698]]])
dOrgPdt
(year, x, y)
float64
nan 0.0
- long_name :
- Change in organic phosphorus concentration
- units :
- mg-P/L/d
- description :
- Change in organic phosphorus concentration
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
DIPfromBed
(year, x, y)
float64
nan 0.0
- long_name :
- Dissolved Organic Phosphorus coming from Bed calculated without SedFlux modules
- units :
- mg-P/L/d
- description :
- Dissolved Organic Phosphorus coming from Bed calculated without SedFlux modules
array([[[nan]],\n",
+ " [[ 0.]]])
DIPfromBed
(year, x, y)
float64
nan 0.0
- long_name :
- Dissolved Organic Phosphorus coming from Bed calculated without SedFlux modules
- units :
- mg-P/L/d
- description :
- Dissolved Organic Phosphorus coming from Bed calculated without SedFlux modules
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
TIP_Settling
(year, x, y)
float64
nan 0.0
- long_name :
- Total inorganic phosphorus settling from water to bed
- units :
- mg-P/L/d
- description :
- Total inorganic phosphorus settling from water to bed
array([[[nan]],\n",
+ " [[ 0.]]])
TIP_Settling
(year, x, y)
float64
nan 0.0
- long_name :
- Total inorganic phosphorus settling from water to bed
- units :
- mg-P/L/d
- description :
- Total inorganic phosphorus settling from water to bed
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
DIP_ApRespiration
(year, x, y)
float64
nan 0.009252
- long_name :
- Dissolved inorganic phosphorus released from algal respiration
- units :
- mg-P/L/d
- description :
- Dissolved inorganic phosphorus released from algal respiration
array([[[ nan]],\n",
+ " [[ 0.]]])
DIP_ApRespiration
(year, x, y)
float64
nan 0.009252
- long_name :
- Dissolved inorganic phosphorus released from algal respiration
- units :
- mg-P/L/d
- description :
- Dissolved inorganic phosphorus released from algal respiration
array([[[ nan]],\n",
"\n",
- " [[0.00925246]]])
DIP_ApGrowth
(year, x, y)
float64
nan 0.04138
- long_name :
- Dissolved inorganic phosphorus consumed for algal growth
- units :
- mg-P/L/d
- description :
- Dissolved inorganic phosphorus consumed for algal growth
array([[[ nan]],\n",
+ " [[0.00925246]]])
DIP_ApGrowth
(year, x, y)
float64
nan 0.04136
- long_name :
- Dissolved inorganic phosphorus consumed for algal growth
- units :
- mg-P/L/d
- description :
- Dissolved inorganic phosphorus consumed for algal growth
array([[[ nan]],\n",
"\n",
- " [[0.04137783]]])
DIP_AbRespiration
(year, x, y)
float64
nan 0.06039
- long_name :
- Dissolved inorganic phosphorus released for benthic algal respiration
- units :
- mg-P/L/d
- description :
- Dissolved inorganic phosphorus released for benthic algal respiration
array([[[ nan]],\n",
+ " [[0.04135661]]])
DIP_AbRespiration
(year, x, y)
float64
nan 0.06039
- long_name :
- Dissolved inorganic phosphorus released for benthic algal respiration
- units :
- mg-P/L/d
- description :
- Dissolved inorganic phosphorus released for benthic algal respiration
array([[[ nan]],\n",
"\n",
- " [[0.06039134]]])
DIP_AbGrowth
(year, x, y)
float64
nan 0.006313
- long_name :
- Dissolved inorganic phosphorus consumed for benthic algal growth
- units :
- mg-P/L/d
- description :
- Dissolved inorganic phosphorus consumed for benthic algal growth
array([[[ nan]],\n",
+ " [[0.06039134]]])
DIP_AbGrowth
(year, x, y)
float64
nan 0.006293
- long_name :
- Dissolved inorganic phosphorus consumed for benthic algal growth
- units :
- mg-P/L/d
- description :
- Dissolved inorganic phosphorus consumed for benthic algal growth
array([[[ nan]],\n",
"\n",
- " [[0.00631279]]])
dTIPdt
(year, x, y)
float64
nan 0.02195
- long_name :
- Change in dissolved inorganic phosphorus water concentration
- units :
- mg-P/L/d
- description :
- Change in dissolved inorganic phosphorus water concentration
array([[[ nan]],\n",
+ " [[0.00629328]]])
dTIPdt
(year, x, y)
float64
nan 0.02199
- long_name :
- Change in dissolved inorganic phosphorus water concentration
- units :
- mg-P/L/d
- description :
- Change in dissolved inorganic phosphorus water concentration
array([[[ nan]],\n",
"\n",
- " [[0.02195317]]])
TOP
(year, x, y)
float64
nan 0.03677
- long_name :
- Total organic phosphorus
- units :
- mg-P/L
- description :
- Total organic phosphorus
array([[[ nan]],\n",
+ " [[0.0219939]]])
TOP
(year, x, y)
float64
nan 0.03677
- long_name :
- Total organic phosphorus
- units :
- mg-P/L
- description :
- Total organic phosphorus
array([[[ nan]],\n",
"\n",
- " [[0.03677]]])
TP
(year, x, y)
float64
nan 0.1078
- long_name :
- Total phosphorus
- units :
- mg-P/L
- description :
- Total phosphorus
array([[[ nan]],\n",
+ " [[0.03677]]])
TP
(year, x, y)
float64
nan 0.1078
- long_name :
- Total phosphorus
- units :
- mg-P/L
- description :
- Total phosphorus
array([[[ nan]],\n",
"\n",
- " [[0.10777]]])
DIP
(year, x, y)
float64
nan 0.071
- long_name :
- Dissolve inorganic phosphorus
- units :
- mg-P/L
- description :
- Dissolve inorganic phosphorus
array([[[ nan]],\n",
+ " [[0.10777]]])
DIP
(year, x, y)
float64
nan 0.071
- long_name :
- Dissolve inorganic phosphorus
- units :
- mg-P/L
- description :
- Dissolve inorganic phosphorus
array([[[ nan]],\n",
"\n",
- " [[0.071]]])
kpom_tc
(year, x, y)
float64
nan 0.1258
- long_name :
- POM dissolution rate adjusted for temperature
- units :
- 1/d
- description :
- POM dissolution rate adjusted for temperature
array([[[ nan]],\n",
+ " [[0.071]]])
kpom_tc
(year, x, y)
float64
nan 0.1258
- long_name :
- POM dissolution rate adjusted for temperature
- units :
- 1/d
- description :
- POM dissolution rate adjusted for temperature
array([[[ nan]],\n",
"\n",
- " [[0.12581529]]])
POM_algal_settling
(year, x, y)
float64
nan 0.3677
- long_name :
- POM concentration change due to algal settling
- units :
- mg/L/d
- description :
- POM concentration change due to algal settling
array([[[ nan]],\n",
+ " [[0.12581529]]])
POM_algal_settling
(year, x, y)
float64
nan 0.3677
- long_name :
- POM concentration change due to algal settling
- units :
- mg/L/d
- description :
- POM concentration change due to algal settling
array([[[ nan]],\n",
"\n",
- " [[0.3677]]])
POM_dissolution
(year, x, y)
float64
nan 0.1258
- long_name :
- POM concentration change due to dissolution
- units :
- mg/L/d
- description :
- POM concentration change due to dissolution
array([[[ nan]],\n",
+ " [[0.3677]]])
POM_dissolution
(year, x, y)
float64
nan 0.1258
- long_name :
- POM concentration change due to dissolution
- units :
- mg/L/d
- description :
- POM concentration change due to dissolution
array([[[ nan]],\n",
"\n",
- " [[0.12581529]]])
POM_POC_settling
(year, x, y)
float64
nan 0.0
- long_name :
- POM concentration change due to POC settling
- units :
- mg/L/d
- description :
- POM concentration change due to POC settling
array([[[nan]],\n",
+ " [[0.12581529]]])
POM_POC_settling
(year, x, y)
float64
nan 0.0
- long_name :
- POM concentration change due to POC settling
- units :
- mg/L/d
- description :
- POM concentration change due to POC settling
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
POM_benthic_algae_mortality
(year, x, y)
float64
nan 0.5435
- long_name :
- POM concentration change due to algae mortality
- units :
- mg/L/d
- description :
- POM concentration change due to algae mortality
array([[[ nan]],\n",
+ " [[ 0.]]])
POM_benthic_algae_mortality
(year, x, y)
float64
nan 0.5435
- long_name :
- POM concentration change due to algae mortality
- units :
- mg/L/d
- description :
- POM concentration change due to algae mortality
array([[[ nan]],\n",
"\n",
- " [[0.54352203]]])
POM_burial
(year, x, y)
float64
nan 0.006667
- long_name :
- POM concentration change due to burial
- units :
- mg/L/d
- description :
- POM concentration change due to burial
array([[[ nan]],\n",
+ " [[0.54352203]]])
POM_burial
(year, x, y)
float64
nan 0.006667
- long_name :
- POM concentration change due to burial
- units :
- mg/L/d
- description :
- POM concentration change due to burial
array([[[ nan]],\n",
"\n",
- " [[0.00666667]]])
dPOMdt
(year, x, y)
float64
nan 0.7787
- long_name :
- Change in POM concentration for one timestep
- units :
- mg/L/d
- description :
- Change in POM concentration for one timestep
array([[[ nan]],\n",
+ " [[0.00666667]]])
dPOMdt
(year, x, y)
float64
nan 0.7787
- long_name :
- Change in POM concentration for one timestep
- units :
- mg/L/d
- description :
- Change in POM concentration for one timestep
array([[[ nan]],\n",
"\n",
- " [[0.77874008]]])
kbod_tc
(year, x, y)
float64
nan 0.151
- long_name :
- Temperature adjusted oxidation rate
- units :
- 1/d
- description :
- Temperature adjusted oxidation rate
array([[[ nan]],\n",
+ " [[0.77874008]]])
kbod_tc
(year, x, y)
float64
nan 0.151
- long_name :
- Temperature adjusted oxidation rate
- units :
- 1/d
- description :
- Temperature adjusted oxidation rate
array([[[ nan]],\n",
"\n",
- " [[0.15097834]]])
ksbod_tc
(year, x, y)
float64
nan 0.0
- long_name :
- Temperature adjusted sedimentation rate
- units :
- m/d
- description :
- Temperature adjusted sedimentation rate
array([[[nan]],\n",
+ " [[0.15097834]]])
ksbod_tc
(year, x, y)
float64
nan 0.0
- long_name :
- Temperature adjusted sedimentation rate
- units :
- m/d
- description :
- Temperature adjusted sedimentation rate
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
CBOD_oxidation
(year, x, y)
float64
nan 0.1421
- long_name :
- CBOD oxidation
- units :
- mg/L/d
- description :
- CBOD oxidation
array([[[ nan]],\n",
+ " [[ 0.]]])
CBOD_oxidation
(year, x, y)
float64
nan 0.1007
- long_name :
- CBOD oxidation
- units :
- mg/L/d
- description :
- CBOD oxidation
array([[[ nan]],\n",
"\n",
- " [[0.14209726]]])
CBOD_sedimentation
(year, x, y)
float64
nan 0.0
- long_name :
- CBOD sedimentation
- units :
- mg/L/d
- description :
- CBOD sedimentation
array([[[nan]],\n",
+ " [[0.10065223]]])
CBOD_sedimentation
(year, x, y)
float64
nan 0.0
- long_name :
- CBOD sedimentation
- units :
- mg/L/d
- description :
- CBOD sedimentation
array([[[nan]],\n",
"\n",
- " [[ 0.]]])
dCBODdt
(year, x, y)
float64
nan -0.1421
- long_name :
- Change in CBOD concentration for the given timestep
- units :
- mg/L/d
- description :
- Change in CBOD concentration for the given timestep
array([[[ nan]],\n",
+ " [[ 0.]]])
dCBODdt
(year, x, y)
float64
nan -0.1007
- long_name :
- Change in CBOD concentration for the given timestep
- units :
- mg/L/d
- description :
- Change in CBOD concentration for the given timestep
array([[[ nan]],\n",
"\n",
- " [[-0.14209726]]])
kpoc_tc
(year, x, y)
float64
nan 0.006291
- long_name :
- Temperature adjusted POC hydrolysis rate
- units :
- 1/d
- description :
- Temperature adjusted POC hydrolysis rate
array([[[ nan]],\n",
+ " [[-0.10065223]]])
kpoc_tc
(year, x, y)
float64
nan 0.006291
- long_name :
- Temperature adjusted POC hydrolysis rate
- units :
- 1/d
- description :
- Temperature adjusted POC hydrolysis rate
array([[[ nan]],\n",
"\n",
- " [[0.00629076]]])
POC_settling
(year, x, y)
float64
nan 0.02904
- long_name :
- POC concentration removed from cell due to settling
- units :
- mg/L/d
- description :
- POC concentration removed from cell due to settling
array([[[ nan]],\n",
+ " [[0.00629076]]])
POC_settling
(year, x, y)
float64
nan 0.02904
- long_name :
- POC concentration removed from cell due to settling
- units :
- mg/L/d
- description :
- POC concentration removed from cell due to settling
array([[[ nan]],\n",
"\n",
- " [[0.02904]]])
POC_hydrolysis
(year, x, y)
float64
nan 0.0274
- long_name :
- POC concentration removed from cell due to hydrolysis
- units :
- mg/L/d
- description :
- POC concentration removed from cell due to hydrolysis
array([[[ nan]],\n",
+ " [[0.02904]]])
POC_hydrolysis
(year, x, y)
float64
nan 0.0274
- long_name :
- POC concentration removed from cell due to hydrolysis
- units :
- mg/L/d
- description :
- POC concentration removed from cell due to hydrolysis
array([[[ nan]],\n",
"\n",
- " [[0.02740257]]])
POC_algal_mortality
(year, x, y)
float64
nan 0.2498
- long_name :
- POC concentration added to cell due to algal mortality
- units :
- mg/L/d
- description :
- POC concentration added to cell due to algal mortality
array([[[ nan]],\n",
+ " [[0.02740257]]])
POC_algal_mortality
(year, x, y)
float64
nan 0.2498
- long_name :
- POC concentration added to cell due to algal mortality
- units :
- mg/L/d
- description :
- POC concentration added to cell due to algal mortality
array([[[ nan]],\n",
"\n",
- " [[0.24981632]]])
POC_benthic_algae_mortality
(year, x, y)
float64
nan 1.761
- long_name :
- POC concentration added to cell due to benthic algae mortality
- units :
- mg/L/d
- description :
- POC concentration added to cell due to benthic algae mortality
array([[[ nan]],\n",
+ " [[0.24981632]]])
POC_benthic_algae_mortality
(year, x, y)
float64
nan 1.761
- long_name :
- POC concentration added to cell due to benthic algae mortality
- units :
- mg/L/d
- description :
- POC concentration added to cell due to benthic algae mortality
array([[[ nan]],\n",
"\n",
- " [[1.76101139]]])
dPOCdt
(year, x, y)
float64
nan 1.954
- long_name :
- POC concentration change per timestep
- units :
- mg/L/d
- description :
- POC concentration change per timestep
array([[[ nan]],\n",
+ " [[1.76101139]]])
dPOCdt
(year, x, y)
float64
nan 1.954
- long_name :
- POC concentration change per timestep
- units :
- mg/L/d
- description :
- POC concentration change per timestep
array([[[ nan]],\n",
"\n",
- " [[1.95438514]]])
kdoc_tc
(year, x, y)
float64
nan 0.01258
- long_name :
- Dissolved organic carbon oxidation rate adjusted for temperature
- units :
- 1/d
- description :
- Dissolved organic carbon oxidation rate adjusted for temperature
array([[[ nan]],\n",
+ " [[1.95438514]]])
kdoc_tc
(year, x, y)
float64
nan 0.01258
- long_name :
- Dissolved organic carbon oxidation rate adjusted for temperature
- units :
- 1/d
- description :
- Dissolved organic carbon oxidation rate adjusted for temperature
array([[[ nan]],\n",
"\n",
- " [[0.01258153]]])
DOC_algal_mortality
(year, x, y)
float64
nan 0.02776
- long_name :
- DOC concentration added to cell due to algal mortality
- units :
- mg/L/d
- description :
- DOC concentration added to cell due to algal mortality
array([[[ nan]],\n",
+ " [[0.01258153]]])
DOC_algal_mortality
(year, x, y)
float64
nan 0.02776
- long_name :
- DOC concentration added to cell due to algal mortality
- units :
- mg/L/d
- description :
- DOC concentration added to cell due to algal mortality
array([[[ nan]],\n",
"\n",
- " [[0.02775737]]])
DOC_benthic_algae_mortality
(year, x, y)
float64
nan 0.1957
- long_name :
- DOC concentration added to cell due to benthic algae mortality
- units :
- mg/L/d
- description :
- DOC concentration added to cell due to benthic algae mortality
array([[[ nan]],\n",
+ " [[0.02775737]]])
DOC_benthic_algae_mortality
(year, x, y)
float64
nan 0.1957
- long_name :
- DOC concentration added to cell due to benthic algae mortality
- units :
- mg/L/d
- description :
- DOC concentration added to cell due to benthic algae mortality
array([[[ nan]],\n",
"\n",
- " [[0.19566793]]])
DOC_DIC_oxidation
(year, x, y)
float64
nan 0.01118
- long_name :
- DOC concentration lost to cell due to oxidation
- units :
- mg/L/d
- description :
- DOC concentration lost to cell due to oxidation
array([[[ nan]],\n",
+ " [[0.19566793]]])
DOC_DIC_oxidation
(year, x, y)
float64
nan 0.006291
- long_name :
- DOC concentration lost to cell due to oxidation
- units :
- mg/L/d
- description :
- DOC concentration lost to cell due to oxidation
array([[[ nan]],\n",
"\n",
- " [[0.01118358]]])
dDOCdt
(year, x, y)
float64
nan 0.2396
- long_name :
- DOC concentration change per timestep
- units :
- mg/L/d
- description :
- DOC concentration change per timestep
array([[[ nan]],\n",
+ " [[0.00629076]]])
dDOCdt
(year, x, y)
float64
nan 0.2445
- long_name :
- DOC concentration change per timestep
- units :
- mg/L/d
- description :
- DOC concentration change per timestep
array([[[ nan]],\n",
"\n",
- " [[0.23964429]]])
K_H
(year, x, y)
float64
nan 0.03423
- long_name :
- Henrys coefficient
- units :
- mol/L-atm
- description :
- Henrys coefficient controlling the relative proportion of gaseous and aqueous phase CO2
array([[[ nan]],\n",
+ " [[0.24453711]]])
K_H
(year, x, y)
float64
nan 0.03423
- long_name :
- Henrys coefficient
- units :
- mol/L-atm
- description :
- Henrys coefficient controlling the relative proportion of gaseous and aqueous phase CO2
array([[[ nan]],\n",
"\n",
- " [[0.03422937]]])
Atm_CO2_reaeration
(year, x, y)
float64
nan -0.2322
- long_name :
- Atmospheric CO2 reaeration
- units :
- mg/L/d
- description :
- Amount of DIC concentration change due to atmospheric exchange
array([[[ nan]],\n",
+ " [[0.03422937]]])
Atm_CO2_reaeration
(year, x, y)
float64
nan -0.2322
- long_name :
- Atmospheric CO2 reaeration
- units :
- mg/L/d
- description :
- Amount of DIC concentration change due to atmospheric exchange
array([[[ nan]],\n",
"\n",
- " [[-0.23223979]]])
DIC_algal_respiration
(year, x, y)
float64
nan 3.084e-05
- long_name :
- DIC generated by algal respiration
- units :
- mg/L/d
- description :
- DIC generated by algal respiration
array([[[ nan]],\n",
+ " [[-0.23223979]]])
DIC_algal_respiration
(year, x, y)
float64
nan 3.084e-05
- long_name :
- DIC generated by algal respiration
- units :
- mg/L/d
- description :
- DIC generated by algal respiration
array([[[ nan]],\n",
"\n",
- " [[3.08415204e-05]]])
DIC_algal_photosynthesis
(year, x, y)
float64
nan 0.0001379
- long_name :
- DIC consumed by algal photosynthesis
- units :
- mg/L/d
- description :
- DIC consumed by algal photosynthesis
array([[[ nan]],\n",
+ " [[3.08415204e-05]]])
DIC_algal_photosynthesis
(year, x, y)
float64
nan 0.0001379
- long_name :
- DIC consumed by algal photosynthesis
- units :
- mg/L/d
- description :
- DIC consumed by algal photosynthesis
array([[[ nan]],\n",
"\n",
- " [[0.00013793]]])
DIC_benthic_algae_respiration
(year, x, y)
float64
nan 0.0001208
- long_name :
- DIC generated by benthic algae respiration
- units :
- mg/L/d
- description :
- DIC generated by benthic algae respiration
array([[[ nan]],\n",
+ " [[0.00013786]]])
DIC_benthic_algae_respiration
(year, x, y)
float64
nan 0.0001208
- long_name :
- DIC generated by benthic algae respiration
- units :
- mg/L/d
- description :
- DIC generated by benthic algae respiration
array([[[ nan]],\n",
"\n",
- " [[0.00012078]]])
DIC_benthic_algae_photosynthesis
(year, x, y)
float64
nan 2.104e-05
- long_name :
- DIC consumed by benthic algae photosynthesis
- units :
- mg/L/d
- description :
- DIC consumed by benthic algae photosynthesis
array([[[ nan]],\n",
+ " [[0.00012078]]])
DIC_benthic_algae_photosynthesis
(year, x, y)
float64
nan 2.098e-05
- long_name :
- DIC consumed by benthic algae photosynthesis
- units :
- mg/L/d
- description :
- DIC consumed by benthic algae photosynthesis
array([[[ nan]],\n",
"\n",
- " [[2.10426347e-05]]])
DIC_CBOD_oxidation
(year, x, y)
float64
nan 4.441e-06
- long_name :
- DIC concentration change due to CBOD oxidation
- units :
- mg/L/d
- description :
- DIC concentration change due to CBOD oxidation
array([[[ nan]],\n",
+ " [[2.09776058e-05]]])
DIC_CBOD_oxidation
(year, x, y)
float64
nan 3.145e-06
- long_name :
- DIC concentration change due to CBOD oxidation
- units :
- mg/L/d
- description :
- DIC concentration change due to CBOD oxidation
array([[[ nan]],\n",
"\n",
- " [[4.4405395e-06]]])
DIC_sed_release
(year, x, y)
float64
nan 1.165e-05
- long_name :
- DIC concentration change due to sediment release
- units :
- mg/L/d
- description :
- DIC concentration change due to sediment release
array([[[ nan]],\n",
+ " [[3.14538214e-06]]])
DIC_sed_release
(year, x, y)
float64
nan 6.553e-06
- long_name :
- DIC concentration change due to sediment release
- units :
- mg/L/d
- description :
- DIC concentration change due to sediment release
array([[[ nan]],\n",
"\n",
- " [[1.16495635e-05]]])
dDICdt
(year, x, y)
float64
nan -0.2322
- long_name :
- DIC concentration change per timestep
- units :
- mg/L/d
- description :
- DIC concentration change per timestep
array([[[ nan]],\n",
+ " [[6.55287947e-06]]])
dDICdt
(year, x, y)
float64
nan -0.2322
- long_name :
- DIC concentration change per timestep
- units :
- mg/L/d
- description :
- DIC concentration change per timestep
array([[[ nan]],\n",
"\n",
- " [[-0.23223105]]])
DOX_sat
(year, x, y)
float64
nan 8.262
- long_name :
- DO saturation concentration
- units :
- mg/L
- description :
- DO saturation concentration in water as a function of water temperature (K)
array([[[ nan]],\n",
+ " [[-0.2322373]]])
DOX_sat
(year, x, y)
float64
nan 8.262
- long_name :
- DO saturation concentration
- units :
- mg/L
- description :
- DO saturation concentration in water as a function of water temperature (K)
array([[[ nan]],\n",
"\n",
- " [[8.26201467]]])
pwv
(year, x, y)
float64
nan 0.03128
- long_name :
- Partial pressure of water vapor
- units :
- atm
- description :
- Partial pressure of water vapor
array([[[ nan]],\n",
+ " [[8.26201467]]])
pwv
(year, x, y)
float64
nan 0.03128
- long_name :
- Partial pressure of water vapor
- units :
- atm
- description :
- Partial pressure of water vapor
array([[[ nan]],\n",
"\n",
- " [[0.03128045]]])
DOs_atm_alpha
(year, x, y)
float64
nan 0.0006587
- long_name :
- DO saturation atmospheric correction coefficient
- units :
- unitless
- description :
- DO saturation atmospheric correction coefficient
array([[[ nan]],\n",
+ " [[0.03128045]]])
DOs_atm_alpha
(year, x, y)
float64
nan 0.0006587
- long_name :
- DO saturation atmospheric correction coefficient
- units :
- unitless
- description :
- DO saturation atmospheric correction coefficient
array([[[ nan]],\n",
"\n",
- " [[0.00065872]]])
Atm_O2_reaeration
(year, x, y)
float64
nan 0.3297
- long_name :
- Atmospheric oxygen reaeration
- units :
- mg/L/d
- description :
- Atmospheric oxygen reaeration, can fluctuate both in and out of waterbody
array([[[ nan]],\n",
+ " [[0.00065872]]])
Atm_O2_reaeration
(year, x, y)
float64
nan 9.137
- long_name :
- Atmospheric oxygen reaeration
- units :
- mg/L/d
- description :
- Atmospheric oxygen reaeration, can fluctuate both in and out of waterbody
array([[[ nan]],\n",
"\n",
- " [[0.32965451]]])
DOX_ApGrowth
(year, x, y)
float64
nan 5.636
- long_name :
- Dissolved oxygen flux due to algal photosynthesis
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to algal photosynthesis
array([[[ nan]],\n",
+ " [[9.13672452]]])
DOX_ApGrowth
(year, x, y)
float64
nan 5.728
- long_name :
- Dissolved oxygen flux due to algal photosynthesis
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to algal photosynthesis
array([[[ nan]],\n",
"\n",
- " [[5.63575419]]])
DOX_ApRespiration
(year, x, y)
float64
nan 0.9869
- long_name :
- Dissolved oxygen flux due to algal respiration
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to algal respiration
array([[[ nan]],\n",
+ " [[5.72813282]]])
DOX_ApRespiration
(year, x, y)
float64
nan 0.9869
- long_name :
- Dissolved oxygen flux due to algal respiration
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to algal respiration
array([[[ nan]],\n",
"\n",
- " [[0.98692865]]])
DOX_Nitrification
(year, x, y)
float64
nan 0.3405
- long_name :
- Dissolved oxygen flux due to nitrification
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to nitrification
array([[[ nan]],\n",
+ " [[0.98692865]]])
DOX_Nitrification
(year, x, y)
float64
nan 0.01635
- long_name :
- Dissolved oxygen flux due to nitrification
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to nitrification
array([[[ nan]],\n",
"\n",
- " [[0.34053694]]])
DOX_DOC_oxidation
(year, x, y)
float64
nan 0.02982
- long_name :
- Dissolved oxygen flux due to DOC oxidation
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to DOC oxidation
array([[[ nan]],\n",
+ " [[0.01634872]]])
DOX_DOC_oxidation
(year, x, y)
float64
nan 0.0
- long_name :
- Dissolved oxygen flux due to DOC oxidation
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to DOC oxidation
array([[[nan]],\n",
"\n",
- " [[0.02982288]]])
DOX_CBOD_oxidation
(year, x, y)
float64
nan 0.1421
- long_name :
- Dissolved oxygen flux due to CBOD oxidation
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to CBOD oxidation
array([[[ nan]],\n",
+ " [[ 0.]]])
DOX_CBOD_oxidation
(year, x, y)
float64
nan 0.1007
- long_name :
- Dissolved oxygen flux due to CBOD oxidation
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to CBOD oxidation
array([[[ nan]],\n",
"\n",
- " [[0.14209726]]])
DOX_AbGrowth
(year, x, y)
float64
nan 0.8598
- long_name :
- Dissolved oxygen flux due to benthic algae photosynthesis
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to benthic algae photosynthesis
array([[[ nan]],\n",
+ " [[0.10065223]]])
DOX_AbGrowth
(year, x, y)
float64
nan 0.8717
- long_name :
- Dissolved oxygen flux due to benthic algae photosynthesis
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to benthic algae photosynthesis
array([[[ nan]],\n",
"\n",
- " [[0.8598163]]])
DOX_AbRespiration
(year, x, y)
float64
nan 3.865
- long_name :
- Dissolved oxygen flux due to benthic algae respiration
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to benthic algae respiration
array([[[ nan]],\n",
+ " [[0.87165636]]])
DOX_AbRespiration
(year, x, y)
float64
nan 3.865
- long_name :
- Dissolved oxygen flux due to benthic algae respiration
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to benthic algae respiration
array([[[ nan]],\n",
"\n",
- " [[3.86504558]]])
DOX_SOD
(year, x, y)
float64
nan 0.3728
- long_name :
- Dissolved oxygen flux due to sediment oxygen demand
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to sediment oxygen demand
array([[[ nan]],\n",
+ " [[3.86504558]]])
DOX_SOD
(year, x, y)
float64
nan 0.2097
- long_name :
- Dissolved oxygen flux due to sediment oxygen demand
- units :
- mg/L/d
- description :
- Dissolved oxygen flux due to sediment oxygen demand
array([[[ nan]],\n",
"\n",
- " [[0.37278603]]])
dDOXdt
(year, x, y)
float64
nan 1.088
- long_name :
- Change in dissolved oxygen concentration for one timestep
- units :
- mg/L/d
- description :
- Change in dissolved oxygen concentration for one timestep
array([[[ nan]],\n",
+ " [[0.20969214]]])
dDOXdt
(year, x, y)
float64
nan 10.56
- long_name :
- Change in dissolved oxygen concentration for one timestep
- units :
- mg/L/d
- description :
- Change in dissolved oxygen concentration for one timestep
array([[[ nan]],\n",
"\n",
- " [[1.08800766]]])
kdx_tc
(year, x, y)
float64
nan 1.122
- long_name :
- Pathogen death rate
- units :
- 1/d
- description :
- Pathogen death rate with temperature correction
array([[[ nan]],\n",
+ " [[10.55784638]]])
kdx_tc
(year, x, y)
float64
nan 1.122
- long_name :
- Pathogen death rate
- units :
- 1/d
- description :
- Pathogen death rate with temperature correction
array([[[ nan]],\n",
"\n",
- " [[1.12204138]]])
PathogenDeath
(year, x, y)
float64
nan 1.122
- long_name :
- Pathogen natural death
- units :
- cfu/100mL/d
- description :
- Pathogen natural death
array([[[ nan]],\n",
+ " [[1.12204138]]])
PathogenDeath
(year, x, y)
float64
nan 1.122
- long_name :
- Pathogen natural death
- units :
- cfu/100mL/d
- description :
- Pathogen natural death
array([[[ nan]],\n",
"\n",
- " [[1.12204138]]])
PathogenDecay
(year, x, y)
float64
nan 267.9
- long_name :
- Pathogen death due to light
- units :
- cfu/100mL/d
- description :
- Pathogen death due to light
array([[[ nan]],\n",
+ " [[1.12204138]]])
PathogenDecay
(year, x, y)
float64
nan 267.9
- long_name :
- Pathogen death due to light
- units :
- cfu/100mL/d
- description :
- Pathogen death due to light
array([[[ nan]],\n",
"\n",
- " [[267.9274154]]])
PathogenSettling
(year, x, y)
float64
nan 0.6667
- long_name :
- Pathogen settling
- units :
- cfu/100mL/d
- description :
- Pathogen settling
array([[[ nan]],\n",
+ " [[267.9274154]]])
PathogenSettling
(year, x, y)
float64
nan 0.6667
- long_name :
- Pathogen settling
- units :
- cfu/100mL/d
- description :
- Pathogen settling
array([[[ nan]],\n",
"\n",
- " [[0.66666667]]])
dPXdt
(year, x, y)
float64
nan -269.7
- long_name :
- Change in pathogen concentration
- units :
- cfu/100mL/d
- description :
- Change in pathogen concentration
array([[[ nan]],\n",
+ " [[0.66666667]]])
dPXdt
(year, x, y)
float64
nan -269.7
- long_name :
- Change in pathogen concentration
- units :
- cfu/100mL/d
- description :
- Change in pathogen concentration
array([[[ nan]],\n",
"\n",
- " [[-269.71612345]]])
Alk_denitrification
(year, x, y)
float64
nan 4.87e-08
- long_name :
- Alkalinity change due to denitrification
- units :
- mg/L/d
- description :
- Alkalinity change due to denitrification
array([[[ nan]],\n",
+ " [[-269.71612345]]])
Alk_denitrification
(year, x, y)
float64
nan 0.0181
- long_name :
- Alkalinity change due to denitrification
- units :
- mg/L/d
- description :
- Alkalinity change due to denitrification
array([[[ nan]],\n",
"\n",
- " [[4.87043946e-08]]])
Alk_nitrification
(year, x, y)
float64
nan 1.064e-05
- long_name :
- Alkalinity change due to nitrification
- units :
- mg/L/d
- description :
- Alkalinity change due to nitrification
array([[[ nan]],\n",
+ " [[0.01810433]]])
Alk_nitrification
(year, x, y)
float64
nan 0.02554
- long_name :
- Alkalinity change due to nitrification
- units :
- mg/L/d
- description :
- Alkalinity change due to nitrification
array([[[ nan]],\n",
"\n",
- " [[1.06417793e-05]]])
Alk_algal_growth
(year, x, y)
float64
nan -0.0004994
- long_name :
- Alkalinity change due to algal growth
- units :
- mg/L/d
- description :
- Alkalinity change due to algal growth
array([[[ nan]],\n",
+ " [[0.02554488]]])
Alk_algal_growth
(year, x, y)
float64
nan -1.147
- long_name :
- Alkalinity change due to algal growth
- units :
- mg/L/d
- description :
- Alkalinity change due to algal growth
array([[[ nan]],\n",
"\n",
- " [[-0.00049936]]])
Alk_algal_respiration
(year, x, y)
float64
nan 0.0001018
- long_name :
- Alkalinity change due to algal respiration
- units :
- mg/L/d
- description :
- Alkalinity change due to algal respiration
array([[[ nan]],\n",
+ " [[-1.14707327]]])
Alk_algal_respiration
(year, x, y)
float64
nan 0.2037
- long_name :
- Alkalinity change due to algal respiration
- units :
- mg/L/d
- description :
- Alkalinity change due to algal respiration
array([[[ nan]],\n",
"\n",
- " [[0.00010184]]])
Alk_benthic_algae_growth
(year, x, y)
float64
nan -7.619e-06
- long_name :
- Alkalinity change due to benthic algae growth
- units :
- mg/L/d
- description :
- Alkalinity change due to benthic algae growth
array([[[ nan]],\n",
+ " [[0.20367042]]])
Alk_benthic_algae_growth
(year, x, y)
float64
nan -0.1746
- long_name :
- Alkalinity change due to benthic algae growth
- units :
- mg/L/d
- description :
- Alkalinity change due to benthic algae growth
array([[[ nan]],\n",
"\n",
- " [[-7.6185223e-06]]])
Alk_benthic_algae_respiration
(year, x, y)
float64
nan 3.988e-05
- long_name :
- Alkalinity change due to benthic algae growth
- units :
- mg/L/d
- description :
- Alkalinity change due to benthic algae growth
array([[[ nan]],\n",
+ " [[-0.17455142]]])
Alk_benthic_algae_respiration
(year, x, y)
float64
nan 0.7976
- long_name :
- Alkalinity change due to benthic algae growth
- units :
- mg/L/d
- description :
- Alkalinity change due to benthic algae growth
array([[[ nan]],\n",
"\n",
- " [[3.98810717e-05]]])
dAlkdt
(year, x, y)
float64
nan 0.0006381
- long_name :
- Alkalinity concentration change per timestep
- units :
- mg/L/d
- description :
- Alkalinity concentration change per timestep
array([[[ nan]],\n",
+ " [[0.79762143]]])
dAlkdt
(year, x, y)
float64
nan 2.315
- long_name :
- Alkalinity concentration change per timestep
- units :
- mg/L/d
- description :
- Alkalinity concentration change per timestep
array([[[ nan]],\n",
"\n",
- " [[0.00063811]]])
KHN2_tc
(year, x, y)
float64
nan 0.0006499
- long_name :
- Henrys law constant
- units :
- mol/L/atm
- description :
- Henrys law constant temperature corrected
array([[[ nan]],\n",
+ " [[2.315476]]])
KHN2_tc
(year, x, y)
float64
nan 0.0006499
- long_name :
- Henrys law constant
- units :
- mol/L/atm
- description :
- Henrys law constant temperature corrected
array([[[ nan]],\n",
"\n",
- " [[0.0006499]]])
P_wv
(year, x, y)
float64
nan 0.03128
- long_name :
- Partial pressure water vapor
- units :
- atm
- description :
- Partial pressure water vapor
array([[[ nan]],\n",
+ " [[0.0006499]]])
P_wv
(year, x, y)
float64
nan 0.03128
- long_name :
- Partial pressure water vapor
- units :
- atm
- description :
- Partial pressure water vapor
array([[[ nan]],\n",
"\n",
- " [[0.03128045]]])
N2sat
(year, x, y)
float64
nan 1.457e+04
- long_name :
- N2 at saturation
- units :
- mg-N/L
- description :
- N2 at saturation f(Twater and atm pressure)
array([[[ nan]],\n",
+ " [[0.03128045]]])
N2sat
(year, x, y)
float64
nan 1.457e+04
- long_name :
- N2 at saturation
- units :
- mg-N/L
- description :
- N2 at saturation f(Twater and atm pressure)
array([[[ nan]],\n",
"\n",
- " [[14565.92850696]]])
dN2dt
(year, x, y)
float64
nan 1.895e+04
- long_name :
- Change in N2 air concentration
- units :
- mg-N/L/d
- description :
- Change in N2 air concentration
array([[[ nan]],\n",
+ " [[14565.92850696]]])
dN2dt
(year, x, y)
float64
nan 1.895e+04
- long_name :
- Change in N2 air concentration
- units :
- mg-N/L/d
- description :
- Change in N2 air concentration
array([[[ nan]],\n",
"\n",
- " [[18947.95324237]]])
TDG
(year, x, y)
float64
nan 123.1
- long_name :
- Total dissolved gas
- units :
- %
- description :
- Total dissolved gas
array([[[ nan]],\n",
+ " [[18947.95324237]]])
TDG
(year, x, y)
float64
nan 105.3
- long_name :
- Total dissolved gas
- units :
- %
- description :
- Total dissolved gas
array([[[ nan]],\n",
"\n",
- " [[123.10586564]]])
"
+ " [[105.31359514]]])
"
],
"text/plain": [
"\n",
@@ -962,19 +962,19 @@
" * x (x) float64 1.0\n",
" * y (y) float64 1.0\n",
"Data variables: (12/281)\n",
- " Ap (year, x, y) float64 36.77 58.28\n",
- " Ab (year, x, y) float64 24.0 9.954\n",
- " NH4 (year, x, y) float64 0.5 0.8985\n",
- " NO3 (year, x, y) float64 5.54 5.299\n",
+ " Ap (year, x, y) float64 36.77 58.26\n",
+ " Ab (year, x, y) float64 24.0 9.951\n",
+ " NH4 (year, x, y) float64 0.063 0.557\n",
+ " NO3 (year, x, y) float64 5.54 5.203\n",
" OrgN (year, x, y) float64 1.726 1.726\n",
" N2 (year, x, y) float64 1.0 1.895e+04\n",
" ... ...\n",
- " dAlkdt (year, x, y) float64 nan 0.0006381\n",
+ " dAlkdt (year, x, y) float64 nan 2.315\n",
" KHN2_tc (year, x, y) float64 nan 0.0006499\n",
" P_wv (year, x, y) float64 nan 0.03128\n",
" N2sat (year, x, y) float64 nan 1.457e+04\n",
" dN2dt (year, x, y) float64 nan 1.895e+04\n",
- " TDG (year, x, y) float64 nan 123.1"
+ " TDG (year, x, y) float64 nan 105.3"
]
},
"execution_count": 2,
@@ -996,7 +996,7 @@
"\n",
"initial_state_values = {'Ap': 36.77,\n",
" 'Ab': 24,\n",
- " 'NH4': 0.5,\n",
+ " 'NH4': 0.063,\n",
" 'NO3': 5.54,\n",
" 'OrgN': 1.726,\n",
" 'N2': 1,\n",
@@ -1007,7 +1007,7 @@
" 'DIC': 1,\n",
" 'POM': 1,\n",
" 'CBOD': 1,\n",
- " 'DOX': 8,\n",
+ " 'DOX': 1,\n",
" 'PX': 1,\n",
" 'Alk': 1}\n",
"\n",
@@ -1040,7 +1040,7 @@
" 'KsPb': 0.125,\n",
" 'Ksb': 10,\n",
" 'mub_max_20': 0.4,\n",
- " 'krb_20': .2,\n",
+ " 'krb_20': 0.2,\n",
" 'kdb_20': 0.3,\n",
" 'b_growth_rate_option': 1,\n",
" 'b_light_limitation_option': 1,\n",
@@ -1049,7 +1049,7 @@
"}\n",
"\n",
"nitrogen_parameters = {\n",
- " 'KNR': 10,\n",
+ " 'KNR': 0.6,\n",
" 'knit_20': 0.1,\n",
" 'kon_20': 0.1,\n",
" 'kdnit_20': 0.002,\n",
@@ -1113,11 +1113,11 @@
" 'use_Algae': True,\n",
" 'use_Balgae': True,\n",
" 'use_POC': False,\n",
- " 'use_DOC': True,\n",
- " 'use_DIC': True,\n",
+ " 'use_DOC': False,\n",
+ " 'use_DIC': False,\n",
" 'use_N2': False,\n",
" 'use_Pathogen': False,\n",
- " 'use_Alk': False,\n",
+ " 'use_Alk': True,\n",
" 'use_POM': False \n",
"}\n",
"\n",
diff --git a/src/clearwater_modules/nsm1/processes.py b/src/clearwater_modules/nsm1/processes.py
index f0cdf3c..4cdb3d7 100644
--- a/src/clearwater_modules/nsm1/processes.py
+++ b/src/clearwater_modules/nsm1/processes.py
@@ -1125,7 +1125,7 @@ def knit_tc(
knit_20: Nitrification rate ammonia decay (1/d)
"""
- return arrhenius_correction(TwaterC, knit_20, 1.083)
+ return arrhenius_correction(TwaterC, knit_20, 1.047)
@@ -1185,7 +1185,7 @@ def kdnit_tc(
kdnit_20: Denitrification rate (1/d)
"""
- return arrhenius_correction(TwaterC, kdnit_20, 1.045)
+ return arrhenius_correction(TwaterC, kdnit_20, 1.047)
def ApUptakeFr_NH4(
@@ -1436,7 +1436,7 @@ def NH4_Nitrification(
NH4: Ammonium concentration (mg-N/L),
"""
- return xr.where(use_NH4,NitrificationInhibition * knit_tc * NH4,0)
+ return xr.where(use_NH4, NitrificationInhibition * knit_tc * NH4, 0)
def NH4fromBed(
@@ -3232,8 +3232,8 @@ def Alk_denitrification(
],
choicelist = [
- r_alkden * (1.0 - (DOX / (DOX + KsOxdn))) * kdnit_tc * NO3,
- r_alkden * kdnit_tc * NO3
+ r_alkden * (1.0 - (DOX / (DOX + KsOxdn))) * kdnit_tc * NO3 * 50000,
+ r_alkden * kdnit_tc * NO3 * 50000
],
default = 0
@@ -3270,8 +3270,8 @@ def Alk_nitrification(
],
choicelist = [
- r_alkn * (1 - np.exp(-KNR * DOX)) * knit_tc * NH4,
- knit_tc * NH4
+ r_alkn * (1 - np.exp(-KNR * DOX)) * knit_tc * NH4 * 50000,
+ knit_tc * NH4 * 50000
],
default = 0
@@ -3285,6 +3285,7 @@ def Alk_algal_growth(
r_alkaa: xr.DataArray,
r_alkan: xr.DataArray,
ApUptakeFr_NH4 : xr.DataArray,
+ rca: xr.DataArray,
use_Algae: xr.DataArray
) -> xr.DataArray:
"""Calculate the alkalinity concentration change due to algal growth
@@ -3294,9 +3295,10 @@ def Alk_algal_growth(
r_alkaa: Ratio translating algal growth into Alk if NH4 is the N source (eq/ug-Chla)
r_alkan: Ratio translating algal growth into Alk if NO3 is the N source (eq/ug-Chla)
ApUptakeFr_NH4 : Preference fraction of algal N uptake from NH4
+ rca: Algal C:Chla Ratio
use_Algae: Option to use algae
"""
- da: xr.DataArray = xr.where(use_Algae == True, (r_alkaa * ApUptakeFr_NH4 - r_alkan * (1 - ApUptakeFr_NH4 )) * ApGrowth, 0)
+ da: xr.DataArray = xr.where(use_Algae == True, (r_alkaa * ApUptakeFr_NH4 - r_alkan * (1 - ApUptakeFr_NH4 )) * ApGrowth * rca * 50000, 0)
return da
@@ -3304,6 +3306,7 @@ def Alk_algal_growth(
def Alk_algal_respiration(
ApRespiration: xr.DataArray,
r_alkaa: xr.DataArray,
+ rca: xr.DataArray,
use_Algae: xr.DataArray
) -> xr.DataArray:
"""Calculate the alkalinity concentration change due to algal respiration
@@ -3311,9 +3314,10 @@ def Alk_algal_respiration(
Args:
ApRespiration: Algae respiration calculated in algae module (ug-Chla/L/d)
r_alkaa: Ratio translating algal growth into Alk if NH4 is the N source (eq/ug-Chla)
+ rca: Algal C:Chla Ratio
use_Algae: Option to use algae
"""
- da: xr.DataArray = xr.where(use_Algae == True, ApRespiration * r_alkaa, 0)
+ da: xr.DataArray = xr.where(use_Algae == True, ApRespiration * r_alkaa * 50000 * rca, 0)
return da
@@ -3325,6 +3329,7 @@ def Alk_benthic_algae_growth(
r_alkbn: xr.DataArray,
AbUptakeFr_NH4 : xr.DataArray,
Fb: xr.DataArray,
+ rcb: xr.DataArray,
use_Balgae: xr.DataArray
) -> xr.DataArray:
"""Calculate the alkalinity concentration change due to algal growth
@@ -3336,9 +3341,10 @@ def Alk_benthic_algae_growth(
r_alkan: Ratio translating algal growth into Alk if NO3 is the N source (eq/ug-Chla)
AbUptakeFr_NH4 : Preference fraction of benthic algae N uptake from NH4
Fb: Fraction of bottom area available for benthic algae growth
+ rcb: Ratio benthic algae carbon to dry weight
use_Balgae: Option to use benthic algae
"""
- da: xr.DataArray = xr.where(use_Balgae == True, (1 / depth) *(r_alkba * AbUptakeFr_NH4 - r_alkbn * (1 - AbUptakeFr_NH4 )) * AbGrowth * Fb, 0)
+ da: xr.DataArray = xr.where(use_Balgae == True, (1 / depth) * (r_alkba * AbUptakeFr_NH4 - r_alkbn * (1 - AbUptakeFr_NH4 )) * AbGrowth * Fb * rcb * 50000, 0)
return da
@@ -3348,6 +3354,7 @@ def Alk_benthic_algae_respiration(
depth: xr.DataArray,
r_alkba: xr.DataArray,
Fb: xr.DataArray,
+ rcb: xr.DataArray,
use_Balgae: xr.DataArray
) -> xr.DataArray:
"""Calculate the alkalinity concentration change due to algal respiration
@@ -3356,14 +3363,14 @@ def Alk_benthic_algae_respiration(
ApRespiration: Algae respiration calculated in algae module (ug-Chla/L/d)
r_alkaa: Ratio translating algal growth into Alk if NH4 is the N source (eq/ug-Chla)
Fb: Fraction of bottom area available for benthic algae growth
+ rcb: Ratio benthic algae carbon to dry weight
use_Balgae: Option to use betnhic algae
"""
- da: xr.DataArray = xr.where(use_Balgae == True, (1 / depth) * r_alkba * AbRespiration * Fb, 0)
+ da: xr.DataArray = xr.where(use_Balgae == True, (1 / depth) * r_alkba * AbRespiration * rcb * Fb * 50000, 0)
return da
-
def dAlkdt(
Alk_denitrification: xr.DataArray,
Alk_nitrification: xr.DataArray,
diff --git a/tests/test_12_nsm_alkalinity_calculations.py b/tests/test_12_nsm_alkalinity_calculations.py
new file mode 100644
index 0000000..b1cf0a9
--- /dev/null
+++ b/tests/test_12_nsm_alkalinity_calculations.py
@@ -0,0 +1,2658 @@
+from numba import (
+ types,
+ typed,
+)
+import pytest
+
+from clearwater_modules.nsm1 import NutrientBudget
+from clearwater_modules.nsm1.constants import (
+ AlgaeStaticVariables,
+ AlkalinityStaticVariables,
+ BalgaeStaticVariables,
+ NitrogenStaticVariables,
+ CarbonStaticVariables,
+ CBODStaticVariables,
+ DOXStaticVariables,
+ N2StaticVariables,
+ POMStaticVariables,
+ PathogenStaticVariables,
+ PhosphorusStaticVariables,
+ GlobalParameters,
+ GlobalVars
+)
+
+
+@pytest.fixture(scope='function')
+def initial_nsm1_state() -> dict[str, float]:
+ """Return initial state values for the model."""
+ return { 'Ap': 36.77,
+ 'Ab': 24,
+ 'NH4': .063,
+ 'NO3': 5.54,
+ 'OrgN': 1.726,
+ 'N2': 1,
+ 'TIP': 0.071,
+ 'OrgP': 0.24,
+ 'POC': 4.356,
+ 'DOC': 1,
+ 'DIC': 1,
+ 'POM': 1,
+ 'CBOD': 1,
+ 'DOX': 8,
+ 'PX': 1,
+ 'Alk': 1}
+
+@pytest.fixture(scope='module')
+def time_steps() -> int:
+ return 1
+
+@pytest.fixture(scope='function')
+def default_algae_params() -> AlgaeStaticVariables:
+ """Returns default algae static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return AlgaeStaticVariables(
+ AWd = 100,
+ AWc= 40,
+ AWn= 7.2,
+ AWp= 1,
+ AWa= 1000,
+ KL= 10,
+ KsN= 0.04,
+ KsP= 0.0012,
+ mu_max_20= 1,
+ kdp_20= 0.15,
+ krp_20= 0.2,
+ vsap= 0.15,
+ growth_rate_option = 1,
+ light_limitation_option = 1,
+ )
+
+@pytest.fixture(scope='function')
+def default_alkalinity_params() -> AlkalinityStaticVariables:
+ """Returns default alkalinity static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return AlkalinityStaticVariables(
+ r_alkaa = 14.0 / 106.0 / 12.0 / 1000.0,
+ r_alkan = 18.0 / 106.0 / 12.0 / 1000.0,
+ r_alkn = 2.0 / 14.0 / 1000.0,
+ r_alkden = 4.0 / 14.0 / 1000.0,
+ r_alkba = 14.0 / 106.0 / 12.0 / 1000.0,
+ r_alkbn = 18.0 / 106.0 / 12.0 / 1000.0
+ )
+
+@pytest.fixture(scope='function')
+def default_balgae_params() -> BalgaeStaticVariables:
+ """Returns default Benthic Algae static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return BalgaeStaticVariables(
+ BWd = 100,
+ BWc = 40,
+ BWn = 7.2,
+ BWp = 1,
+ BWa = 5000,
+ KLb = 10,
+ KsNb= 0.25,
+ KsPb=0.125,
+ Ksb=10,
+ mub_max_20=0.4,
+ krb_20=0.2,
+ kdb_20=0.3,
+ b_growth_rate_option=1,
+ b_light_limitation_option=1,
+ Fw=0.9,
+ Fb=0.9
+ )
+
+@pytest.fixture(scope='function')
+def default_nitrogen_params() -> NitrogenStaticVariables:
+ """Returns default nitrogen static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return NitrogenStaticVariables(
+ KNR= 10,
+ knit_20= 0.1,
+ kon_20=0.1,
+ kdnit_20=0.002,
+ rnh4_20=0,
+ vno3_20=0,
+ KsOxdn=0.1,
+ PN=0.5,
+ PNb=0.5
+ )
+
+@pytest.fixture(scope='function')
+def default_carbon_params() -> CarbonStaticVariables:
+ """Returns default carbon static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return CarbonStaticVariables(
+ f_pocp = 0.9,
+ kdoc_20= 0.01,
+ f_pocb= 0.9,
+ kpoc_20= 0.005,
+ KsOxmc=1.0,
+ pCO2 = 383.0,
+ FCO2 = 0.2,
+ roc = 32.0/12.0
+ )
+
+@pytest.fixture(scope='function')
+def default_CBOD_params() -> CBODStaticVariables:
+ """Returns default CBOD static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return CBODStaticVariables(
+ KsOxbod = 0.5,
+ kbod_20 = 0.12,
+ ksbod_20 = 0.0
+ )
+
+@pytest.fixture(scope='function')
+def default_DOX_params() -> DOXStaticVariables:
+ """Returns default DOX static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return DOXStaticVariables(
+ ron = 2.0 * 32.0 / 14.0,
+ KsSOD = 1,
+ )
+
+@pytest.fixture(scope='function')
+def default_N2_params() -> N2StaticVariables:
+ """Returns default N2 static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return N2StaticVariables(
+
+ )
+
+@pytest.fixture(scope='function')
+def default_POM_params() -> POMStaticVariables:
+ """Returns default POM static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return POMStaticVariables(
+ kpom_20 = 0.1
+ )
+
+@pytest.fixture(scope='function')
+def default_pathogen_params() -> PathogenStaticVariables:
+ """Returns default Pathogens static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return PathogenStaticVariables(
+ kdx_20=0.8,
+ apx=1,
+ vx=1
+ )
+
+@pytest.fixture(scope='function')
+def default_phosphorus_params() -> PhosphorusStaticVariables:
+ """Returns default phosphorus static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return PhosphorusStaticVariables(
+ kop_20 = 0.1,
+ rpo4_20 = 0,
+ kdpo4 = 100.0,
+ )
+
+@pytest.fixture(scope='function')
+def default_gp_params() -> GlobalParameters:
+ """Returns default global parameter static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return GlobalParameters(
+ use_NH4= True,
+ use_NO3= True,
+ use_OrgN= False,
+ use_OrgP = False,
+ use_TIP= True,
+ use_SedFlux= False,
+ use_DOX= True,
+ use_Algae= True,
+ use_Balgae= True,
+ use_POC = False,
+ use_DOC = False,
+ use_DIC= False,
+ use_N2 = False,
+ use_Pathogen = False,
+ use_Alk = True,
+ use_POM = False
+ )
+
+@pytest.fixture(scope='function')
+def default_gvars_params() -> GlobalVars:
+ """Returns default global variables static variable values for the model.
+
+ NOTE: As of now (3/18/2022) these match the built in defaults, but are
+ copied here to allow for easy modification of the defaults in the future.
+
+ Returns a typed dictionary, with string keys and float values.
+ """
+ return GlobalVars(
+ vson = 0.01,
+ vsoc = 0.01,
+ vsop = 0.01,
+ vs = 0.01,
+ SOD_20 = 0.5,
+ SOD_theta = 1.047,
+ vb = 0.01,
+ fcom = 0.4,
+ kaw_20_user = 0,
+ kah_20_user = 1,
+ hydraulic_reaeration_option = 1,
+ wind_reaeration_option = 1,
+ dt = 1, #TODO Dynamic or static?
+ depth = 1.5, #TODO Dynamic or static?
+ TwaterC = 25,
+ theta = 1.047,
+ velocity = 1,
+ flow = 150,
+ topwidth = 100,
+ slope = 0.0002,
+ shear_velocity = 0.05334,
+ pressure_atm = 1013.25,
+ wind_speed = 3,
+ q_solar = 500,
+ Solid = 1,
+ lambda0 = 0.02,
+ lambda1 = 0.0088,
+ lambda2 = 0.054,
+ lambdas = 0.056,
+ lambdam = 0.174,
+ Fr_PAR = .47
+ )
+
+def get_nutrient_budget_instance(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+
+) -> NutrientBudget:
+ """Return an instance of the NSM1 class."""
+ return NutrientBudget(
+ time_steps=time_steps,
+ initial_state_values=initial_nsm1_state,
+ algae_parameters=default_algae_params,
+ alkalinity_parameters=default_alkalinity_params,
+ balgae_parameters=default_balgae_params,
+ nitrogen_parameters=default_nitrogen_params,
+ carbon_parameters=default_carbon_params,
+ CBOD_parameters=default_CBOD_params,
+ DOX_parameters=default_DOX_params,
+ N2_parameters=default_N2_params,
+ POM_parameters=default_POM_params,
+ pathogen_parameters=default_pathogen_params,
+ phosphorus_parameters=default_phosphorus_params,
+ global_parameters=default_gp_params,
+ global_vars=default_gvars_params,
+ time_dim='nsm1_time_step',
+ )
+
+@pytest.fixture(scope='module')
+def tolerance() -> float:
+ """Controls the precision of the pytest.approx() function."""
+ return 0.01
+
+def test_defaults(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.27
+
+def test_defaults(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.27
+
+def test_changed_Ap(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_state_dict = initial_nsm1_state
+ initial_state_dict['Ap'] = 10
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.31
+
+def test_changed_Ab(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_state_dict = initial_nsm1_state
+ initial_state_dict['Ab'] = 10
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.75
+
+def test_changed_Alk(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_state_dict = initial_nsm1_state
+ initial_state_dict['Alk'] = 5
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 7.27
+
+def test_changed_NH4(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_state_dict = initial_nsm1_state
+ initial_state_dict['NH4'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.10
+
+def test_changed_TIP(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_state_dict = initial_nsm1_state
+ initial_state_dict['TIP'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.54
+
+def test_changed_DOX(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_state_dict = initial_nsm1_state
+ initial_state_dict['DOX'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.32
+
+def test_changed_NO3(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_state_dict = initial_nsm1_state
+ initial_state_dict['NO3'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.10
+
+def test_changed_TwaterC(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_gvars_dict = default_gvars_params
+ initial_gvars_dict['TwaterC'] = 15
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.43
+
+def test_changed_q_solar(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_gvars_dict = default_gvars_params
+ initial_gvars_dict['q_solar'] = 250
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.16
+
+def test_changed_KL(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_algae_dict = default_algae_params
+ initial_algae_dict['KL'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.36
+
+def test_changed_KLb(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['KLb'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.30
+
+def test_changed_lambda0(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_gvars_dict = default_gvars_params
+ initial_gvars_dict['lambda0'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.09
+
+def test_changed_lambda1(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_gvars_dict = default_gvars_params
+ initial_gvars_dict['lambda1'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.02
+
+def test_changed_lambda2(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_gvars_dict = default_gvars_params
+ initial_gvars_dict['lambda2'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.18
+
+def test_changed_KsN(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_algae_dict = default_algae_params
+ initial_algae_dict['KsN'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.10
+
+def test_changed_KsP(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_algae_dict = default_algae_params
+ initial_algae_dict['KsP'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.20
+
+def test_changed_KsNb(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['KsNb'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.25
+
+def test_changed_KsPb(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['KsPb'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.13
+
+def test_changed_light_limitation_option(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_algae_dict = default_algae_params
+ initial_algae_dict['light_limitation_option'] = 2
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.37
+
+def test_changed_b_light_limitation_option(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['b_light_limitation_option'] = 2
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.30
+
+def test_changed_Fb(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['Fb'] = 0.5
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.84
+
+def test_changed_Ksb(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['Ksb'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.12
+
+def test_changed_AWa(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_algae_dict = default_algae_params
+ initial_algae_dict['AWa'] = 100
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 15.43
+
+def test_changed_AWc(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_algae_dict = default_algae_params
+ initial_algae_dict['AWc'] = 20
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.59
+
+def test_changed_AWd(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_algae_dict = default_algae_params
+ initial_algae_dict['AWd'] = 50
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.27
+
+def test_changed_AWp(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_algae_dict = default_algae_params
+ initial_algae_dict['AWp'] = 0.1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.27
+
+def test_changed_AWn(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_algae_dict = default_algae_params
+ initial_algae_dict['AWn'] = 0.1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.27
+
+def test_changed_BWd(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['BWd'] = 50
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 4.24
+
+def test_changed_BWc(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['BWc'] = 10
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.54
+
+def test_changed_BWn(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['BWn'] = 0.1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.27
+
+def test_changed_BWp(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['BWp'] = 0.1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.27
+
+def test_changed_BWa(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['BWa'] = 1000
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.27
+
+def test_changed_depth(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_gvars_dict = default_gvars_params
+ initial_gvars_dict['depth'] = 5
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.20
+
+def test_changed_mu_max_20(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_algae_dict = default_algae_params
+ initial_algae_dict['mu_max_20'] = 0.2
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.35
+
+def test_changed_mub_max_20(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['mub_max_20'] = 1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.53
+
+def test_changed_PN(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_nitrogen_dict = default_nitrogen_params
+ initial_nitrogen_dict['PN'] = 0.9
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.10
+
+def test_changed_PNb(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_nitrogen_dict = default_nitrogen_params
+ initial_nitrogen_dict['PNb'] = 0.9
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.24
+
+def test_changed_PNb(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['PNb'] = 0.9
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.24
+
+def test_changed_knit_20(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_nitrogen_dict = default_nitrogen_params
+ initial_nitrogen_dict['knit_20'] = 0.01
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.31
+
+def test_changed_KsOxdn(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_nitrogen_dict = default_nitrogen_params
+ initial_nitrogen_dict['KsOxdn'] = 0.01
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.27
+
+def test_changed_kdnit_20(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_nitrogen_dict = default_nitrogen_params
+ initial_nitrogen_dict['kdnit_20'] = 0.1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.40
+
+def test_changed_kdnit_20(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_nitrogen_dict = default_nitrogen_params
+ initial_nitrogen_dict['kdnit_20'] = 0.1
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.40
+
+def test_changed_krp_20(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_algae_dict = default_algae_params
+ initial_algae_dict['krp_20'] = 0.01
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.08
+
+def test_changed_krp_20(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_algae_dict = default_algae_params
+ initial_algae_dict['krp_20'] = 0.01
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 3.08
+
+def test_changed_krb_20(
+ time_steps,
+ initial_nsm1_state,
+ default_algae_params,
+ default_alkalinity_params,
+ default_balgae_params,
+ default_nitrogen_params,
+ default_carbon_params,
+ default_CBOD_params,
+ default_DOX_params,
+ default_N2_params,
+ default_POM_params,
+ default_pathogen_params,
+ default_phosphorus_params,
+ default_gp_params,
+ default_gvars_params,
+ tolerance,
+) -> None:
+ """Test the model with default parameters."""
+ # alter parameters as necessary
+ initial_balgae_dict = default_balgae_params
+ initial_balgae_dict['krb_20'] = 0.01
+
+ # instantiate the model
+ nsm1: NutrientBudget = get_nutrient_budget_instance(
+ time_steps=time_steps,
+ initial_nsm1_state=initial_nsm1_state,
+ default_algae_params=default_algae_params,
+ default_alkalinity_params=default_alkalinity_params,
+ default_balgae_params=default_balgae_params,
+ default_nitrogen_params=default_nitrogen_params,
+ default_carbon_params=default_carbon_params,
+ default_CBOD_params=default_CBOD_params,
+ default_DOX_params=default_DOX_params,
+ default_N2_params=default_N2_params,
+ default_POM_params=default_POM_params,
+ default_pathogen_params=default_pathogen_params,
+ default_phosphorus_params=default_phosphorus_params,
+ default_gp_params=default_gp_params,
+ default_gvars_params=default_gvars_params
+ )
+
+ # Run the model
+ nsm1.increment_timestep()
+ Alk = nsm1.dataset.isel(nsm1_time_step=-1).Alk.values.item()
+
+ assert isinstance(Alk, float)
+ assert pytest.approx(Alk, tolerance) == 2.51
\ No newline at end of file