Add management practice priors#3
Conversation
There was a problem hiding this comment.
This is a solid step toward a structured priors system. It is clear that you have put a lot of thought into the specification, and this is a first step toward a framework that could be used for monitoring, future scenarios, and creation of test runs.
management_priors.yaml appears aligned with the yaml example I drafted in ccmmf/organization#170, although we skipped the explicit "Before implementation the first step is to discuss and have the specification reviewed." step.
Given the near-term need to simulate management inputs, I recommend that we address a few points, focusing on those that will more clearly define the approach and align with existing PEcAn functions and data (like events_schema.json and PEcAn.data.land::look_up_fertilizer_components).
Let's capture feedback from @mdietze, @sarahkanee and others, and triage what should be included in this PR vs what belongs in new issues.
To fix before merging:
- Consistent Practice IDs. And these should be consistent with names in events.json where practical. We may need to expand the list of practices in events_schema.json; ideally we don't need a separate practice dictionary.
- specifically, in management_priors.yaml, practices uses 'cover_crop_annual', 'compost_application', 'irrigation_drip' whereas adoption_rates has 'cover_crop', 'compost', and compatibility has 'cover_crop', 'irrigation_flood', 'tillage'.
- Make sure that README is consistent with scenarios.yaml; remove scenario_parameters.csv if obsolete.
Future work:
- Gather feedback from group and triage - decide what's needed in this PR vs what can be clarified in new issues for future implementation.
- criteria for merging: meets near term needs to simulate management inputs and does not cause unnecessary technical debt (i.e. downstream pipelines that will not be transferable to monitoring and projection workflows, beyond what is necessary to learn through the process of implementation and application)
- Consider what this would look like as a spreadsheet from the perspectives of end users, data validation, and code complexity.
- Expand the priors to better represent the common crops/PFTs in CA, and regions. Also need to have generic CFT fallbacks. Coverage doesn't need to be comprehensive at the crop level, but should reflect what is available from CDFA/UCANR/NRCS sources for major CA crops.
- Adoption rates will be useful in the short term for simulating monitoring workflows. Where applicable, these should be directly informed by initial conditions + transition matrices derived from LandIQ data.
- but note that even though LandIQ says it has mixed cropping systems, it does not, and this is one place that adoption rates (e.g. % of orchards with ground cover) will be helpful.
|
|
||
| ### STIR Scale Background | ||
|
|
||
| NRCS uses the Soil Tillage Intensity Rating (STIR) on a **0-200 scale**: |
There was a problem hiding this comment.
add definition of STIR - and confirm how this is linked to SIPNET tillage efficiency.
|
|
||
| ### Our Model Parameter | ||
|
|
||
| Our parameter `tillage_eff_0to1` represents SOM pool transfer fraction, not direct STIR. The conversion is approximately `tillage_eff ≈ STIR / 200`. |
There was a problem hiding this comment.
I think it is a good idea to use STIR to inform the SIPNET parameter, especially to inform the relative impact of different tillage tools and practices.
However, there isn't a direct mapping to a SIPNET parameter, and the parameter would probably be best calibrated using a time series of CO2 flux.
So for an MVP I think it would be sufficient to create a table of priors that represent no-till, reduced-till, and conventional
| Our parameter `tillage_eff_0to1` represents SOM pool transfer fraction, not direct STIR. The conversion is approximately `tillage_eff ≈ STIR / 200`. | |
| The SIPNET parameter $f_\text{till}$ (`tillage_eff_0to1`) represents the transient increase in decomposition rate that exponentially decays over time[^1]. SOM pool transfer fraction, not direct STIR. The conversion is approximately `tillage_eff ≈ STIR / 200`. | |
| [^1]: SIPNET Documentation https://pecanproject.github.io/sipnet/user-guide/model-inputs/#tillage |
| We use Beta distributions because: | ||
| 1. Parameter is bounded [0, 1] |
There was a problem hiding this comment.
need to separate bulleted list by blank line for the list to render correctly
| We use Beta distributions because: | |
| 1. Parameter is bounded [0, 1] | |
| We use Beta distributions because: | |
| 1. Parameter is bounded [0, 1] |
| distribution: beta | ||
| a: 7 | ||
| b: 13 # mean=0.35 | ||
| date: |
There was a problem hiding this comment.
typically tillage will occur some number of days before planting. It may make more sense to anchor tillage dates to planting.
It may sense to anchor other management types to planting dates, e.g.
- irrigation only between planting and harvest (perhaps a few days ahead)
- pre-planting fertilization; post-planting side-dress
|
|
||
| ## Compost Application | ||
|
|
||
| ### CDFA Official Rates |
There was a problem hiding this comment.
PEcAn.data.land::look_up_fertilizer_components provides default values for different fertilizer and organic matter types, including the C:N ratio and mineral N content. Would that be helpful here? If CDFA specifies these very broad "compost types" it may not be necessary, but if there are statistics on the frequency and application rates of specific NCC types, it could be useful.
|
|
||
| CalRecycle lab data (n=1364 samples) shows typical finished compost C:N = 14-20. | ||
|
|
||
| **Prior:** Normal(16, 3) -> 95% CI [10, 22] |
There was a problem hiding this comment.
should there be separate priors for high and low C:N OM additions?
| - [reduced_tillage, cover_crop] | ||
| - [compost_application, reduced_tillage] | ||
| - [irrigation_drip, cover_crop_orchard] | ||
| incompatible: |
There was a problem hiding this comment.
what makes these incompatible? Need to add sources.
|
|
||
| metadata: | ||
| sources: | ||
| - id: nrcs_cps_329 |
There was a problem hiding this comment.
For linking priors to references, I think it would be better to include the id, and then use a bibtex file to store the references. Create a group in Zotero with files and export the bibtex.
| source: CDFA Gravuer 2016 Table 2 | ||
| parameters: | ||
| org_c_kg_m2: | ||
| # Table 2: annual crops + lower N compost = 4.0-5.3 dry tons/ac |
There was a problem hiding this comment.
- we should leverage and / or extend
PEcAn.data.land::look_up_fertilizer_componentsto support this workflow (look up N & C composition) - organic matter ammendments typically have some mineral N (NO3 &/or NH4)
| b: 15 # ~25%, flood dominant | ||
|
|
||
| # Crop-specific baselines | ||
| crop_baselines: |
There was a problem hiding this comment.
Need to have fallbacks for crops and regions not covered.
Regions should have an associated polygon [or perhaps could be a set of county names]
Summary
Adds documented prior distributions for CA ag management parameters, derived from NRCS practice standards, CDFA program guidelines, and UC ANR extension publications.
data/management_priors.yaml- Machine readable priors for ensemble samplingR/sample_priors.R- Functions to sample from prior distributionsdocs/management_priors.md- Documentation with source justificationsscenarios.yaml- Updated parameter values based on verified sources and added commentsVerification
All priors verified against primary sources:
Implements - #161