diff --git a/src/pyaro_readers/actrisebas/ActrisEbasReader.py b/src/pyaro_readers/actrisebas/ActrisEbasReader.py index e2b75fe..00d5e8c 100644 --- a/src/pyaro_readers/actrisebas/ActrisEbasReader.py +++ b/src/pyaro_readers/actrisebas/ActrisEbasReader.py @@ -286,7 +286,12 @@ def _read( for s_idx, site_name in enumerate(urls_to_dl): for f_idx, url in enumerate(urls_to_dl[site_name]): logger.info(f"reading file {url}") - tmp_data = xr.open_dataset(url) + try: + tmp_data = xr.open_dataset(url) + except Exception as e: + logger.error(f"failed to read {url} with error {e}") + assert url + continue # check for time filter by looking into # np.datetime64(tmp_data.attrs["time_coverage_start"].split()[0]) # and diff --git a/src/pyaro_readers/actrisebas/definitions.toml b/src/pyaro_readers/actrisebas/definitions.toml index b0e3b3d..7f39d99 100644 --- a/src/pyaro_readers/actrisebas/definitions.toml +++ b/src/pyaro_readers/actrisebas/definitions.toml @@ -74,6 +74,13 @@ ebas_component = ["sulphur_dioxide"] ebas_matrix = ["air",] standard_names = ["mass_concentration_of_sulphur_dioxide_expressed_as_sulphur_in_air", ] +[variables.concSso2] +actris_variable = ["sulfur dioxide mass concentration"] +actris_matrix = ["gas phase"] +ebas_component = ["sulphur_dioxide"] +ebas_matrix = ["air",] +standard_names = ["mass_concentration_of_sulphur_dioxide_expressed_as_sulphur_in_air", ] + [variables.vmrso2] actris_variable = ["sulfur dioxide mass concentration"] actris_matrix = ["gas phase"] @@ -89,6 +96,22 @@ ebas_component = ["pm10_mass"] ebas_matrix = ["pm10",] standard_names = ["mass_concentration_of_pm10_ambient_aerosol_particles_in_air", ] +[variables.concpm1] +actris_variable = ["aerosol particle mass concentration"] +#actris_variable = ["aerosol particle number concentration"] +actris_matrix = ["particle phase"] +ebas_component = ["pm1_mass"] +ebas_matrix = ["pm1",] +standard_names = ["mass_concentration_of_pm1_ambient_aerosol_particles_in_air", ] + +[variables.concpm25] +actris_variable = ["aerosol particle mass concentration"] +#actris_variable = ["aerosol particle number concentration"] +actris_matrix = ["particle phase"] +ebas_component = ["pm25_mass"] +ebas_matrix = ["pm25",] +standard_names = ["mass_concentration_of_pm2p5_ambient_aerosol_particles_in_air", ] + #[variables.] #actris_variable = [""] #actris_matrix = [""] diff --git a/tests/test_ActrisEbasReader.py b/tests/test_ActrisEbasReader.py index bdcd51f..c6e340d 100644 --- a/tests/test_ActrisEbasReader.py +++ b/tests/test_ActrisEbasReader.py @@ -1,5 +1,6 @@ import unittest import urllib.request +import logging import pyaro import pyaro.timeseries @@ -8,6 +9,8 @@ TEST_URL = "https://prod-actris-md.nilu.no/Version" VOCABULARY_URL = "https://prod-actris-md.nilu.no/V" +logger = logging.getLogger(__name__) + class TestActrisEbasTimeSeriesReader(unittest.TestCase): engine = "actrisebas" @@ -21,7 +24,9 @@ class TestActrisEbasTimeSeriesReader(unittest.TestCase): # pyaerocom_vars_to_read = ["vmrso2"] # pyaerocom_vars_to_read = ["concso4t"] - pyaerocom_vars_to_read = ["concpm10"] + # pyaerocom_vars_to_read = ["concpm10"] + # pyaerocom_vars_to_read = ["concpm25"] + pyaerocom_vars_to_read = ["concpm1"] station_filter = pyaro.timeseries.Filter.StationFilter( ["Birkenes II", "Jungfraujoch", "Ispra", "Melpitz", "Westerland"], [] @@ -38,7 +43,8 @@ class TestActrisEbasTimeSeriesReader(unittest.TestCase): #"start_include": [("2019-01-01 00:00:00", "2023-12-24 00:00:00")] # filters on "start_include" - time_filter = pyaro.timeseries.Filter.TimeBoundsFilter([("2019-01-01 00:00:00", "2019-12-31 23:59:59")]) + # time_filter = pyaro.timeseries.Filter.TimeBoundsFilter([("2019-01-01 00:00:00", "2019-12-31 23:59:59")]) + time_filter = pyaro.timeseries.Filter.TimeBoundsFilter([("2014-01-01 00:00:00", "2019-12-31 23:59:59")]) def test_api_online(self, url=TEST_URL): try: @@ -71,7 +77,7 @@ def test_api_reading_small_data_set(self): filters=filters, ) as ts: self.assertGreaterEqual(len(ts.variables()), 1) - self.assertGreaterEqual(len(ts.stations()), 2) + self.assertGreaterEqual(len(ts.stations()), 1) self.assertGreaterEqual(len(ts._data[ts.variables()[0]]), 100) self.assertGreaterEqual(len(ts.data(ts.variables()[0])), 100) self.assertGreaterEqual(len(ts.variables()), 1) @@ -90,7 +96,7 @@ def test_api_reading_pyaerocom_naming(self): engine = pyaro.list_timeseries_engines()[self.engine] with engine.open(TEST_URL, filters=filters) as ts: self.assertGreaterEqual(len(ts.variables()), 1) - self.assertGreaterEqual(len(ts.stations()), 2) + self.assertGreaterEqual(len(ts.stations()), 1) self.assertGreaterEqual(len(ts._data[ts.variables()[0]]), 1000) self.assertGreaterEqual(len(ts.data(ts.variables()[0])), 1000) self.assertIn("revision", ts.metadata())