ClimaLand.jl
ClimaLand.jl copied to clipboard
ClimaLandSimulations: FLUXNET2015 via PFT
Purpose
This PR will add FLUXNET2015 with PFTs, and go toward removing experiment/integrated/fluxnet to avoid code duplication.
To-do
- [x] Dict of PFT corresponding to each FLUXNET2015 site
- [x] Also need a Dict of filename to download from cluster corresponding to each FLUXNET2015 site (or we could have a struct with both PFT and filename)
- [ ] Add short name for PFTs in src/standalone/Vegetation/pfts.jl , one way or the other, need to match
- [ ] Make sure all site have a PFT, it seems some are missing
- [ ] Less dependencies, using extensions
- [ ] Test: all sites, default args
- [ ] Makie_plots.jl, make sure to use inputs and outputs in units that we want, instead of hard-coding conversion factors which can be confusing (currently error in cumulative water units and timeseries water units)
- [ ] In experiments/integrated/fluxnet, we compare model to data only when driver observation are available (not gap-filled), but we don't filter for gap-filled NEE / GPP / Reco. We should do so here.
- [ ] Use FLUXNET2015 datasets, drivers gapfilled with ERA
- [ ] climaland_output_dataframe.jl don't hardcode 20 (n layers)
- [ ] Inputs_dataframe.jl -> make a function to convert units (from, to) of a DataFrame, which can be called on input and output dataframe
- [ ] Flux timeseries: better legend radiation, SW_in LW_in, LW_out, G...
- [ ] Plot: only when met data was available (don't use gapfilled index)
- [ ] Add widget to plot timeseries or diurnal etc. of use chosen variable
- [ ] (!high prio) make all plots that /experiment/integrated makes, and make sure they are the same
- [ ] (!high prio) docstrings for all struct/functions
- [ ] (!high prio) better README.md
- [ ] (!high prio) docs (ClimaLandSimulation page in ClimaLand docs)
- [ ] (!high prio) move earth_param_set out of module
- [ ] (!high prio) move const FT = FLoat64 out of module
- [ ] use our src constructor for parameters (still need to fix hetero_resp and plant_hydraulics)
- [ ] less functions or clearer names (make_config(), make_setup()...) make_domain and make_timestepper can live in the same file (maybe setup_utils.jl)
- [ ] modules as an arg (e.g., photosynthesis = Farquhar or photosynthesis = optimality)
- [ ] no hard-coded values
- [ ] shorter list of params (use more defaults or constants)
- [ ] lib/ClimaLandSimulations/src/fluxnet_simulation.jl around line 266, why the +40? (this is in experiment/integrated as well)
- [ ] Should LAI, RAI, plant_\nu be in met_drivers?
- [ ] lib/ClimaLandSimulations/src/utilities/inputs_dataframe.jl do we always have all variables from fluxnet input files? (note: I think so, even if there are -9999 they should be there - if not we can create it)
- [ ] add else case for if haskey(...) in make_config
- [ ] rename LAIfunction to allow for other types of LAI input (e.g. netcdf)
- [ ] add PFTs functionality
- [ ] Add Mitra gap-filling code in data_tools.jl (or another gap-filling method, maybe use ERA from FLUXNET)
- [ ] Experiment: all sites, not just Ozark
Content
- [x] I have read and checked the items on the review checklist.