
Estimate direct soil N2O emissions from applied nitrogen.
Source:R/n_balance_losses.R
calculate_soil_n2o.RdFour emission-factor regimes for direct nitrous oxide from nitrogen
applied to soil, n2o_direct_n_t = n_input_t * ef.
"ipcc2019" (the default) is the IPCC 2019 Tier 1 wet/dry
disaggregation, keyed on each row's moisture_regime ("wet" or
"dry"), with every factor read from ipcc_2019_soil_n_ef:
EF1(IPCC 2019 Refinement Vol 4 Ch 11 Table 11.1 (Updated) p. 11.13): 0.016 for synthetic fertiliser and 0.006 for every other N input in wet climates, 0.005 for all N inputs in dry climates. Stamped"ipcc2019_wet_dry".EF1FR(same table): 0.004, the aggregated flooded-rice factor, on every rice row in both moisture and both water regimes. No drainage layer exists for its continuous-flooding (0.003) versus drained (0.005) split, and upland rice, which the table prices withEF1, has no layer of its own either. Rice rows are those whoseitem_cbs_codeis the CBS item of a production item classedCrop_irrig == "Rice"in items_prod_full (2807, rice and products). Stamped"ipcc2019_ef1fr".EF3PRP(same table) on excreta deposited by grazing animals, as the N-weighted blendexcreta_cpp_share * EF3PRP,CPP + (1 - excreta_cpp_share) * EF3PRP,SO, withEF3PRP,CPP0.006 wet and 0.002 dry for cattle, poultry and pigs andEF3PRP,SO0.003 for sheep and other animals. Excreta keep this factor on a rice row too: Equation 11.1 prices urine and dung deposited by grazing animals apart from the N applied to the crop. A row labelled by species reads its share from the label: 1 on"Excreta_cattle_monog", 0 on"Excreta_other". Stamped"ipcc2019_ef3prp_blend".Excreta labelled so only as the fallback of a manure-type split (
method_excreta_species == "fallback_label_no_species") is collected manure applied to the land, not grazing deposition: it takes the factor of applied manure on its row (EF1for other N inputs,EF1FRon a rice item), whatever its missing species mix. Stamped"ipcc2019_fallback_applied_manure".
"ipcc2019_atl_med" is the earlier IPCC 2019 Tier 1 option keyed on the
Atlantic/Mediterranean climate instead: the n2o_efs_disaggregated
table's two climate-level rows (irrig_type == "Tier_1" for ATL,
irrig_type == "Med_average" for MED, 0.010 and 0.005), whatever the
input. "aguilera" is a finer Mediterranean-calibrated disaggregation
(Cayuela et al. 2017), selectable where its irrig_type/fert_type
granularity is available and its regional emission factors apply:
ef * mf, ef from n2o_efs_disaggregated on (irrig_type, climate),
mf from fertiliser_n2o_modifiers on (fert_type, climate). An
"Excreta" row, whose species are carried as a share rather than in its
label, takes excreta_cpp_share * mf(Excreta_cattle_monog) + (1 - excreta_cpp_share) * mf(Excreta_other), stamped
"aguilera_excreta_blend"; a fallback-labelled "Excreta" row, which is
collected manure applied to the land and not grazing deposition, takes
mf(Solid) (0.38 on MED, 0.60 on ATL), stamped
"aguilera_fallback_applied_manure".
"ipcc2006" uses the n2o_efs_ipcc2006
table (IPCC 2006 Tier 1 defaults, flat 0.010 except flooded rice 0.003),
keyed like "aguilera" on (irrig_type, climate) with no mf.
Usage
calculate_soil_n2o(
x,
method = c("ipcc2019", "ipcc2019_atl_med", "aguilera", "ipcc2006"),
example = FALSE
)Source
IPCC (2019) 2019 Refinement to the 2006 IPCC Guidelines for National Greenhouse Gas Inventories, Vol 4, Ch 11, Table 11.1 (Updated), p. 11.13.
Arguments
- x
A tibble with
n_input_t.method = "ipcc2019"requiresfert_type("Synthetic","Solid","Liquid","Human","Recycling","SOM"or an excreta label:"Excreta","Excreta_cattle_monog","Excreta_other"),item_cbs_codeandmoisture_regime, plusexcreta_cpp_shareon"Excreta"rows."ipcc2019_atl_med"requiresclimate."aguilera"and"ipcc2006"requireclimateandirrig_type, and aguilerafert_type(andexcreta_cpp_shareon"Excreta"rows).- method
"ipcc2019"(default, IPCC 2019 Tier 1 wet/dry),"ipcc2019_atl_med"(IPCC 2019 Tier 1 on ATL/MED),"aguilera"(Mediterranean-calibrated) or"ipcc2006"(IPCC 2006 Tier 1).- example
If
TRUE, return a small fixture instead of computing fromx. Defaults toFALSE.
Value
x with n2o_direct_n_t and method_soil_n2o appended.
method_soil_n2o names the factor each row took: the method name, or
for "ipcc2019" one of "ipcc2019_wet_dry", "ipcc2019_ef1fr",
"ipcc2019_ef3prp_blend", "ipcc2019_fallback_applied_manure", and for
"aguilera" "aguilera_excreta_blend" on blended excreta rows and
"aguilera_fallback_applied_manure" on fallback-labelled ones.
Details
method = "ipcc2019" aborts when moisture_regime is absent
(whep_missing_moisture_regime), missing on any row
(whep_moisture_regime_na, naming the count) or neither "wet" nor
"dry" (whep_moisture_regime_value): which class a row belongs to is
decided where the drivers are built, not here. An excreta row carrying N
without an excreta_cpp_share aborts (whep_excreta_share_missing), as
does a share outside 0 to 1 (whep_excreta_share_invalid) and a share on
a species-labelled row that contradicts its label
(whep_excreta_share_label_conflict); a row with no excreta N emits
nothing whatever its mix. A fert_type with no direct
factor in Equation 11.1 ("BNF", "Deposition") aborts
(whep_soil_n2o_fert_type).
Examples
calculate_soil_n2o(example = TRUE)
#> # A tibble: 4 × 7
#> n_input_t fert_type item_cbs_code moisture_regime excreta_cpp_share
#> <dbl> <chr> <int> <chr> <dbl>
#> 1 10 Synthetic 2511 wet NA
#> 2 10 Solid 2511 dry NA
#> 3 10 Synthetic 2807 wet NA
#> 4 10 Excreta 3000 wet 0.5
#> # ℹ 2 more variables: n2o_direct_n_t <dbl>, method_soil_n2o <chr>