Non-Additive Emission Impacts When Using Zero-Out Method for SNAP Source Apportionment in SMOKE

Hello SMOKE community,

I’m conducting source apportionment using SMOKE v4.8 for 13 SNAP emission sectors by running the zero-out method (BASE scenario plus 13 scenarios with each SNAP category zeroed via removing one category at a time) for each month of 2019. In my post processing, I’m getting non-additive results where the sum of individual SNAP contributions doesn’t equal the BASE scenario, and I’m seeking guidance on whether this is expected behavior.
Setup:

SMOKE v4.8, area sources, European domain
13 SNAP categories (energy, industry, transport, agriculture, etc.)
Year 2019, monthly SMOKE runs
Zero-out method: One SNAP category is not taken into consideration for each run, by removing its txt file from arinv.area.lst inside area inventory folder.

For post-processing, I computed total annual emissions per pollutant and per scenario by summing all hourly emission values over all grid cells and over all timesteps from the SMOKE EGTS output files. Specifically:
For each scenario (BASE and each zero-SNAP run), for each pollutant, I read all .ncf files, summed emissions over all time steps and spatial grid cells, without any averaging or normalization. The resulting value represents the total annual emission mass over the full modeling domain. Sectoral impacts were computed as:
ImpactSNAPi=BASE−zeroSNAPi. Then, I evaluated additivity by comparing:
∑ImpactSNAPi vs BASE.

PMFINE PMC PM10 NO NO2 SO2 NH3 CO NOx
IMPACTSUM 620327566 351324279 971650572 48463517 47688032.5 39428038.75 102982685.5 373153510 96151520.5
BASE-IMPACTSUM 2584338 1943727 4529336 1797991.5 66881.25 88870.75 29080.5 16767804 1864914
relative residual % 0.00415 0.00550 0.00464 0.03577 0.00140 0.00225 0.00028 0.04300 0.01903

Small residual differences (<5%) were observed, so I am trying to understand the reasons. A colleague supports that successfully used this method some years ago with perfect additivity, so I’m concerned something is wrong with my approach. Does SMOKE distribute emissions, renormalize temporal splits, apply speciation or vertical allocation? When one sector is removed, can temporal redistribution slightly shift how other emissions are written due to floating point ordering, accumulation and minor nonlinearities and introduce small deviations? Is there available documentation on what normalization is performed (if it does) or whether it could cause the remaining non-zeroed profiles to be redistributed differently when one category is removed?

Thank you for any insights!

Hi,

Depending on the temporal profile type it is common to see aggregate differences less than 5%, particularly when using a representative day approach. Do you have an example temporal profile that you can share?

SMOKE, by default, renormalizes temporal profiles ( 4.17.3. Files and Environment Variables ). This can be turned off by setting the environment variable RENORM_TPROF to “N”.

Hello,

Thank you for the reply,

I am using standard monthly, weekly, and hourly temporal profiles (APTPRO files) and my ASSIGNS files do not have the variable RENORM_TPROF.

amptpro_weekly.csv (1006 Bytes)

amptpro_hourly.csv (2.4 KB)

amptpro_monthly.csv (1.3 KB)