diff --git a/.gitignore b/.gitignore index f0427f5..2deebe0 100644 --- a/.gitignore +++ b/.gitignore @@ -104,7 +104,6 @@ docs/source/output-sanitize.cfg # External Sources #src/external -src/ # Django stuff: local_settings.py diff --git a/notebooks/decadal_calendar_fix.ipynb b/notebooks/decadal_calendar_fix.ipynb index 37c3f37..f006323 100644 --- a/notebooks/decadal_calendar_fix.ipynb +++ b/notebooks/decadal_calendar_fix.ipynb @@ -10,522 +10,162 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 9, "id": "06856aa1-30cb-4edd-a461-b1a08fde8ec5", "metadata": {}, "outputs": [], "source": [ - "import xarray as xr" + "import xarray as xr\n", + "from rook.utils.decadal_fixes import apply_decadal_fixes, decadal_fix_calendar\n", + "from roocs_utils.xarray_utils.xarray_utils import open_xr_dataset\n", + "from rooki import rooki\n", + "\n", + "import tempfile" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "b1ecf482-c9a6-46ab-9485-6a022756d16f", + "metadata": {}, + "outputs": [], + "source": [ + "tmp_dir = tempfile.TemporaryDirectory(dir=None)\n", + "tmp_dir.cleanup()" ] }, { "cell_type": "code", "execution_count": 2, - "id": "c696b650-d309-4337-9c0e-b6285fb318bf", + "id": "a6019f44-1ea8-4f99-b9b4-6a13cf4f765d", + "metadata": {}, + "outputs": [], + "source": [ + "ds_id = \"c3s-cmip6-decadal.DCPP.EC-Earth-Consortium.EC-Earth3.dcppA-hindcast.s1976-r3i1p1f1.Amon.psl.gr.v20201215\"\n" + ] + }, + { + "cell_type": "markdown", + "id": "eb0a6e43-a9bd-43a3-b10a-598143042dbd", + "metadata": {}, + "source": [ + "## ds with mixed gregorian and proleptic gregorian\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "5462716e-7b3c-4b0b-bfad-34eb3c134434", "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
<xarray.Dataset>\n",
-       "Dimensions:      (time: 2, realization: 10, bnds: 2, lat: 256, lon: 512)\n",
-       "Coordinates:\n",
-       "  * time         (time) datetime64[ns] 2020-11-16 2020-12-16T12:00:00\n",
-       "  * lat          (lat) float64 -89.46 -88.77 -88.07 -87.37 ... 88.07 88.77 89.46\n",
-       "  * lon          (lon) float64 0.3516 1.055 1.758 2.461 ... 358.2 358.9 359.6\n",
-       "    reftime      datetime64[ns] ...\n",
-       "    leadtime     (time) timedelta64[ns] ...\n",
-       "  * realization  (realization) int32 10 1 2 3 4 5 6 7 8 9\n",
-       "Dimensions without coordinates: bnds\n",
-       "Data variables:\n",
-       "    time_bnds    (realization, time, bnds) datetime64[ns] ...\n",
-       "    lat_bnds     (realization, time, lat, bnds) float64 ...\n",
-       "    lon_bnds     (realization, time, lon, bnds) float64 ...\n",
-       "    psl          (realization, time, lat, lon) float32 ...\n",
-       "Attributes: (12/52)\n",
-       "    Conventions:                 CF-1.7 CMIP-6.2\n",
-       "    activity_id:                 DCPP\n",
-       "    branch_method:               no parent\n",
-       "    branch_time:                 0.0\n",
-       "    branch_time_in_child:        0.0\n",
-       "    branch_time_in_parent:       0.0\n",
-       "    ...                          ...\n",
-       "    license:                     CMIP6 model data produced by EC-Earth-Consor...\n",
-       "    cmor_version:                3.4.0\n",
-       "    forcing_description:         f1, CMIP6 historical forcings\n",
-       "    physics_description:         physics from the standard model configuratio...\n",
-       "    initialization_description:  Atmosphere initialization based on full-fiel...\n",
-       "    startdate:                   s202011
" - ], "text/plain": [ - "\n", - "Dimensions: (time: 2, realization: 10, bnds: 2, lat: 256, lon: 512)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 2020-11-16 2020-12-16T12:00:00\n", - " * lat (lat) float64 -89.46 -88.77 -88.07 -87.37 ... 88.07 88.77 89.46\n", - " * lon (lon) float64 0.3516 1.055 1.758 2.461 ... 358.2 358.9 359.6\n", - " reftime datetime64[ns] ...\n", - " leadtime (time) timedelta64[ns] ...\n", - " * realization (realization) int32 10 1 2 3 4 5 6 7 8 9\n", - "Dimensions without coordinates: bnds\n", - "Data variables:\n", - " time_bnds (realization, time, bnds) datetime64[ns] ...\n", - " lat_bnds (realization, time, lat, bnds) float64 ...\n", - " lon_bnds (realization, time, lon, bnds) float64 ...\n", - " psl (realization, time, lat, lon) float32 ...\n", - "Attributes: (12/52)\n", - " Conventions: CF-1.7 CMIP-6.2\n", - " activity_id: DCPP\n", - " branch_method: no parent\n", - " branch_time: 0.0\n", - " branch_time_in_child: 0.0\n", - " branch_time_in_parent: 0.0\n", - " ... ...\n", - " license: CMIP6 model data produced by EC-Earth-Consor...\n", - " cmor_version: 3.4.0\n", - " forcing_description: f1, CMIP6 historical forcings\n", - " physics_description: physics from the standard model configuratio...\n", - " initialization_description: Atmosphere initialization based on full-fiel...\n", - " startdate: s202011" + "True" ] }, - "execution_count": 2, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "ds = xr.open_dataset(\"/Users/pingu/Desktop/69de4961fa0f43f54a40b106b808959d/psl_Amon_EC-Earth3_dcppB-forecast_r10i1p1f1_gr_20201116-20201216.nc\")\n", - "ds" + "result = rooki.subset(ds_id, time=\"1984-11/1986-10\", original_files=True)\n", + "\n", + "result.ok" ] }, { "cell_type": "code", - "execution_count": 3, - "id": "be531b88-5606-4e7f-9ea8-5a72aa8ab362", + "execution_count": 4, + "id": "e172845a-ab17-4c16-8215-e67763d5b499", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'proleptic_gregorian'" + "['https://data.mips.climate.copernicus.eu/thredds/fileServer/esg_c3s-cmip6/DCPP/EC-Earth-Consortium/EC-Earth3/dcppA-hindcast/s1976-r3i1p1f1/Amon/psl/gr/v20201215/psl_Amon_EC-Earth3_dcppA-hindcast_s1976-r3i1p1f1_gr_198411-198510.nc',\n", + " 'https://data.mips.climate.copernicus.eu/thredds/fileServer/esg_c3s-cmip6/DCPP/EC-Earth-Consortium/EC-Earth3/dcppA-hindcast/s1976-r3i1p1f1/Amon/psl/gr/v20201215/psl_Amon_EC-Earth3_dcppA-hindcast_s1976-r3i1p1f1_gr_198511-198610.nc']" ] }, - "execution_count": 3, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "ds.time.encoding.get(\"calendar\")" + "result.download_urls()" ] }, { - "cell_type": "markdown", - "id": "a6c267dd-930b-4544-9bd8-eabaa9f6685d", + "cell_type": "code", + "execution_count": 5, + "id": "d27ce3eb-9799-4b9e-ba7a-fe9899b3d68d", "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading to /var/folders/5f/t661zdnd181ck1dv429s4p8r0000gn/T/metalink_xp7si7xh/psl_Amon_EC-Earth3_dcppA-hindcast_s1976-r3i1p1f1_gr_198411-198510.nc.\n", + "Downloading to /var/folders/5f/t661zdnd181ck1dv429s4p8r0000gn/T/metalink_xp7si7xh/psl_Amon_EC-Earth3_dcppA-hindcast_s1976-r3i1p1f1_gr_198511-198610.nc.\n" + ] + } + ], "source": [ - "## apply calendar fix" + "dsets = [\n", + " decadal_fix_calendar(ds_id, open_xr_dataset(file)) for file in result.download()\n", + " # open_xr_dataset(file) for file in result.download()\n", + "]" ] }, { "cell_type": "code", - "execution_count": 4, - "id": "9f441577-023d-4ca8-a201-4cda18db4e63", + "execution_count": 6, + "id": "6f89c9bc-1760-427a-91a8-eeef03944d42", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gregorian\n", + "standard\n" + ] + } + ], "source": [ - "from rook.utils import decadal_fixes" + "for ds in dsets:\n", + " print(ds.time.encoding.get(\"calendar\"))\n" ] }, { "cell_type": "code", - "execution_count": 5, - "id": "ff22c3b9-9419-4850-b8a9-7e1653726f2c", + "execution_count": 7, + "id": "6afe997f-91e1-4048-a2af-288818f36a07", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'gregorian'" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds = xr.concat(dsets, dim=\"time\")\n", + "ds.time.encoding.get(\"calendar\")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "172318f6-f484-4854-a0dd-41e2f041b8bc", "metadata": {}, "outputs": [ { @@ -895,20 +535,20 @@ " fill: currentColor;\n", "}\n", "
<xarray.Dataset>\n",
-       "Dimensions:      (time: 2, realization: 10, bnds: 2, lat: 256, lon: 512)\n",
+       "Dimensions:      (time: 24, bnds: 2, lat: 256, lon: 512)\n",
        "Coordinates:\n",
-       "  * time         (time) datetime64[ns] 2020-11-16 2020-12-16T12:00:00\n",
+       "  * time         (time) object 1984-11-16 00:00:00 ... 1986-10-16 12:00:00\n",
        "  * lat          (lat) float64 -89.46 -88.77 -88.07 -87.37 ... 88.07 88.77 89.46\n",
-       "  * lon          (lon) float64 0.3516 1.055 1.758 2.461 ... 358.2 358.9 359.6\n",
-       "    reftime      datetime64[ns] ...\n",
-       "    leadtime     (time) timedelta64[ns] ...\n",
-       "  * realization  (realization) int32 10 1 2 3 4 5 6 7 8 9\n",
+       "  * lon          (lon) float64 0.0 0.7031 1.406 2.109 ... 357.9 358.6 359.3\n",
+       "    reftime      datetime64[ns] 1976-11-01\n",
+       "    leadtime     (time) float64 2.937e+03 2.967e+03 ... 3.606e+03 3.636e+03\n",
        "Dimensions without coordinates: bnds\n",
        "Data variables:\n",
-       "    time_bnds    (realization, time, bnds) datetime64[ns] ...\n",
-       "    lat_bnds     (realization, time, lat, bnds) float64 ...\n",
-       "    lon_bnds     (realization, time, lon, bnds) float64 ...\n",
-       "    psl          (realization, time, lat, lon) float32 ...\n",
+       "    time_bnds    (time, bnds) object 1984-11-01 00:00:00 ... 1986-11-01 00:00:00\n",
+       "    lat_bnds     (time, lat, bnds) float64 -90.0 -89.11 -89.11 ... 89.11 90.0\n",
+       "    lon_bnds     (time, lon, bnds) float64 -0.3516 0.3516 0.3516 ... 358.9 359.6\n",
+       "    psl          (time, lat, lon) float32 9.994e+04 9.994e+04 ... 1.014e+05\n",
+       "    realization  int32 3\n",
        "Attributes: (12/52)\n",
        "    Conventions:                 CF-1.7 CMIP-6.2\n",
        "    activity_id:                 DCPP\n",
@@ -917,25 +557,217 @@
        "    branch_time_in_child:        0.0\n",
        "    branch_time_in_parent:       0.0\n",
        "    ...                          ...\n",
-       "    license:                     CMIP6 model data produced by EC-Earth-Consor...\n",
-       "    cmor_version:                3.4.0\n",
+       "    nominal_resolution:          100 km\n",
+       "    sub_experiment:              initialized near end of year 1976\n",
        "    forcing_description:         f1, CMIP6 historical forcings\n",
        "    physics_description:         physics from the standard model configuratio...\n",
        "    initialization_description:  Atmosphere initialization based on full-fiel...\n",
-       "    startdate:                   s202011
" + "seaIce: LIM3
source_id :
EC-Earth3
source_type :
AOGCM
table_id :
Amon
table_info :
Creation Date:(20 July 2018) MD5:fc7be6d827dff7ae663eb9986d7a7394
title :
EC-Earth3 output prepared for CMIP6
tracking_id :
hdl:21.14100/685fc7ce-0d6c-41f0-811a-80e065829ff8
variable_id :
psl
variant_label :
r3i1p1f1
license :
CMIP6 model data produced by EC-Earth-Consortium is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License (https://creativecommons.org/licenses). Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing CMIP6 output, including citation requirements and proper acknowledgment. Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute in this file) . The data producers and data providers make no warranty, either express or implied, including, but not limited to, warranties of merchantability and fitness for a particular purpose. All liabilities arising from the supply of the information (including any liability arising in negligence) are excluded to the fullest extent permitted by law.
cmor_version :
3.4.0
variant_info :
Atmosphere initialization based on full-fields from ERA-Interim (s1979-s2018) or ERA-40 (s1960-s1978); ocean/sea-ice initialization based on full-fields from NEMO/LIM assimilation run nudged towards ORA-S4 (s1960-s2018)
sub_experiment_id :
s197611
history :
Wed Sep 25 11:00:49 2019: ncatted -O -a sub_experiment_id,global,m,c,s1976 ./psl/gr/v20190713/psl_Amon_EC-Earth3_dcppA-hindcast_s1976-r3i1p1f1_gr_198411-198510.nc\n", + "Wed Sep 18 03:14:52 2019: ncatted -O -a variant_info,global,m,c,Atmosphere initialization based on full-fields from ERA-Interim (s1979-s2018) or ERA-40 (s1960-s1978); ocean/sea-ice initialization based on full-fields from NEMO/LIM assimilation run nudged towards ORA-S4 (s1960-s2018) ./psl/gr/v20190713/psl_Amon_EC-Earth3_dcppA-hindcast_s1976-r3i1p1f1_gr_198411-198510.nc\n", + "Wed Sep 18 03:14:52 2019: ncatted -O -a calendar,time,m,c,gregorian ./psl/gr/v20190713/psl_Amon_EC-Earth3_dcppA-hindcast_s1976-r3i1p1f1_gr_198411-198510.nc\n", + "Tue Sep 3 17:32:15 2019: ncatted -O -a sub_experiment_id,global,m,c,s19761101 ./Amon/psl/gr/v20190320/psl_Amon_EC-Earth3_dcppA-hindcast_s1976-r3i1p1f1_gr_198411-198510.nc\n", + "2019-04-13T06:31:07Z ; CMOR rewrote data to be consistent with CMIP6, CF-1.7 CMIP-6.2 and CF standards.;\n", + "processed by ece2cmor v{version}, git rev.The cmor-fixer version v1.0 script has been applied.
nominal_resolution :
100 km
sub_experiment :
initialized near end of year 1976
forcing_description :
f1, CMIP6 historical forcings
physics_description :
physics from the standard model configuration, with no additional tuning or different parametrization
initialization_description :
Atmosphere initialization based on full-fields from ERA-Interim (s1979-s2018) or ERA-40 (s1960-s1978); ocean/sea-ice initialization based on full-fields from NEMO/LIM assimilation run nudged towards ORA-S4 (s1960-s2018)
startdate :
s197611
" ], "text/plain": [ "\n", - "Dimensions: (time: 2, realization: 10, bnds: 2, lat: 256, lon: 512)\n", + "Dimensions: (time: 24, bnds: 2, lat: 256, lon: 512)\n", "Coordinates:\n", - " * time (time) datetime64[ns] 2020-11-16 2020-12-16T12:00:00\n", + " * time (time) object 1984-11-16 00:00:00 ... 1986-10-16 12:00:00\n", " * lat (lat) float64 -89.46 -88.77 -88.07 -87.37 ... 88.07 88.77 89.46\n", - " * lon (lon) float64 0.3516 1.055 1.758 2.461 ... 358.2 358.9 359.6\n", - " reftime datetime64[ns] ...\n", - " leadtime (time) timedelta64[ns] ...\n", - " * realization (realization) int32 10 1 2 3 4 5 6 7 8 9\n", + " * lon (lon) float64 0.0 0.7031 1.406 2.109 ... 357.9 358.6 359.3\n", + " reftime datetime64[ns] 1976-11-01\n", + " leadtime (time) float64 2.937e+03 2.967e+03 ... 3.606e+03 3.636e+03\n", "Dimensions without coordinates: bnds\n", "Data variables:\n", - " time_bnds (realization, time, bnds) datetime64[ns] ...\n", - " lat_bnds (realization, time, lat, bnds) float64 ...\n", - " lon_bnds (realization, time, lon, bnds) float64 ...\n", - " psl (realization, time, lat, lon) float32 ...\n", + " time_bnds (time, bnds) object 1984-11-01 00:00:00 ... 1986-11-01 00:00:00\n", + " lat_bnds (time, lat, bnds) float64 -90.0 -89.11 -89.11 ... 89.11 90.0\n", + " lon_bnds (time, lon, bnds) float64 -0.3516 0.3516 0.3516 ... 358.9 359.6\n", + " psl (time, lat, lon) float32 9.994e+04 9.994e+04 ... 1.014e+05\n", + " realization int32 3\n", "Attributes: (12/52)\n", " Conventions: CF-1.7 CMIP-6.2\n", " activity_id: DCPP\n", @@ -969,43 +806,22 @@ " branch_time_in_child: 0.0\n", " branch_time_in_parent: 0.0\n", " ... ...\n", - " license: CMIP6 model data produced by EC-Earth-Consor...\n", - " cmor_version: 3.4.0\n", + " nominal_resolution: 100 km\n", + " sub_experiment: initialized near end of year 1976\n", " forcing_description: f1, CMIP6 historical forcings\n", " physics_description: physics from the standard model configuratio...\n", " initialization_description: Atmosphere initialization based on full-fiel...\n", - " startdate: s202011" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds_fix = decadal_fixes.decadal_fix_calendar(None, ds)\n", - "ds_fix" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "575f2c42-cffd-45b0-bfdd-848a7c0feb69", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'standard'" + " startdate: s197611" ] }, - "execution_count": 6, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "ds_fix.time.encoding.get(\"calendar\")" + "ds_mod = apply_decadal_fixes(ds_id, ds)\n", + "ds_mod" ] } ], diff --git a/src/rook/utils/concat_utils.py b/src/rook/utils/concat_utils.py index 921ca1a..65e3357 100644 --- a/src/rook/utils/concat_utils.py +++ b/src/rook/utils/concat_utils.py @@ -9,6 +9,7 @@ from roocs_utils.parameter import time_components_parameter from roocs_utils.project_utils import derive_ds_id +from roocs_utils.xarray_utils.xarray_utils import open_xr_dataset from daops.ops.base import Operation from daops.utils import normalise @@ -17,7 +18,7 @@ from clisops.core.average import average_over_dims as average -from .decadal_fixes import apply_decadal_fixes +from .decadal_fixes import apply_decadal_fixes, decadal_fix_calendar from .input_utils import fix_parameters coord_by_standard_name = { @@ -25,6 +26,21 @@ } +def patched_normalise(collection): + # TODO: this is a patched function of daops to fix the gregorian calendar issue + norm_collection = collections.OrderedDict() + + for dset, file_paths in collection.items(): + fixed_datasets = [ + decadal_fix_calendar(None, open_xr_dataset(file)) for file in file_paths + ] + ds = xr.concat(fixed_datasets, dim="time") + # ds = xr.merge(fixed_datasets) + norm_collection[dset] = ds + + return norm_collection + + class Concat(Operation): def _resolve_params(self, collection, **params): """ @@ -64,9 +80,7 @@ def _calculate(self): new_collection[ds_id] = dset.file_paths # Normalise (i.e. "fix") data inputs based on "character" - norm_collection = normalise.normalise( - new_collection, False # self._apply_fixes - ) + norm_collection = patched_normalise(new_collection) rs = normalise.ResultSet(vars()) @@ -75,7 +89,9 @@ def _calculate(self): datasets = [] for ds_id in norm_collection.keys(): ds = norm_collection[ds_id] - ds_mod = apply_decadal_fixes(ds_id, ds) + ds_mod = apply_decadal_fixes( + ds_id, ds, output_dir=self.params.get("output_dir", ".") + ) datasets.append(ds_mod) dims = dimension_parameter.DimensionParameter( diff --git a/src/rook/utils/decadal_fixes.py b/src/rook/utils/decadal_fixes.py index e12b0ea..a5a75b0 100644 --- a/src/rook/utils/decadal_fixes.py +++ b/src/rook/utils/decadal_fixes.py @@ -1,3 +1,9 @@ +import xarray as xr +import os +import tempfile + +from roocs_utils.xarray_utils.xarray_utils import open_xr_dataset + from daops.data_utils.attr_utils import ( edit_var_attrs, edit_global_attrs, @@ -43,13 +49,13 @@ def get_decadal_model_attr_from_dict(ds_id, ds, attr): return value -def apply_decadal_fixes(ds_id, ds): - ds_mod = decadal_fix_1(ds_id, ds) +def apply_decadal_fixes(ds_id, ds, output_dir=None): + ds_mod = decadal_fix_calendar(ds_id, ds, output_dir=output_dir) + ds_mod = decadal_fix_1(ds_id, ds_mod) ds_mod = decadal_fix_2(ds_id, ds_mod) ds_mod = decadal_fix_3(ds_id, ds_mod) ds_mod = decadal_fix_4(ds_id, ds_mod) ds_mod = decadal_fix_5(ds_id, ds_mod) - ds_mod = decadal_fix_calendar(ds_id, ds_mod) return ds_mod @@ -133,10 +139,16 @@ def decadal_fix_5(ds_id, ds): return ds_mod -def decadal_fix_calendar(ds_id, ds): +def decadal_fix_calendar(ds_id, ds, output_dir=None): # set proleptic_gregorian calendar to gregorian (standard). # the proleptic gregorian calendar extends the gregorin backward in time before 1582. calendar = ds.time.encoding.get("calendar", "standard") if calendar == "proleptic_gregorian": ds.time.encoding["calendar"] = "standard" + # need to write and read file to rewrite time dimension for the standard calendar! + tmp_dir = tempfile.TemporaryDirectory(dir=output_dir) + fixed_nc = os.path.join(tmp_dir.name, "fixed_calendar.nc") + ds.to_netcdf(fixed_nc) + ds = open_xr_dataset(fixed_nc) + tmp_dir.cleanup() return ds diff --git a/tests/smoke/test_smoke_checks.py b/tests/smoke/test_smoke_checks.py index ded37ec..aa2e04e 100644 --- a/tests/smoke/test_smoke_checks.py +++ b/tests/smoke/test_smoke_checks.py @@ -238,18 +238,14 @@ "in": { "collection": "inputs/ds", "dims": "realization", - "time": "1976-01-01/1976-12-31", + "time": "1985-01-01/1985-12-31", }, }, - "average": { - "run": "average", - "in": {"collection": "concat/output", "dims": "realization"}, - }, "subset": { "run": "subset", "in": { - "collection": "average/output", - "time": "1976-01-01/1976-12-31", + "collection": "concat/output", + "time": "1985-01-01/1985-12-31", }, }, }, @@ -687,7 +683,7 @@ def test_smoke_execute_c3s_cmip6_decadal_fix_calendar_orchestrate(wps): urls = wps.execute("orchestrate", inputs) assert len(urls) == 1 assert "psl_Amon_EC-Earth3_dcppA-hindcast" in urls[0] - assert "19761116-19761216.nc" in urls[0] + assert "19850116-19851216.nc" in urls[0] def test_smoke_execute_c3s_ipcc_atlas_cmip5_subset(wps):