
Read a HaNi atmospheric nitrogen deposition species onto WHEP's grid.
Source:R/n_deposition.R
read_n_deposition.RdReads one HaNi NHx or NOy deposition NetCDF (native 5-arcmin grid, total
grams N deposited per native cell per year) and aggregates it to WHEP's
0.5-degree grid by summing the 6x6 fine cells inside each 0.5-degree
block, since the source quantity is an extensive mass. Returns the summed
mass per 0.5-degree cell; converting to a per-hectare rate needs the true
cell area and is done downstream by build_n_deposition().
Usage
read_n_deposition(
species = c("nhx", "noy"),
hani_dir = NULL,
years = NULL,
example = FALSE
)Source
Tian, H., Bian, Z., Shi, H., Qin, X., Pan, N., Lu, C., Pan, S., Tubiello, F. N., Chang, J., Conchedda, G., Liu, J., Mueller, N., Nishina, K., Xu, R., Yang, J., You, L. and Zhang, B. (2022). History of anthropogenic Nitrogen inputs (HaNi) to the terrestrial biosphere: a 5 arcmin resolution annual dataset from 1860 to 2019. Earth System Science Data 14(10), 4551-4568. doi:10.5194/essd-14-4551-2022
Arguments
- species
Which HaNi species to read,
"nhx"or"noy".- hani_dir
Path to the directory holding
ndep_nhx.ncandndep_noy.nc. Defaults toSys.getenv("WHEP_HANI_DIR").- years
Optional integer vector of calendar years to keep.
NULLreads every year present in the file.- example
If
TRUE, return a small fixture instead of reading data. Defaults toFALSE.
Value
A tibble with lon, lat, year, value_g (total grams N
deposited in the 0.5-degree cell that year) and method_deposition,
the constant "hani". The provenance tag travels with the field so
that build_n_deposition() can record where its deposition came from
instead of asserting it; see that function's method_deposition note.
Measured European bias, growing backwards in time
HaNi is too flat over Europe: it largely misses both the European deposition peak around 1990 and the fall that emission controls drove afterwards. Measured against the EMEP MSC-W model (rv5.6, 2025 reporting round) on WHEP's own 0.5-degree grid, over the 3193 cells assigned to an EMEP core country, area-weighted kg N/ha/yr:
| year | HaNi | EMEP | HaNi / EMEP |
| 1990 | 9.81 | 14.08 | 0.696 |
| 2000 | 9.65 | 11.28 | 0.856 |
| 2010 | 9.04 | 9.56 | 0.946 |
| 2019 | 8.00 | 8.07 | 0.992 |
Across 1990-2019 HaNi falls 18.4% where EMEP falls 42.7%, and the shortfall summed over those cells and years is 22.6 Tg N.
Those are whole-cell figures, and part of the level gap in them is a
measurement artifact: HaNi's mass is deposition to land within the cell
while EMEP is a density over the whole cell, sea included, so dividing
HaNi by whole-cell area reads low in every coastal cell (ratio 0.35 in 1990
over cells under half land). The trend does not depend on it.
Restricted to the cells whose territory in build_polycell_support() is at
least 98% of the cell (2605 cells):
| year | HaNi | EMEP | HaNi / EMEP |
| 1990 | 10.6 | 14.6 | 0.727 |
| 2000 | 10.4 | 11.5 | 0.901 |
| 2010 | 9.71 | 9.88 | 0.982 |
| 2019 | 8.61 | 8.28 | 1.04 |
HaNi falls 19% and EMEP 43%. The error is therefore a function of time, largest exactly when European deposition was largest, and it compounds backwards into the pre-1990 period where EMEP offers no check at all.
This reader returns HaNi as published. correct_n_deposition() applies an
opt-in, year-resolved correction of the European trend toward EMEP
(read_emep_deposition()), stamped method_deposition = "hani_emep_trend"
on the rows it touches; whether it becomes the default, and how it is
carried back before 1990, is the open decision in whep#1121.
validation/n_deposition_emep.R reproduces both tables and writes the full
per-country, per-year ratio series.
The comparison product is the EMEP MSC-W chemical transport model, run in support of the Convention on Long-Range Transboundary Air Pollution: Simpson, D. et al. (2012). The EMEP MSC-W chemical transport model – technical description. Atmospheric Chemistry and Physics 12(16), 7825-7865. doi:10.5194/acp-12-7825-2012