DOI: 10.6084/m9.figshare.28946087.v3
title: Ambient Air Pollutant Dynamics (2010–2025) and the Exceptional Winter 2016–17 Pollution Episode: Implications for a Uranium/Arsenic Exposure Event

description: <b>TL;DR</b><br>Excel file (AP_NABEL_Zurich_2010–2025.xlsx) providing raw and fully imputed daily time series (late 2009–May 2025) for key air pollutants (PM₁₀, PM₂.₅, EC, CO, NO₂, SO₂) and derived ratios for Zurich-Kaserne. Includes imputation statistics, data dictionary, and the Python imputation code (Imputation_Air_Pollutants_NABEL.py). Accompanying plots show 28-day running averages, and a table compares winter pollutant burdens (2015/16–2018/19), highlighting the extreme Winter 2016/17 episode and its potential link to a documented urinary U/As spike (https://doi.org/10.6084/m9.figshare.27435639.v5) between March and May 2017.<sup>1,2</sup><br><br><b>Abstract</b><br>Ambient air quality monitoring data from the Zurich-Kaserne NABEL station, spanning late 2009 to mid-2025, were compiled and processed to create a complete daily time series (primarily focused on 2010-2025 for analysis) for key atmospheric pollutants: PM₁₀, PM₂.₅, the calculated coarse fraction (PM₁₀₋₂.₅), elemental carbon (EC), CO, NO₂, SO₂, and relevant diagnostic ratios (EC/PM₂.₅, NO₂/SO₂, PM₂.₅/PM₁₀₋₂.₅, PM₂.₅/PM₁₀). Particular attention is given to the exceptionally severe and compositionally distinct pollution episode during the winter of 2016–2017, a period preceding a documented rise in urinary uranium (U) and arsenic (As) concentrations in patient cohorts¹. Missing data, especially for PM₂.₅ before its continuous monitoring began in January 2016, were imputed using a robust methodology involving interpolation and machine learning (XGBoost), incorporating essential plausibility constraints based on established aerosol science and NABEL observations. This repository provides the raw data, the complete imputed daily dataset, imputation statistics, a data dictionary, the Python code used (Imputation_Air_Pollutants_NABEL.py), smoothed time-series plots (28-day running average), and a comparative table of winter pollutant burdens. The long-term data contextualizes the 2016-17 winter and supports further investigation into links between air quality and health outcomes, considering potential sources including long-range transport or local crustal material resuspension.<br><br><b>Background & Rationale</b><br>The unusual spike in patient urinary uranium and arsenic in early 2017¹ prompted an investigation into potential environmental exposure pathways. Ambient air pollution, particularly fine particulate matter capable of long-range transport, was considered a primary candidate. This dataset was compiled and analyzed to:<br>Characterize the air quality profile during the winter (Dec 2016–Mar 2017) immediately preceding and overlapping with the initial phase of the U/As exposure event.Compare this "critical winter" to analogous periods in other years to identify unique atmospheric conditions or pollutant signatures.Evaluate whether the observed air pollutant characteristics were consistent with sources known to emit uranium and arsenic.<b>Methods & Data SourcesPrimary Measurements:</b> <br>Daily mean concentrations of Particulate Matter ≤ 10 µm (PM₁₀), Particulate Matter ≤ 2.5 µm (PM₂.₅, routinely measured from Jan 2016 onwards), Elemental Carbon (EC), Carbon Monoxide (CO), Nitrogen Dioxide (NO₂), and Sulfur Dioxide (SO₂) were obtained from the Swiss National Air Pollution Monitoring Network (NABEL) database via the Bundesamt für Umwelt (BAFU) for the Zurich-Kaserne station (monitoring code 'ZUE'). The dataset covers the period from November 1st, 2009, through May 7, 2025. This raw, unaltered data, along with initially derived ratios (PM₁₀₋₂.₅, PM₂.₅/PM₁₀, EC/PM₂.₅, NO₂/SO₂, PM₂.₅/PM₁₀₋₂.₅) where components were available, is provided in the Raw_AP_Data_Zurich_2010-25 sheet of the accompanying Excel file (AP_NABEL_Zurich_2010–2025.xlsx).<br><br><b>Missing-Data Handling & Imputation: </b>The following sequential steps were applied to create a complete and consistent daily time series suitable for analysis (presented in the Imputed_AP_Data_Zurich_2010-25 sheet), particularly addressing the absence of routine PM₂.₅ measurements prior to January 2016. The full implementation is detailed in the accompanying Python script (Imputation_Air_Pollutants_NABEL.py). Summaries of imputation counts are provided in the Imputation_Stats sheet, and the codes used for data source/modification flags are explained in the Data_Dictionary_Imputation sheet.<br><br><i>1. </i><i>Linear Interpolation: </i>Missing values for all pollutants except PM₂.₅ (i.e., NO₂, SO₂, CO, PM₁₀, EC) were initially filled using standard linear interpolation (pandas.DataFrame.interpolate). Values imputed via this method are assigned a flag value of 2 in their respective _Flag column (e.g., PM10_Flag = 2). Original, measured values retain a flag of 0.<br><br><i>2. Mean Imputation Fallback for Predictors:</i> Any remaining gaps in these non-PM₂.₅ pollutant columns (after linear interpolation) were filled using the overall column mean (sklearn.impute.SimpleImputer(strategy='mean')) to ensure a complete predictor set for the subsequent step. Values imputed via this method do not receive a distinct flag but retain their flag from the previous step (0 or 2); the Imputation_Stats sheet reports the count affected.XGBoost <br><i>3. Imputation for PM₂.₅: </i>Missing PM₂.₅ values (primarily pre-Jan 2016) were imputed using an XGBoost regression model (xgboost.XGBRegressor). The model used the fully imputed time series of NO₂, SO₂, CO, PM₁₀, and EC as predictor variables. It implicitly learns seasonal patterns from predictor seasonality and was trained using only time periods with measured PM₂.₅ (PM2.5_Source = 1). PM₂.₅ values generated by this model are assigned PM2.5_Source = 3.<i>4. Plausibility Capping during PM₂.₅ Imputation:</i> As PM₂.₅ values were predicted by XGBoost, they were immediately constrained:<br>a. Non-negativity (PM₂.₅ ≥ 0).<br>b. Physical Limit (PM₂.₅ ≤ PM₁₀).<br>c. Ratio Bounds: Adjusted to satisfy 1.4 ≤ PM₂.₅ / (PM₁₀ – PM₂.₅) ≤ 9.0 (translating to (1.4/2.4)*PM₁₀ ≤ PM₂.₅ ≤ 0.9*PM₁₀), based on NABEL data and Gehrig & Buchmann (2003).<sup>3</sup><br>5. Global Plausibility Checks: After initial imputation, the entire dataset was checked:<br>a. Final PM₂.₅ ≤ PM₁₀ enforcement.<br>b. Minimum PM₂.₅ Floor: PM₂.₅ enforced to be ≥ (1.2/2.2)*PM₁₀.<br>c. Minimum Coarse Fraction: (PM₁₀ – PM₂.₅) ensured to be ≥ 0.1 µg/m³ (adjusting PM₂.₅ if needed after attempting interpolation for &lt;=0 values).<br><br><b>Derived Quantities:</b><br>The coarse fraction (PM₁₀₋₂.₅ = PM₁₀ - PM₂.₅) and the diagnostic ratios (PM₂.₅/PM₁₀, EC/PM₂.₅, NO₂/SO₂, PM₂.₅/PM₁₀₋₂.₅) were calculated using the final, fully processed daily concentration data found in the Imputed_AP_Data_Zurich_2010-25 sheet. The PM₂.₅/PM₁₀₋₂.₅ ratio column was hard-clipped to ensure values fall within the range [1.4, 9.0].<br><br><b>Data Smoothing for Plots:</b><br>To visualize underlying trends in the accompanying figures, 28-day running averages were calculated from the daily data in the Imputed_AP_Data_Zurich_2010-25 sheet for all presented pollutants and ratios.<br><br><b>Comparative Winter Periods:</b><br>Four distinct winter periods (December 1st to March 31st for 2015/16, 2016/17, 2017/18, 2018/19) were qualitatively compared in Table 1.png based on assessing the relative pollutant load observed in the 28-day smoothed time series data.<br><br><b>Data Source:</b><br>All primary air quality data originates from the NABEL network, Bundesamt für Umwelt (BAFU), Switzerland.<br><br><b>Files Included (7 total)</b><br><b>AP_NABEL_Zurich_2010–2025.xlsx</b> (Microsoft Excel Spreadsheet)Raw_AP_Data_Zurich_2010-25: Unaltered daily measurements and basic derived ratios (Nov 2009-mid 2025), contains original missing values including blanks for PM₂.₅ pre-Jan 2016.Imputed_AP_Data_Zurich_2010-25: Complete daily time series (Nov 2009-mid 2025) after all imputation and plausibility adjustments. Used for analysis and plots. Includes source/flag columns.Imputation_Stats: Summary table of imputation counts per pollutant and method applied to generate the Imputed_AP_Data... sheet.Data_Dictionary_Imputation: Legend explaining source/flag codes used in the Imputed_AP_Data... sheet.<br><b>Imputation_Air_Pollutants_NABEL.py</b> (Python Script)The Python code used to perform all data cleaning, imputation, plausibility checks, and calculations, generating the Imputed_AP_Data... sheet and associated stats/legend info from the raw data. Requires pandas, numpy, xgboost, scikit-learn, openpyxl.<br><b>Zurich_AP_TimeSeries_PM_2010-2025.png</b>Plot showing 28-day running averages for PM₁₀, PM₂.₅, and PM₁₀₋₂.₅ (based on imputed data). (See Caption 1).<b>Zurich_AP_TimeSeries_GasEC_2010-2025.png</b>Plot showing 28-day running averages for EC, CO, NO₂, SO₂ (based on imputed data). (See Caption 2).<br><b>Zurich_AP_TimeSeries_Ratios_2010-2025.png</b>Plot showing 28-day running averages for EC/PM₂.₅ (from Jan 2016), NO₂/SO₂, PM₂.₅/PM₁₀₋₂.₅ (from Jan 2016). (See Caption 3).<b>air_pollutants_timeseries_uploaded.pdf</b> (Multi-page PDF Document)<b>Contents:</b> A document presenting compiled individual time-series plots for each of the ten pollutants and ratios. Each panel displays the 14-day (or 4-week) moving average from January 2015 to June 2019, with vertical lines indicating January 1st of each year for easy temporal orientation.<b>Utility:</b> Provides a quick, comprehensive visual overview of the temporal trends for all analyzed metrics.<br><b>Table 1.png</b> (Image File)<b>Contents:</b> A high-resolution image of the "Qualitative Comparison of Estimated Winter Air Pollutant Burdens." This table summarizes the relative pollutant load (categorized from Low ↔ Very High) for each of the four defined winter periods across all ten metrics.<b>Utility:</b> Offers an at-a-glance comparison highlighting the unique characteristics of the Winter 2016–2017 period.<b>Key Findings & Discussion</b><br>The extended 2010-2025 time series provides valuable long-term context. Analysis confirms the winter of December 2016–March 2017 as an exceptionally polluted period, particularly notable for:<b>High PM</b><sub><strong>10</strong></sub><b>, PM₂.₅, EC, and NO₂:</b> This winter exhibits pronounced peaks in these pollutants compared to many other years in the series.<b>Distinct NO₂/SO₂ Winter Plateau:</b> The NO₂/SO₂ ratio reached unprecedentedly high winter levels, marking the start of a longer trend driven primarily by declining SO₂.<b>Long-Term Trends:</b> The full time series reveals significant downward trends in NO₂, EC, and SO₂ over the ~15-year period. PM₁₀ also shows a general decrease. CO appears relatively more stable.<b>Imputed Data Characteristics:</b> PM₂.₅ values prior to Jan 2016 are model-imputed. As detailed in the Methods and Python code, while plausibility constraints based on PM₁₀ and established ratios were applied, the resulting PM₂.₅ (and consequently the derived PM₁₀-₂.₅ and PM₂.₅-based ratios) in this imputed period may exhibit less variability compared to periods with direct measurements. This likely reflects modelling challenges across different long-term pollutant regimes and potential smoothing from predictor imputation. The 28-day running average applied further smooths all series visually.<b>Evidence for a Crustal Particulate Source Enriched in Uranium and Arsenic:</b> Although PM₁₀ and PM₂.₅ soared to levels not seen since winter 2012–13, combustion tracers—NO₂ rose only modestly, CO remained stable, and SO₂ continued its decline. This decoupling shows that the extra particle mass cannot be attributed to fuel burning alone and instead requires a non-combustion particulate input. In Switzerland, soils are known to be enriched in uranium, both from natural geology and decades of phosphate-fertilizer application,<sup>4</sup> and arsenic is likewise a common soil component. Resuspension of this U/As-bearing crustal material during the winter 2016–17 episode offers a plausible pathway for the coincident urinary uranium and arsenic spikes in patient cohorts.<br><b>Link to Uranium/Arsenic Exposure Event</b><br>In winter 2016–17, PM₁₀ and PM₂.₅ surged to levels unseen since 2012–13, even as NO₂ rose only modestly versus the year before, CO remained essentially flat, and SO₂ continued its downward trend. This decoupling—an unprecedented bulk‐particle spike without a commensurate increase in combustion gases—points to an additional crustal or mineral‐dust source augmenting the fine‐particle load. Such an influx of mineral matter, potentially rich in naturally occurring or anthropogenically concentrated U and As, could have amplified inhalation exposures just as urinary U/As levels began to climb in local and Düsseldorf-referred patients around March 2017¹. While long-range transport of U/As-bearing fly ash remains a leading hypothesis, targeted chemical speciation or source-apportionment for that period would be required to distinguish remotely sourced industrial emissions from local crustal inputs.<br><br><b>Potential Uses of this Dataset:</b>This comprehensive, long-term, and consistently processed dataset can support:Detailed analysis of air pollution trends, seasonal cycles, and driving factors in Zurich.Investigations into the characteristics and frequency of extreme pollution events.Epidemiological studies examining associations between long-term or event-based air pollution exposures and various health outcomes.Validation and improvement of atmospheric chemical transport models for the region.Comparative air quality studies across different urban environments in Switzerland or Europe.<b>References</b>.Carmine TC. The Uranium Episode (March–May 2017) in Temporal Context: Associations with CEMET Uranium, Aluminum, and Local PM₁₀ Exposure (2016–2019) [Dataset]. Figshare; 2024. doi:10.6084/m9.figshare.27435639.v5Carmine TC. Reconstructed Zurich Air Pollution Data (2015–2019) with Lag Structure for Urinary Metal Toxicokinetic Analysis [Dataset]. Figshare; 2025. doi:10.6084/m9.figshare.28830278.v14Gehrig R, Buchmann B. Characterising seasonal variations and spatial distribution of PM10 and PM2.5 concentrations based on the Swiss NABEL network. Atmos Environ. 2003;37(19):2571–2580. doi:10.1016/S1352-2310(03)00221-8.Bigalke M, Niederschulte H, Fiedler I, et al. Uranium budgeting and leaching in Swiss agricultural systems. <i>Front Environ Sci</i>. 2020;8:54. doi:10.3389/fenvs.2020.00054<b>Citation</b><br>Please cite this repository using its assigned DOI, and acknowledge the specific DOIs for associated datasets (References 1 and 2) when reusing data or figures.<br>