SIP290 Update russell_4 inputs with actual Russell Ranch run files#340
SIP290 Update russell_4 inputs with actual Russell Ranch run files#340AritraDey-Dev wants to merge 6 commits into
Conversation
Signed-off-by: Aritra Dey <adey01027@gmail.com>
There was a problem hiding this comment.
Pull request overview
Updates the tests/smoke/russell_4 test inputs with real SIPNET ensemble run files from the Russell Ranch (UC Davis Century Experiment) cal/val site, in preparation for revamping the russell_4 smoke test per #290. The PR is presented as a data-only step toward enabling methane, waterDrainFrac, and the nitrogen cycle in that test.
Changes:
- Replaces
sipnet.paramwith a 79-parameter file using the legacy 6-column form, including many parameters that current SIPNET does not initialize. - Adds a new
sipnet.param-spatialfile containing just1. - Replaces the previous irrigation-only
events.in(2016–2017) with a multi-year (2000–2013) event list mixingplant,fert,irrig, andharvevents, with same-day triplicate rows.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| tests/smoke/russell_4/sipnet.param | Switched to the legacy multi-column param format; many entries are unknown to the current model and will be ignored. |
| tests/smoke/russell_4/sipnet.param-spatial | New single-line file not read by the current codebase. |
| tests/smoke/russell_4/events.in | Replaced with the real Russell Ranch event series; contains duplicated same-day rows and is not exercised because EVENTS=0 in sipnet.in and the skip file is still in place. |
Comments suppressed due to low confidence (3)
tests/smoke/russell_4/sipnet.param:79
- Many of the parameters introduced here are not initialized in
src/sipnet/sipnet.c(e.g.microbeInit,baseSoilRespCold,baseMicrobeResp,soilRespQ10Cold,microbeQ10,E0,T0,coldSoilThreshold,litterWHC,litWaterDrainRate,m_ballBerry,qualityLeaf,qualityWood,efficiency,maxIngestionRate,halfSatIngestion,totNitrogen,microbeNC,fineRootExudation,coarseRootExudation,microbePulseEff, and alsolitterWFracInit). With the current parser (src/common/modelParams.c:183-220) these will be silently ignored with a log message rather than being used to drive the model. The 6-column legacy format here is also accepted but extra columns are dropped (src/common/modelParams.c:128-134). If the intent is to lock down new functionality per #290, please confirm which of these are expected to be honored by SIPNET today vs. carried for documentation only.
microbeInit 0.5 0 0.02 1 0.001
fineRootFrac 0.2 0 0 1 0.001
coarseRootFrac 0.2 0 0 1 0.001
aMax 89.7681891177546 1 0 200 0.2
aMaxFrac 0.639991846983321 0 0.66 0.86 0.005
psnTMin -4.48871541936206 1 -8 8 0.5
psnTOpt 12.1751920301758 1 5 30 0.5
dVpdSlope 0.131494389623404 1 0.01 0.25 0.005
dVpdExp 1.55931336525828 0 1 3 0.2
halfSatPar 10.9259948204271 1 4 27 5
attenuation 0.619397682305425 0 0.38 0.62 0.04
baseVegResp 0.00168176926358025 1 0.0006 0.06 0.00002
baseFolRespFrac 0.0248308759456334 1 0.05 0.3 0.005
baseSoilResp 0.06 1 0.003 0.6 0.00005
baseSoilRespCold 0.015 0 0.006 0.15 0.00005
baseFineRootResp 0.0000651788182561805 0 0.003 0.6 0.001
baseCoarseRootResp 0.006 0 0.003 0.6 0.001
baseMicrobeResp 0.0004 0 0.0003 0.005 0.0001
vegRespQ10 1.58891680454835 1 1.4 2.6 0.05
fineRootQ10 4.4793265869841 0 1.4 5 0.05
coarseRootQ10 4.97119639357552 0 1.4 5 0.05
soilRespQ10 2.9 1 1.4 5 0.05
soilRespQ10Cold 2.9 0 1.4 3.5 0.05
microbeQ10 2.3 0 1.4 5 0.05
growthRespFrac 0.204928460905689 0 0.1 0.3 0.05
E0 309 0 0 618 20
T0 -46 0 -273 -25 5
coldSoilThreshold 1 0 -2 4 0.5
frozenSoilFolREff 0 0 0 1 0.2
frozenSoilThreshold 0 0 -5 5 0.5
soilRespMoistEffect 1 0 0 2 0.1
leafOnDay 144 0 91 181 15
gddLeafOn 166.704771853983 1 100 900 200
soilTempLeafOn 12 0 8 16 1
leafOffDay 285 1 243 319 15
leafGrowth 0 0 0 252 10
fracLeafFall 0 1 0 1 0.1
woodTurnoverRate 0.014 1 0.001 1 0.001
leafTurnoverRate 1.21382545796387 1 0.001 1 0.03
fineRootTurnoverRate 0.0768885627227875 0 0.001 1 0.001
coarseRootTurnoverRate 0.056 0 0.001 1 0.001
litterBreakdownRate 0.4 0 0.13 1.2 0.1
fracLitterRespired 0.5 0 0.4 0.6 0.1
fineRootAllocation 0.4 0 0 0.6 0.001
woodAllocation 0.2 0 0 0.6 0.001
leafAllocation 0.2 0 0 1 0.04
waterRemoveFrac 0.088 0 0.001 0.16 0.008
frozenSoilEff 1 1 0 1 0.2
wueConst 10.9 1 0.01 109 0.5
litterWHC 1 0 0.01 4 0.25
soilWHC 12 1 0.1 36 1
immedEvapFrac 0.1 0 0 0.2 0.025
leafPoolDepth 0.1 0 0 0.2 0.025
fastFlowFrac 0 0 0 0.2 0.025
snowMelt 0.15 0 0.05 0.25 0.02
litWaterDrainRate 0.1 0 0.01 1 0.1
rdConst 300 0 1 1500 75
rSoilConst1 8.2 0 0 16.4 2
rSoilConst2 4.3 0 0 8.6 1
m_ballBerry 3.89 0 0.5 15 0.5
leafCSpWt 37.2890706126354 0 13 500 0
cFracLeaf 0.492305106337912 0 0.4 0.5 0.01
qualityLeaf 0.7 0 0 1 0.001
qualityWood 0.3 0 0 1 0.001
efficiency 0.45 0 0.1 0.9 0.001
maxIngestionRate 0.04 0 0.01 0.5 0.01
halfSatIngestion 5000 0 0 10000 0.001
totNitrogen 0.02 0 0.005 0.3 0.001
microbeNC 0.2 0 0.1 0.5 0.001
fineRootExudation 0.01 0 0 1 0.001
coarseRootExudation 0.01 0 0 1 0.001
microbePulseEff 0.45 0 0 1 0.05
tests/smoke/russell_4/events.in:18
- Lines 1–2 and 4–6 (and many subsequent groups) are exact duplicates: same year, day, event type, and parameters. The parser in
src/sipnet/events.c:337-343only rejects strictly decreasing(year, day), so duplicates are accepted and each will be applied independently (e.g. three identicalplantevents on 2000-day-84 will plant three times, three identicalfertrows will apply fertilizer three times). If these triplicates come from three replicate plots in the source data, they should be averaged/aggregated into a single event per day before being used as a single-site SIPNET input; otherwise totals (planting biomass, fertilizer N, irrigation water) will be 2–3× higher than intended.
2000 84 plant 3.6 1.08 0.72 1.8
2000 84 plant 3.6 1.08 0.72 1.8
2000 84 plant 3.1 0.93 0.62 1.55
2000 102 fert 2.4 0 2.2
2000 102 fert 2.4 0 2.2
2000 102 fert 2.4 0 2.2
2000 117 plant 2.3 0.69 0.46 1.15
2000 117 plant 3.5 1.05 0.7 1.75
2000 117 plant 3.2 0.96 0.64 1.6
2000 125 fert 2.4 0 2.2
2000 125 fert 2.4 0 2.2
2000 125 fert 2.4 0 2.2
2000 133 fert 10.2 0 9.6
2000 133 fert 10.2 0 9.6
2000 133 fert 10.2 0 9.6
2000 143 fert 5.8 0 5.4
2000 143 fert 5.8 0 5.4
2000 143 fert 5.8 0 5.4
tests/smoke/russell_4/events.in:1
tests/smoke/russell_4/sipnet.out(referenced bytools/test_sipnet_view.py:13-18) andevents.outstill reflect the previous inputs (sipnet.out starts at 2016 while the new sipnet.clim/events.in start at 2000, and events.out is empty). Becauseskipkeeps the smoke runner from regenerating them, these stored outputs are now inconsistent with the inputs in this PR. Either regenerate the expected outputs alongside this input update, or note clearly that outputs are deliberately not yet in sync.
2000 84 plant 3.6 1.08 0.72 1.8
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| 2017 296 irrig 2.8 1 | ||
| 2017 300 irrig 2.8 1 | ||
| 2017 304 irrig 2.8 1 | ||
| 2000 84 plant 3.6 1.08 0.72 1.8 |
| soilInit 5243.35615994556 1 3300 19000 3000 | ||
| litterWFracInit 0.5 0 0 1 0.1 | ||
| soilWFracInit 0.00287118103041723 1 0 1 0.1 | ||
| snowInit 1 0 0 0 1 |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
| 2000 84 plant 3.6 1.08 0.72 1.8 | ||
| 2000 84 plant 3.6 1.08 0.72 1.8 | ||
| 2000 84 plant 3.1 0.93 0.62 1.55 | ||
| 2000 102 fert 2.4 0 2.2 |
There was a problem hiding this comment.
Lots of events are repeated. Please check upstream workflow.
There was a problem hiding this comment.
Yes,these are the replicate plots, each plot's management row is being written as a separate event instead of aggregating to one per treatment per date. will fix the aggregation in the pipeline and regenerate.
| 2000 84 plant 3.6 1.08 0.72 1.8 | ||
| 2000 84 plant 3.6 1.08 0.72 1.8 | ||
| 2000 84 plant 3.1 0.93 0.62 1.55 |
There was a problem hiding this comment.
There should be a single plant event, not clear why row 3 has a different value.
There was a problem hiding this comment.
this was the 3 replicate plots written separately; now one plant event per date averaged across plots (day-84=3.4, mean of the old 3.6/3.6/3.1).
| @@ -1,41 +1,41 @@ | |||
| plantWoodInit 2189.40929649864 | |||
| plantWoodInit 30000 | |||
There was a problem hiding this comment.
plantwoodinit should be 0 for an annual cropland; biomass should be added w/ planting event
For context, 30kg/m2 of standing biomass is for a very dense forest (90th quantile according to ForC database); almond orchards are , not an annual cropland.
There was a problem hiding this comment.
Set to 0, pushed. Flagged separately that the annual_crop PFT posterior is producing the 30000 (and it's outside its own min/max), but left that upstream fix to you since it's shared infra.
There was a problem hiding this comment.
@Alomir do we still use (need to use) param-spatial files in tests?
There was a problem hiding this comment.
We do not. Nor do we want the six-column version of the regular param file (which I fixed).
While we are here, this version of the param file was missing leafOnReallocFrac, though I added it for my testing. It should get added somewhere in the pipeline so it is calibrated.
Also also - this will only really help russell_4 if we turn on LITTER_POOL and ANAEROBIC, and calibrate the relevant params for those modes too. We could do this for russell_1, which I think doesn't turn those on?
Summary
Per @dlebauer's comment in #290, this updates the
tests/smoke/russell_4test inputs with the actual SIPNET ensemble run files from the Russell Ranch (UC Davis Century Experiment) cal/val site.Related issues
Checklist
docs/CHANGELOG.mdupdated with noteworthy changesclang-format(rungit clang-formatif needed)Note: See CONTRIBUTING.md for additional guidance. This repository uses automated formatting checks; if the pre-commit hook blocks your commit, run
git clang-formatto format staged changes.