
Estimate livestock nitrogen, carbon and volatile-solids excretion.
Source:R/excretion.R
estimate_n_excretion.RdConverts realised feed intake (the output of redistribute_feed()) into
excreted nitrogen, carbon and volatile solids per
year x territory x sub_territory x livestock_category. All excretion methods
share one canonical nitrogen intake,
n_intake = sum(intake_dm_t * feed_n_content), so the methods are directly
comparable.
Carbon is the carbon of the excreted organic matter,
vs_excretion * c_vs_fraction, so it inherits the intake-and-digestibility
mass balance of the volatile solids. Urine carbon is not part of the
volatile solids under method_vs = "intake_digestibility" and is not
counted: at a C:N near 0.9 it is under a tenth of a dairy cow's excreted
carbon (Dijkstra et al. 2018, Table 5) and is respired within days of
deposition, so it never reaches the soil carbon this feeds.
Usage
estimate_n_excretion(intake, options = list())Arguments
- intake
A tibble of realised feed intake with at least
year,territory,sub_territory,livestock_category,item_cbs_code,feed_qualityandintake_dm_t(theredistribute_feed()result). The output ofget_feed_intake()does not fit: it is keyed byarea_codeandlive_anim_codeand carries nointake_dm_t, and it is refused with a pointer toredistribute_feed().territoryis a stringifiedarea_code(as.character(area_code), whatredistribute_feed()emits and what the whole manure chain carries through to the nitrogen inputs); aniso3cliteral is still resolved there but is deprecated, since it can only answer with an aggregation bucket and so loses the territory for 62 of the 257 codes it knows.- options
A named list of method options:
method:"intake_minus_retention"(default,n_intake * (1 - n_retention_frac)) or"intake_minus_product_n"(n_intake - product_n).method_vs:"intake_digestibility"(default,intake_dm_t * (1 - digestibility) * (1 - ash)).method_digestibility: wheredigestibilitycomes from."species_feed_quality"(default) looks it up per species and feed quality: pigs and poultry fed concentrates digest far more of them than a ruminant does, so they take the IPCC (2019) Table 10.2 (Updated) values for confined monogastrics; see Details."feed_quality"is the earlier species-blind lookup, one value per feed quality for every species, kept for comparison (whep#1007).method_c:"volatile_solids"(the only method,vs_excretion * c_vs_fraction). The route it replaced,n_excretiontimes thebio_coefsExcretaC:N, is deliberately not offered as an alternative: it applied a fresh-dung C:N to whole-excreta nitrogen, some 60% of which is urinary and carries almost no carbon, and returned 0.73 kg C per kg of volatile solids – above pure protein, so not a composition organic matter can have (whep#1006). A route that cannot be right is not a sensitivity case, so this option names the algebra behindc_excretionrather than a choice, andmethod_c_excretionhas one value until a second defensible method exists (whep#1100).c_vs_fraction: carbon per unit of volatile solids, kg C / kg VS. Default 0.47; see Details.forage_n: nitrogen content of the grazed forage that intake rows with noitem_cbs_codetake."assumed_midrange"(default, 0.02 kg N/kg DM, an assumed unverified value),"gleam_grass_fresh"(0.022),"gleam_grass_hay"(0.017) and"gleam_grass_mean"from GLEAM 3.0 Supplement S1 Tab. S.3.3, or"biomass_coefs_grass"(0.0174) from thebio_coefsGrassrow.product_n: a tibble (year,territory,sub_territory,livestock_category,product_n) required by"intake_minus_product_n".
Value
A tibble with one row per
year x territory x sub_territory x livestock_category and columns
n_intake, n_excretion, c_excretion, vs_excretion,
method_n_excretion, method_vs, method_digestibility,
method_c_excretion and method_forage_n.
Details
The default c_vs_fraction of 0.47 kg C per kg of volatile solids is the
carbon content of the components that make up faecal organic matter in
Dijkstra et al. (2018, Front. Sustain. Food Syst. 2:63,
doi:10.3389/fsufs.2018.00063, Table 1): fibre 0.44, microbial organic
matter 0.47, protein 0.52 and lipids 0.75 g C per g dry matter, weighted
towards the fibre and microbial debris that dominate faeces. Measured
manures bracket it: 0.52 for fresh bedded dairy manure (Choi et al. 2022,
PeerJ 10:e14134, doi:10.7717/peerj.14134, Table 1: 43.3% C and 83.3% VS
of dry matter) and 0.39-0.46 for stored cattle and pig manure (Baek et al.
2020, Int. J. Environ. Res. Public Health 17:4737,
doi:10.3390/ijerph17134737, Table 1).
Digestibility
Digestibility here is the digestible share of the feed's gross energy
(DE), which is what IPCC (2019) Eq. 10.24 uses for volatile solids. The
per-feed-quality values are a scaffold anchored on the GLEAM 3.0
ruminant feed table (gleam_feed_digestibility: fresh grass 66 and hay
58, straws 44-47) and are applied to every species under
"feed_quality". Under "species_feed_quality" three of them are
replaced by the representative values of the IPCC 2019 Refinement,
Vol. 4, Ch. 10, Table 10.2 (Updated), taking the mid-point of each range:
pigs,
high_quality: 0.85, growing swine in confinement (80-90). Market swine are the chain's representative pig category; mature confined swine are 70-80. The GLEAM 3.0 pig feed table (gleam_feed_conversion_ratios, Table S.3.4) agrees: maize 88, wheat 83, barley 76, soybean meal 80.pigs,
scavenging: 0.60, free-range swine (50-70).poultry,
high_quality: 0.89, broilers in confinement (85-93). Broilers are the representative poultry category of the whole manure chain; layers in confinement are 70-80.
Every other livestock category and feed quality keeps the scaffold value (rabbits too, although they borrow the swine coefficients elsewhere), and so does crop-residue feed for pigs and poultry: the GLEAM pig table gives straw 49 and crop tops 52, the same as the ruminant straws.
Examples
intake <- tibble::tribble(
~year, ~territory, ~sub_territory, ~livestock_category,
~item_cbs_code, ~feed_quality, ~intake_dm_t,
2020L, "203", NA, "Cattle_milk", 2513L, "high_quality", 100,
2020L, "203", NA, "Cattle_milk", NA, "grass", 500
)
estimate_n_excretion(intake)
#> # A tibble: 1 × 13
#> year territory sub_territory livestock_category n_intake n_excretion
#> <int> <chr> <lgl> <chr> <dbl> <dbl>
#> 1 2020 203 NA Cattle_milk 11.9 9.49
#> # ℹ 7 more variables: c_excretion <dbl>, vs_excretion <dbl>,
#> # method_n_excretion <chr>, method_vs <chr>, method_digestibility <chr>,
#> # method_c_excretion <chr>, method_forage_n <chr>