ClimaLand.jl icon indicating copy to clipboard operation
ClimaLand.jl copied to clipboard

ClimaLandSimulations: FLUXNET2015 via PFT

Open AlexisRenchon opened this issue 10 months ago • 0 comments

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.

AlexisRenchon avatar Apr 16 '24 23:04 AlexisRenchon