From df2c5b897fd9df264f18ecdc8a3da4f8890a0992 Mon Sep 17 00:00:00 2001 From: Ag Stephens Date: Wed, 28 Apr 2021 14:03:15 +0000 Subject: [PATCH 1/2] Added notebook for CEDA server errors --- notebooks/tests/test-c3s-cmip6-subset-errors-ceda-2021-q2.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 notebooks/tests/test-c3s-cmip6-subset-errors-ceda-2021-q2.ipynb diff --git a/notebooks/tests/test-c3s-cmip6-subset-errors-ceda-2021-q2.ipynb b/notebooks/tests/test-c3s-cmip6-subset-errors-ceda-2021-q2.ipynb new file mode 100644 index 0000000..e69de29 From 7a3183d43ef9a56483e3cff6ee948d8b11b6fa3f Mon Sep 17 00:00:00 2001 From: agstephens Date: Wed, 28 Apr 2021 15:32:21 +0100 Subject: [PATCH 2/2] Added notebook showing CEDA server errors --- ...c3s-cmip6-subset-errors-ceda-2021-q2.ipynb | 428 ++++++++++++++++++ requirements_dev.txt | 1 + 2 files changed, 429 insertions(+) diff --git a/notebooks/tests/test-c3s-cmip6-subset-errors-ceda-2021-q2.ipynb b/notebooks/tests/test-c3s-cmip6-subset-errors-ceda-2021-q2.ipynb index e69de29..dab7339 100644 --- a/notebooks/tests/test-c3s-cmip6-subset-errors-ceda-2021-q2.ipynb +++ b/notebooks/tests/test-c3s-cmip6-subset-errors-ceda-2021-q2.ipynb @@ -0,0 +1,428 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Test: collected errors\n", + "\n", + "* Project: c3s-cmip6\n", + "* Site: CEDA\n", + "* From 2021-04-26 to ...\n", + "* rook v0.5.0, daops=0.5.0, clisops=0.6.3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "# os.environ['ROOK_URL'] = 'http://rook3.cloud.dkrz.de/wps'\n", + "os.environ['ROOK_URL'] = 'http://CEDA-SERVER/wps'\n", + "\n", + "from rooki import operators as ops" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Error: Unable to allocate 17.6 GiB...\n", + "\n", + "Issue: https://github.com/roocs/rooki/issues/68\n", + "\n", + "`pywps.app.exceptions.ProcessError: Unable to allocate 17.6 GiB`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/core/subset.py:910: UserWarning: \"start_date\" has been nudged to nearest valid time step in xarray object.\n", + " da = subset_time(da, start_date=start_date, end_date=end_date)\n", + "/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/core/subset.py:910: UserWarning: \"end_date\" has been nudged to nearest valid time step in xarray object.\n", + " da = subset_time(da, start_date=start_date, end_date=end_date)\n", + "/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/conventions.py:449: UserWarning: Variable 'time' has datetime type and a bounds variable but time.encoding does not have units specified. The units encodings for 'time' and 'time_bounds' will be determined independently and may not be equal, counter to CF-conventions. If this is a concern, specify a units encoding for 'time' before writing to a file.\n", + " UserWarning,\n", + "Traceback (most recent call last):\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/director/director.py\", line 166, in process\n", + " file_uris = runner(self.inputs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/utils/subset_utils.py\", line 5, in run_subset\n", + " result = subset(**args)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/daops/ops/subset.py\", line 77, in subset\n", + " result_set = Subset(**locals()).calculate()\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/daops/ops/base.py\", line 88, in calculate\n", + " process(self.get_operation_callable(), norm_collection, **self.params),\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/daops/processor.py\", line 19, in process\n", + " result = operation(dset, **kwargs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/ops/subset.py\", line 168, in subset\n", + " return op.process()\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/ops/base_operation.py\", line 111, in process\n", + " output = get_output(result_ds, self._output_type, self._output_dir, namer)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/utils/output_utils.py\", line 250, in get_output\n", + " delayed_obj.compute()\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/base.py\", line 283, in compute\n", + " (result,) = compute(self, traverse=False, **kwargs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/base.py\", line 565, in compute\n", + " results = schedule(dsk, keys, **kwargs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/local.py\", line 528, in get_sync\n", + " return get_async(apply_sync, 1, dsk, keys, **kwargs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/local.py\", line 495, in get_async\n", + " fire_task()\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/local.py\", line 467, in fire_task\n", + " callback=queue.put,\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/local.py\", line 517, in apply_sync\n", + " res = func(*args, **kwds)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/local.py\", line 227, in execute_task\n", + " result = pack_exception(e, dumps)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/local.py\", line 222, in execute_task\n", + " result = _execute_task(task, data)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/core.py\", line 121, in _execute_task\n", + " return func(*(_execute_task(a, cache) for a in args))\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/array/core.py\", line 116, in getter\n", + " c = np.asarray(c)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/numpy/core/_asarray.py\", line 102, in asarray\n", + " return array(a, dtype, copy=False, order=order)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/core/indexing.py\", line 503, in __array__\n", + " return np.asarray(self.array, dtype=dtype)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/numpy/core/_asarray.py\", line 102, in asarray\n", + " return array(a, dtype, copy=False, order=order)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/core/indexing.py\", line 663, in __array__\n", + " return np.asarray(self.array, dtype=dtype)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/numpy/core/_asarray.py\", line 102, in asarray\n", + " return array(a, dtype, copy=False, order=order)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/core/indexing.py\", line 568, in __array__\n", + " return np.asarray(array[self.key], dtype=None)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/numpy/core/_asarray.py\", line 102, in asarray\n", + " return array(a, dtype, copy=False, order=order)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/coding/variables.py\", line 70, in __array__\n", + " return self.func(self.array)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/coding/variables.py\", line 138, in _apply_mask\n", + " data = np.asarray(data, dtype=dtype)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/numpy/core/_asarray.py\", line 102, in asarray\n", + " return array(a, dtype, copy=False, order=order)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/core/indexing.py\", line 568, in __array__\n", + " return np.asarray(array[self.key], dtype=None)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/backends/netCDF4_.py\", line 86, in __getitem__\n", + " key, self.shape, indexing.IndexingSupport.OUTER, self._getitem\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/core/indexing.py\", line 853, in explicit_indexing_adapter\n", + " result = raw_indexing_method(raw_key.tuple)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/backends/netCDF4_.py\", line 98, in _getitem\n", + " array = getitem(original_array, key)\n", + " File \"src/netCDF4/_netCDF4.pyx\", line 4401, in netCDF4._netCDF4.Variable.__getitem__\n", + "numpy.core._exceptions._ArrayMemoryError: Unable to allocate 17.6 GiB for an array with shape (18262, 360, 720) and data type float32\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/director/director.py\", line 21, in wrap_director\n", + " director.process(runner)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/director/director.py\", line 168, in process\n", + " raise ProcessError(f\"{e}\")\n", + "pywps.app.exceptions.ProcessError: Unable to allocate 17.6 GiB for an array with shape 18262, 360, 720 and data type float32\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/processes/wps_orchestrate.py\", line 75, in _handler\n", + " file_uris = wf.run(wfdata)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 69, in run\n", + " return self.workflow.run(wfdoc)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 89, in run\n", + " outputs = self._run(wfdoc)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 112, in _run\n", + " return self._run_tree(steps, tree, \"root\")\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 119, in _run_tree\n", + " tree_outputs[data[\"arg_id\"]] = self._run_tree(steps, tree, next_step_id)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 119, in _run_tree\n", + " tree_outputs[data[\"arg_id\"]] = self._run_tree(steps, tree, next_step_id)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 123, in _run_tree\n", + " outputs = self._run_step(step_id, steps[step_id], tree_outputs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 135, in _run_step\n", + " result = self.subset_op.call(step[\"in\"])\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/operator.py\", line 41, in call\n", + " director = wrap_director(collection, args, runner)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/director/director.py\", line 24, in wrap_director\n", + " raise ProcessError(f\"{e}\")\n", + "pywps.app.exceptions.ProcessError: Unable to allocate 17.6 GiB for an array with shape 18262, 360, 720 and data type float32\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/pywps/app/Process.py\", line 250, in _run_process\n", + " self.handler(wps_request, wps_response) # the user must update the wps_response.\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/processes/wps_orchestrate.py\", line 77, in _handler\n", + " raise ProcessError(f\"{e}\")\n", + "pywps.app.exceptions.ProcessError: Unable to allocate 17.6 GiB for an array with shape 18262, 360, 720 and data type float32\n", + "\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Inputs:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "wf = ops.Subset(\n", + " ops.Input(\n", + " 'tasmin', ['c3s-cmip6.CMIP.CNRM-CERFACS.CNRM-CM6-1-HR.historical.r1i1p1f2.day.tasmin.gr.v20191021']\n", + " ),\n", + " time=\"1980-01-01/2014-12-31\",\n", + " area=\"-18,8,-4,20\"\n", + ")\n", + "resp = wf.orchestrate()\n", + "resp.status" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Error: ArrayMemoryError: Unable to allocate 961. MiB...\n", + "\n", + "Issue: https://github.com/roocs/rooki/issues/68\n", + "\n", + "`pywps.app.exceptions.ProcessError: ArrayMemoryError: Unable to allocate 961. MiB`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/core/subset.py:910: UserWarning: \"start_date\" not found within input date time ran\n", + "ge. Defaulting to minimum time step in xarray object.\n", + " da = subset_time(da, start_date=start_date, end_date=end_date)\n", + "/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/core/subset.py:910: UserWarning: \"end_date\" has been nudged to nearest valid time\n", + "step in xarray object.\n", + " da = subset_time(da, start_date=start_date, end_date=end_date)\n", + "/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/conventions.py:449: UserWarning: Variable 'time' has datetime type and a bounds var\n", + "iable but time.encoding does not have units specified. The units encodings for 'time' and 'time_bnds' will be determined independently and may not b\n", + "e equal, counter to CF-conventions. If this is a concern, specify a units encoding for 'time' before writing to a file.\n", + " UserWarning,\n", + "Traceback (most recent call last):\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/director/director.py\", line 166, in process\n", + " file_uris = runner(self.inputs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/utils/subset_utils.py\", line 5, in run_subset\n", + " result = subset(**args)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/daops/ops/subset.py\", line 77, in subset\n", + " result_set = Subset(**locals()).calculate()\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/daops/ops/base.py\", line 88, in calculate\n", + " process(self.get_operation_callable(), norm_collection, **self.params),\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/daops/processor.py\", line 19, in process\n", + " result = operation(dset, **kwargs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/ops/subset.py\", line 168, in subset\n", + " return op.process()\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/ops/base_operation.py\", line 111, in process\n", + " output = get_output(result_ds, self._output_type, self._output_dir, namer)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/utils/output_utils.py\", line 250, in get_output\n", + " delayed_obj.compute()\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/base.py\", line 283, in compute\n", + " (result,) = compute(self, traverse=False, **kwargs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/base.py\", line 565, in compute\n", + " results = schedule(dsk, keys, **kwargs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/local.py\", line 528, in get_sync\n", + " return get_async(apply_sync, 1, dsk, keys, **kwargs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/local.py\", line 495, in get_async\n", + " fire_task()\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/local.py\", line 467, in fire_task\n", + " callback=queue.put,\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/local.py\", line 517, in apply_sync\n", + " res = func(*args, **kwds)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/local.py\", line 227, in execute_task\n", + " result = pack_exception(e, dumps)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/local.py\", line 222, in execute_task\n", + " result = _execute_task(task, data)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/core.py\", line 121, in _execute_task\n", + " return func(*(_execute_task(a, cache) for a in args))\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/dask/array/core.py\", line 116, in getter\n", + " c = np.asarray(c)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/numpy/core/_asarray.py\", line 102, in asarray\n", + " return array(a, dtype, copy=False, order=order)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/core/indexing.py\", line 503, in __array__\n", + " return np.asarray(self.array, dtype=dtype)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/numpy/core/_asarray.py\", line 102, in asarray\n", + " return array(a, dtype, copy=False, order=order)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/core/indexing.py\", line 663, in __array__\n", + " return np.asarray(self.array, dtype=dtype)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/numpy/core/_asarray.py\", line 102, in asarray\n", + " return array(a, dtype, copy=False, order=order)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/core/indexing.py\", line 568, in __array__\n", + " return np.asarray(array[self.key], dtype=None)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/numpy/core/_asarray.py\", line 102, in asarray\n", + " return array(a, dtype, copy=False, order=order)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/coding/variables.py\", line 70, in __array__\n", + " return self.func(self.array)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/xarray/coding/variables.py\", line 142, in _apply_mask\n", + " return np.where(condition, decoded_fill_value, data)\n", + " File \"<__array_function__ internals>\", line 6, in where\n", + "numpy.core._exceptions._ArrayMemoryError: Unable to allocate 961. MiB for an array with shape (1800, 324, 432) and data type float32\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "wf = ops.Subset(\n", + " ops.Input(\n", + " 'tasmin', ['c3s-cmip6.ScenarioMIP.MOHC.HadGEM3-GC31-MM.ssp585.r1i1p1f3.day.tasmin.gn.v20200515']\n", + " ),\n", + " time=\"2014-01-01/2100-12-31\",\n", + " area=\"-18,8,-4,20\"\n", + ")\n", + "resp = wf.orchestrate()\n", + "resp.status\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Error: There were no valid data points found...\n", + "\n", + "Issue: https://github.com/roocs/rooki/issues/68\n", + "\n", + "`pywps.app.exceptions.ProcessError: There were no valid data points found in the requested subset.`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/core/subset.py:910: UserWarning: \"start_date\" has been nudged to nearest valid tim\n", + "e step in xarray object.\n", + " da = subset_time(da, start_date=start_date, end_date=end_date)\n", + "/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/core/subset.py:910: UserWarning: \"end_date\" not found within input date time range\n", + ". Defaulting to maximum time step in xarray object.\n", + " da = subset_time(da, start_date=start_date, end_date=end_date)\n", + "Traceback (most recent call last):\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/director/director.py\", line 166, in process\n", + " file_uris = runner(self.inputs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/utils/subset_utils.py\", line 5, in run_subset\n", + " result = subset(**args)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/daops/ops/subset.py\", line 77, in subset\n", + " result_set = Subset(**locals()).calculate()\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/daops/ops/base.py\", line 88, in calculate\n", + " process(self.get_operation_callable(), norm_collection, **self.params),\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/daops/processor.py\", line 19, in process\n", + " result = operation(dset, **kwargs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/ops/subset.py\", line 168, in subset\n", + " return op.process()\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/ops/base_operation.py\", line 89, in process\n", + " processed_ds = self._calculate()\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/ops/subset.py\", line 64, in _calculate\n", + " result = subset_bbox(ds, **self.params)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/core/subset.py\", line 259, in func_checker\n", + " return func(*args, **kwargs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/clisops/core/subset.py\", line 917, in subset_bbox\n", + " \"There were no valid data points found in the requested subset.\"\n", + "ValueError: There were no valid data points found in the requested subset.\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/director/director.py\", line 21, in wrap_director\n", + " director.process(runner)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/director/director.py\", line 168, in process\n", + " raise ProcessError(f\"{e}\")\n", + "pywps.app.exceptions.ProcessError: There were no valid data points found in the requested subset.\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/processes/wps_orchestrate.py\", line 75, in _handler\n", + " file_uris = wf.run(wfdata)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 69, in run\n", + " return self.workflow.run(wfdoc)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 89, in run\n", + " outputs = self._run(wfdoc)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 112, in _run\n", + " return self._run_tree(steps, tree, \"root\")\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 119, in _run_tree\n", + " tree_outputs[data[\"arg_id\"]] = self._run_tree(steps, tree, next_step_id)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 119, in _run_tree\n", + " tree_outputs[data[\"arg_id\"]] = self._run_tree(steps, tree, next_step_id)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 123, in _run_tree\n", + " outputs = self._run_step(step_id, steps[step_id], tree_outputs)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/workflow.py\", line 135, in _run_step\n", + " result = self.subset_op.call(step[\"in\"])\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/operator.py\", line 41, in call\n", + " director = wrap_director(collection, args, runner)\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/director/director.py\", line 24, in wrap_director\n", + " raise ProcessError(f\"{e}\")\n", + "pywps.app.exceptions.ProcessError: There were no valid data points found in the requested subset.\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/pywps/app/Process.py\", line 250, in _run_process\n", + " self.handler(wps_request, wps_response) # the user must update the wps_response.\n", + " File \"/usr/local/anaconda/envs/rook/lib/python3.7/site-packages/rook/processes/wps_orchestrate.py\", line 77, in _handler\n", + " raise ProcessError(f\"{e}\")\n", + "pywps.app.exceptions.ProcessError: There were no valid data points found in the requested subset.\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "wf = ops.Subset(\n", + " ops.Input(\n", + " 'tas', ['c3s-cmip6.ScenarioMIP.MPI-M.MPI-ESM1-2-LR.ssp585.r1i1p1f1.day.tas.gn.v20190710']\n", + " ),\n", + " time=\"2100-01-01/2300-12-31\",\n", + " area=\"-66,-56,-67,-54\"\n", + ")\n", + "resp = wf.orchestrate()\n", + "resp.status \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 + Jaspy", + "language": "python", + "name": "jaspy" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/requirements_dev.txt b/requirements_dev.txt index d089fdf..81fc25c 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -11,5 +11,6 @@ twine>=1.12.1 pre-commit>=2.7.1 black>=20.8b1 pytest>=3.8.2 +pytest-timeouts pytest-runner>=4.2 nbval>=0.9.6