Skip to content

Commit eecc407

Browse files
committed
Add FluxnetSimulations to src
1 parent 324303d commit eecc407

File tree

17 files changed

+110
-91
lines changed

17 files changed

+110
-91
lines changed

docs/src/tutorials/integrated/soil_canopy_tutorial.jl

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ using ClimaLand.Canopy.PlantHydraulics
5353
import ClimaLand
5454
import ClimaLand.Parameters as LP
5555
using DelimitedFiles
56-
FluxnetSimulationsExt =
57-
Base.get_extension(ClimaLand, :FluxnetSimulationsExt).FluxnetSimulationsExt;
56+
import ClimaLand.FluxnetSimulations as FluxnetSimulations
5857

5958
# Define the floating point precision desired (64 or 32 bit), and get the
6059
# parameter set holding constants used across CliMA Models:
@@ -103,7 +102,7 @@ dt = Float64(30)
103102
# read in the observed LAI and let that vary in time in a prescribed manner.
104103

105104
# Forcing data
106-
(; atmos, radiation) = FluxnetSimulationsExt.prescribed_forcing_fluxnet(
105+
(; atmos, radiation) = FluxnetSimulations.prescribed_forcing_fluxnet(
107106
site_ID,
108107
lat,
109108
long,
@@ -241,11 +240,8 @@ LAI = ClimaLand.prescribed_lai_modis(
241240
start_date,
242241
);
243242
# Get the maximum LAI at this site over the first year of the simulation
244-
maxLAI = FluxnetSimulationsExt.get_maxLAI_at_site(
245-
modis_lai_ncdata_path[1],
246-
lat,
247-
long,
248-
)
243+
maxLAI =
244+
FluxnetSimulations.get_maxLAI_at_site(modis_lai_ncdata_path[1], lat, long)
249245

250246
SAI = FT(0.00242)
251247
RAI = (SAI + maxLAI) * f_root_to_shoot;

docs/src/tutorials/standalone/Canopy/canopy_tutorial.jl

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ using ClimaLand.Canopy.PlantHydraulics
5353
import ClimaLand
5454
import ClimaLand.Parameters as LP
5555
using DelimitedFiles
56-
FluxnetSimulationsExt =
57-
Base.get_extension(ClimaLand, :FluxnetSimulationsExt).FluxnetSimulationsExt;
56+
import ClimaLand.FluxnetSimulations as FluxnetSimulations
5857

5958
# Define the floating point precision desired (64 or 32 bit), and get the
6059
# parameter set holding constants used across CliMA Models:
@@ -123,7 +122,7 @@ dt = 225.0
123122
# read in the observed LAI and let that vary in time in a prescribed manner.
124123

125124
# Forcing data
126-
(; atmos, radiation) = FluxnetSimulationsExt.prescribed_forcing_fluxnet(
125+
(; atmos, radiation) = FluxnetSimulations.prescribed_forcing_fluxnet(
127126
site_ID,
128127
lat,
129128
long,
@@ -206,11 +205,8 @@ LAI = ClimaLand.prescribed_lai_modis(
206205
start_date,
207206
);
208207
# Get the maximum LAI at this site over the first year of the simulation
209-
maxLAI = FluxnetSimulationsExt.get_maxLAI_at_site(
210-
modis_lai_ncdata_path[1],
211-
lat,
212-
long,
213-
);
208+
maxLAI =
209+
FluxnetSimulations.get_maxLAI_at_site(modis_lai_ncdata_path[1], lat, long);
214210

215211
SAI = FT(0.00242)
216212
f_root_to_shoot = FT(3.5)

experiments/integrated/fluxnet/ozark_pft.jl

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ using ClimaDiagnostics
2525
using ClimaUtilities
2626

2727
using DelimitedFiles
28-
FluxnetSimulationsExt =
29-
Base.get_extension(ClimaLand, :FluxnetSimulationsExt).FluxnetSimulationsExt;
28+
import ClimaLand.FluxnetSimulations as FluxnetSimulations
3029
using CairoMakie, ClimaAnalysis, GeoMakie, Poppler_jll, Printf, StatsBase
3130
import ClimaLand.LandSimVis as LandSimVis
3231
const FT = Float64
@@ -112,7 +111,7 @@ include(
112111
),
113112
)
114113
start_date = DateTime(2010) + Hour(time_offset)
115-
(; atmos, radiation) = FluxnetSimulationsExt.prescribed_forcing_fluxnet(
114+
(; atmos, radiation) = FluxnetSimulations.prescribed_forcing_fluxnet(
116115
site_ID,
117116
lat,
118117
long,
@@ -136,11 +135,8 @@ LAI = ClimaLand.prescribed_lai_modis(
136135
start_date,
137136
)
138137
# Get the maximum LAI at this site over the first year of the simulation
139-
maxLAI = FluxnetSimulationsExt.get_maxLAI_at_site(
140-
modis_lai_ncdata_path[1],
141-
lat,
142-
long,
143-
);
138+
maxLAI =
139+
FluxnetSimulations.get_maxLAI_at_site(modis_lai_ncdata_path[1], lat, long);
144140
RAI = maxLAI * f_root_to_shoot
145141
capacity = plant_ν * maxLAI * h_leaf * FT(1000)
146142

@@ -275,7 +271,7 @@ jacobian! = make_jacobian(land);
275271
jac_kwargs =
276272
(; jac_prototype = ClimaLand.FieldMatrixWithSolver(Y), Wfact = jacobian!);
277273

278-
FluxnetSimulationsExt.set_fluxnet_ic!(Y, site_ID, start_date, time_offset, land)
274+
FluxnetSimulations.set_fluxnet_ic!(Y, site_ID, start_date, time_offset, land)
279275
set_initial_cache! = make_set_initial_cache(land)
280276
set_initial_cache!(p, Y, t0);
281277

@@ -315,7 +311,7 @@ diag_cb = ClimaDiagnostics.DiagnosticsCallback(diagnostic_handler);
315311

316312
## How often we want to update the drivers. Note that this uses the defined `t0` and `tf`
317313
## defined in the simulatons file
318-
data_dt = Float64(FluxnetSimulationsExt.get_data_dt(site_ID))
314+
data_dt = Float64(FluxnetSimulations.get_data_dt(site_ID))
319315
updateat = Array(t0:data_dt:tf)
320316
model_drivers = ClimaLand.get_drivers(land)
321317
updatefunc = ClimaLand.make_update_drivers(model_drivers)
@@ -337,8 +333,7 @@ prob = SciMLBase.ODEProblem(
337333
sol = SciMLBase.solve(prob, ode_algo; dt = dt, callback = cb);
338334

339335
ClimaLand.Diagnostics.close_output_writers(diags)
340-
comparison_data =
341-
FluxnetSimulationsExt.get_comparison_data(site_ID, time_offset)
336+
comparison_data = FluxnetSimulations.get_comparison_data(site_ID, time_offset)
342337
savedir =
343338
joinpath(pkgdir(ClimaLand), "experiments/integrated/fluxnet/US-MOz/pft/out")
344339
mkpath(savedir)

experiments/integrated/fluxnet/run_fluxnet.jl

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ using ClimaDiagnostics
2020
using ClimaUtilities
2121

2222
using DelimitedFiles
23-
FluxnetSimulationsExt =
24-
Base.get_extension(ClimaLand, :FluxnetSimulationsExt).FluxnetSimulationsExt;
23+
import ClimaLand.FluxnetSimulations as FluxnetSimulations
2524
using CairoMakie, ClimaAnalysis, GeoMakie, Poppler_jll, Printf, StatsBase
2625
import ClimaLand.LandSimVis as LandSimVis
2726

@@ -72,9 +71,8 @@ include(
7271
"experiments/integrated/fluxnet/fluxnet_simulation.jl",
7372
),
7473
)
75-
(start_date, end_date) =
76-
FluxnetSimulationsExt.get_data_dates(site_ID, time_offset)
77-
(; atmos, radiation) = FluxnetSimulationsExt.prescribed_forcing_fluxnet(
74+
(start_date, end_date) = FluxnetSimulations.get_data_dates(site_ID, time_offset)
75+
(; atmos, radiation) = FluxnetSimulations.prescribed_forcing_fluxnet(
7876
site_ID,
7977
lat,
8078
long,
@@ -98,11 +96,8 @@ LAI = ClimaLand.prescribed_lai_modis(
9896
start_date,
9997
)
10098
# Get the maximum LAI at this site over the first year of the simulation
101-
maxLAI = FluxnetSimulationsExt.get_maxLAI_at_site(
102-
modis_lai_ncdata_path[1],
103-
lat,
104-
long,
105-
);
99+
maxLAI =
100+
FluxnetSimulations.get_maxLAI_at_site(modis_lai_ncdata_path[1], lat, long);
106101
RAI = maxLAI * f_root_to_shoot
107102
capacity = plant_ν * maxLAI * h_leaf * FT(1000)
108103

@@ -236,7 +231,7 @@ land = LandModel{FT}(;
236231

237232
Y, p, cds = initialize(land)
238233

239-
FluxnetSimulationsExt.set_fluxnet_ic!(Y, site_ID, start_date, time_offset, land)
234+
FluxnetSimulations.set_fluxnet_ic!(Y, site_ID, start_date, time_offset, land)
240235
set_initial_cache! = make_set_initial_cache(land)
241236
set_initial_cache!(p, Y, t0);
242237

@@ -282,7 +277,7 @@ diag_cb = ClimaDiagnostics.DiagnosticsCallback(diagnostic_handler);
282277

283278
## How often we want to update the drivers. Note that this uses the defined `t0`, and `tf`
284279
## defined in the simulatons file
285-
data_dt = Float64(FluxnetSimulationsExt.get_data_dt(site_ID));
280+
data_dt = Float64(FluxnetSimulations.get_data_dt(site_ID));
286281
updateat = Array(t0:data_dt:tf);
287282
model_drivers = ClimaLand.get_drivers(land);
288283
updatefunc = ClimaLand.make_update_drivers(model_drivers);
@@ -304,8 +299,7 @@ prob = SciMLBase.ODEProblem(
304299
@time sol = SciMLBase.solve(prob, ode_algo; dt = dt, callback = cb);
305300

306301
ClimaLand.Diagnostics.close_output_writers(diags)
307-
comparison_data =
308-
FluxnetSimulationsExt.get_comparison_data(site_ID, time_offset)
302+
comparison_data = FluxnetSimulations.get_comparison_data(site_ID, time_offset)
309303
savedir =
310304
joinpath(pkgdir(ClimaLand), "experiments/integrated/fluxnet/$(site_ID)/out")
311305
mkpath(savedir)

experiments/integrated/fluxnet/snow_soil/simulation.jl

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ import ClimaLand.Parameters as LP
2222
import ClimaParams
2323

2424
using DelimitedFiles
25-
FluxnetSimulationsExt =
26-
Base.get_extension(ClimaLand, :FluxnetSimulationsExt).FluxnetSimulationsExt;
25+
import ClimaLand.FluxnetSimulations as FluxnetSimulations
2726
using CairoMakie, StatsBase
2827

2928
climaland_dir = pkgdir(ClimaLand)
@@ -57,7 +56,7 @@ tf = t0 + FT(3600 * 24 * N_days)
5756
# Height of sensor on flux tower
5857
atmos_h = FT(32)
5958
start_date = DateTime(2010) + Hour(time_offset)
60-
forcing = FluxnetSimulationsExt.prescribed_forcing_fluxnet(
59+
forcing = FluxnetSimulations.prescribed_forcing_fluxnet(
6160
site_ID,
6261
lat,
6362
long,
@@ -125,7 +124,7 @@ set_initial_cache! = make_set_initial_cache(land)
125124

126125

127126
#Initial conditions
128-
FluxnetSimulationsExt.set_fluxnet_ic!(Y, site_ID, start_date, time_offset, land)
127+
FluxnetSimulations.set_fluxnet_ic!(Y, site_ID, start_date, time_offset, land)
129128
set_initial_cache!(p, Y, t0)
130129

131130
saveat = Array(t0:dt:tf)
@@ -172,8 +171,7 @@ sol = SciMLBase.solve(
172171
# Plotting
173172
daily = sol.t ./ 3600 ./ 24
174173
savedir = joinpath(climaland_dir, "experiments/integrated/fluxnet/snow_soil")
175-
comparison_data =
176-
FluxnetSimulationsExt.get_comparison_data(site_ID, time_offset)
174+
comparison_data = FluxnetSimulations.get_comparison_data(site_ID, time_offset)
177175

178176
# Water content
179177
seconds =

experiments/integrated/performance/conservation/ozark_conservation.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ import ClimaLand.Parameters as LP
1818
import ClimaParams
1919
import ClimaUtilities.OutputPathGenerator: generate_output_path
2020
using DelimitedFiles
21-
FluxnetSimulationsExt =
22-
Base.get_extension(ClimaLand, :FluxnetSimulationsExt).FluxnetSimulationsExt;
21+
import ClimaLand.FluxnetSimulations as FluxnetSimulations
2322

2423
global climaland_dir = pkgdir(ClimaLand)
2524
global site_ID = "US-MOz"

experiments/integrated/performance/conservation/ozark_conservation_setup.jl

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,8 @@ land_domain = Column(;
5454
canopy_domain = ClimaLand.Domains.obtain_surface_domain(land_domain)
5555

5656
# Get the atmospheric and radiation forcing data
57-
(start_date, end_date) =
58-
FluxnetSimulationsExt.get_data_dates(site_ID, time_offset)
59-
(; atmos, radiation) = FluxnetSimulationsExt.prescribed_forcing_fluxnet(
57+
(start_date, end_date) = FluxnetSimulations.get_data_dates(site_ID, time_offset)
58+
(; atmos, radiation) = FluxnetSimulations.prescribed_forcing_fluxnet(
6059
site_ID,
6160
lat,
6261
long,
@@ -80,11 +79,8 @@ LAI = ClimaLand.prescribed_lai_modis(
8079
start_date,
8180
)
8281
# Get the maximum LAI at this site over the first year of the simulation
83-
maxLAI = FluxnetSimulationsExt.get_maxLAI_at_site(
84-
modis_lai_ncdata_path[1],
85-
lat,
86-
long,
87-
);
82+
maxLAI =
83+
FluxnetSimulations.get_maxLAI_at_site(modis_lai_ncdata_path[1], lat, long);
8884
RAI = FT(maxLAI) * f_root_to_shoot # convert to float type of simulation
8985
capacity = plant_ν * maxLAI * h_leaf * FT(1000)
9086
# Now we set up the model. For the soil model, we pick
@@ -211,5 +207,5 @@ Y, p, cds = initialize(land)
211207
jac_kwargs =
212208
(; jac_prototype = ClimaLand.FieldMatrixWithSolver(Y), Wfact = jacobian!);
213209

214-
FluxnetSimulationsExt.set_fluxnet_ic!(Y, site_ID, start_date, time_offset, land)
210+
FluxnetSimulations.set_fluxnet_ic!(Y, site_ID, start_date, time_offset, land)
215211
set_initial_cache!(p, Y, t0)

experiments/standalone/Vegetation/no_vegetation.jl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ import ClimaLand
1818
import ClimaLand.Parameters as LP
1919
import ClimaUtilities.OutputPathGenerator: generate_output_path
2020
using DelimitedFiles
21-
FluxnetSimulationsExt =
22-
Base.get_extension(ClimaLand, :FluxnetSimulationsExt).FluxnetSimulationsExt;
21+
import ClimaLand.FluxnetSimulations as FluxnetSimulations
2322

2423
const FT = Float32;
2524
earth_param_set = LP.LandParameters(FT);
@@ -38,7 +37,7 @@ long = FT(-92.2000) # degree
3837
atmos_h = FT(32)
3938
site_ID = "US-MOz"
4039
start_date = DateTime(2010) + Hour(time_offset)
41-
(; atmos, radiation) = FluxnetSimulationsExt.prescribed_forcing_fluxnet(
40+
(; atmos, radiation) = FluxnetSimulations.prescribed_forcing_fluxnet(
4241
site_ID,
4342
lat,
4443
long,

experiments/standalone/Vegetation/timestep_test.jl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ using ClimaLand.Canopy.PlantHydraulics
5757
import ClimaLand
5858
import ClimaLand.Parameters as LP
5959
using DelimitedFiles
60-
FluxnetSimulationsExt =
61-
Base.get_extension(ClimaLand, :FluxnetSimulationsExt).FluxnetSimulationsExt;
60+
import ClimaLand.FluxnetSimulations as FluxnetSimulations
6261

6362
const FT = Float64;
6463
earth_param_set = LP.LandParameters(FT);
@@ -83,7 +82,7 @@ N_days = 20.0
8382
tf = t0 + N_days * seconds_per_day + 80
8483

8584
# Get prescribed atmospheric and radiation forcing
86-
(; atmos, radiation) = FluxnetSimulationsExt.prescribed_forcing_fluxnet(
85+
(; atmos, radiation) = FluxnetSimulations.prescribed_forcing_fluxnet(
8786
site_ID,
8887
lat,
8988
long,

experiments/standalone/Vegetation/varying_lai.jl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ using ClimaLand.Canopy.PlantHydraulics
1717
import ClimaLand
1818
import ClimaLand.Parameters as LP
1919
using DelimitedFiles
20-
FluxnetSimulationsExt =
21-
Base.get_extension(ClimaLand, :FluxnetSimulationsExt).FluxnetSimulationsExt;
20+
import ClimaLand.FluxnetSimulations as FluxnetSimulations
2221
import ClimaUtilities.OutputPathGenerator: generate_output_path
2322
const FT = Float32;
2423
earth_param_set = LP.LandParameters(FT);
@@ -38,7 +37,7 @@ long = FT(-92.2000) # degree
3837
atmos_h = FT(32)
3938
site_ID = "US-MOz"
4039
start_date = DateTime(2010) + Hour(time_offset)
41-
(; atmos, radiation) = FluxnetSimulationsExt.prescribed_forcing_fluxnet(
40+
(; atmos, radiation) = FluxnetSimulations.prescribed_forcing_fluxnet(
4241
site_ID,
4342
lat,
4443
long,

0 commit comments

Comments
 (0)