Expected Behavior
RuFaS should use enteric methane consistently for two separate purposes:
- Unmitigated methane for NASEM metabolizable energy (ME) and ration optimization.
- Mitigated methane for GHG reporting and downstream emissions outputs.
Current Behavior
The NASEM ration optimizer appears to use mitigated enteric methane in the ME calculation:
ME = digestible energy − gas energy − urine energy
Because 3-NOP lowers enteric methane, gas-energy loss decreases. This can allow the optimizer to meet energy constraints with lower DMI, creating a feedback where methane mitigation changes optimized intake through the energy calculation.
Possible Solution
Split enteric methane into two values with separate purposes:
enteric_methane_for_energy: unmitigated CH₄ used in NASEM ME and ration optimization.
enteric_methane_emission: mitigated CH₄ used for GHG reporting and downstream emissions calculations.
Minimal code direction:
Store the unmitigated cow-level methane value before applying 3-NOP in EntericMethaneCalculator / DigestiveSystem. Then pass this unmitigated value to Pen._attempt_formulation() and NutritionSupplyCalculator.calculate_nutrient_supply() for NASEM ME calculations.
Keep the mitigated methane value for emission reporting.
Another possible solution is to let the users to choose by setting up a boolean parameter in the constants.csv file (open for more discussion).
Steps to Reproduce
- Run a baseline scenario using the NASEM ration optimizer without 3-NOP (choose Upper Midwest or Northeast diets).
- Record enteric methane, gas-energy loss, ME, DMI, and milk production.
- Run the same scenario with 3-NOP enabled.
- Compare whether optimized DMI changes because mitigated methane reduces gas-energy loss.
Context (Environment)
This issue affects methane mitigation scenarios in RuFaS. The goal is to represent 3-NOP methane reduction in GHG outputs without allowing the reduced methane energy loss to unintentionally drive ration optimization and DMI changes.
Detailed Description
In the current mechanism, enteric methane contributes to gas-energy loss in the NASEM ME calculation. When 3-NOP reduces enteric methane, the calculated gas-energy loss decreases. This increases available ME for a given intake level and may cause the optimizer to reduce DMI.
This behavior should be reviewed because the methane value used for energy accounting may need to differ from the methane value used for emissions reporting.
Possible Implementation
Add or pass two methane values through the relevant classes/functions:
- Use unmitigated methane for NASEM ME and ration optimization.
- Use mitigated methane for GHG reporting and downstream emissions calculations.
Suggested locations to review:
EntericMethaneCalculator
DigestiveSystem
Pen._attempt_formulation()
NutritionSupplyCalculator.calculate_nutrient_supply()
Target Deadline
TBD
Expected Behavior
RuFaS should use enteric methane consistently for two separate purposes:
Current Behavior
The NASEM ration optimizer appears to use mitigated enteric methane in the ME calculation:
ME = digestible energy − gas energy − urine energy
Because 3-NOP lowers enteric methane, gas-energy loss decreases. This can allow the optimizer to meet energy constraints with lower DMI, creating a feedback where methane mitigation changes optimized intake through the energy calculation.
Possible Solution
Split enteric methane into two values with separate purposes:
enteric_methane_for_energy: unmitigated CH₄ used in NASEM ME and ration optimization.enteric_methane_emission: mitigated CH₄ used for GHG reporting and downstream emissions calculations.Minimal code direction:
Store the unmitigated cow-level methane value before applying 3-NOP in
EntericMethaneCalculator/DigestiveSystem. Then pass this unmitigated value toPen._attempt_formulation()andNutritionSupplyCalculator.calculate_nutrient_supply()for NASEM ME calculations.Keep the mitigated methane value for emission reporting.
Another possible solution is to let the users to choose by setting up a boolean parameter in the constants.csv file (open for more discussion).
Steps to Reproduce
Context (Environment)
This issue affects methane mitigation scenarios in RuFaS. The goal is to represent 3-NOP methane reduction in GHG outputs without allowing the reduced methane energy loss to unintentionally drive ration optimization and DMI changes.
Detailed Description
In the current mechanism, enteric methane contributes to gas-energy loss in the NASEM ME calculation. When 3-NOP reduces enteric methane, the calculated gas-energy loss decreases. This increases available ME for a given intake level and may cause the optimizer to reduce DMI.
This behavior should be reviewed because the methane value used for energy accounting may need to differ from the methane value used for emissions reporting.
Possible Implementation
Add or pass two methane values through the relevant classes/functions:
Suggested locations to review:
EntericMethaneCalculatorDigestiveSystemPen._attempt_formulation()NutritionSupplyCalculator.calculate_nutrient_supply()Target Deadline
TBD