From 299ad8aa98df893dbc34185b13e7f99e0d58af6a Mon Sep 17 00:00:00 2001 From: Jiwoo Lee Date: Fri, 22 Dec 2023 13:16:23 -0800 Subject: [PATCH] reduce number of lines --- doc/jupyter/Demo/Demo_8_extremes.ipynb | 327 +++++++------------------ 1 file changed, 94 insertions(+), 233 deletions(-) diff --git a/doc/jupyter/Demo/Demo_8_extremes.ipynb b/doc/jupyter/Demo/Demo_8_extremes.ipynb index a9082a88e..1419df143 100644 --- a/doc/jupyter/Demo/Demo_8_extremes.ipynb +++ b/doc/jupyter/Demo/Demo_8_extremes.ipynb @@ -22,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 5, "id": "42b45684", "metadata": {}, "outputs": [], @@ -50,33 +50,33 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 6, "id": "13fba1ed", "metadata": {}, "outputs": [], "source": [ - "# Set up data\n", + "# Set up sample data for demo\n", "import os\n", "import xcdat as xc\n", - "\n", - "if not os.path.exists(os.path.join(demo_output_directory,\"extremes_tmp\")):\n", - " os.mkdir(os.path.join(demo_output_directory,\"extremes_tmp\"))\n", + " \n", + "os.makedirs(os.path.join(demo_output_directory,\"extremes_tmp\"), exist_ok=True)\n", + " \n", + "def make_lower_resolution_model_data_for_demo(inpath: str, outpath: str, overwrite: bool=False):\n", + " if not os.path.isfile(outpath) or overwrite:\n", + " ds = xc.open_dataset(inpath)\n", + " out_grid = xc.create_uniform_grid(-90, 90, 10., 0.5, 360, 10.)\n", + " output_data = ds.regridder.horizontal(\"pr\", out_grid, tool=\"regrid2\")\n", + " output_data.to_netcdf(outpath,\"w\") \n", "\n", "# Make low resolution model data\n", "inpath=os.path.join(demo_data_directory,'CMIP5_demo_timeseries/historical/atmos/day/pr/pr_day_GISS-E2-H_historical_r6i1p1_20000101-20051231.nc')\n", - "ds=xc.open_dataset(inpath)\n", - "out_grid = xc.create_uniform_grid(-90, 90, 10., 0.5, 360, 10.)\n", - "output_data = ds.regridder.horizontal(\"pr\", out_grid, tool=\"regrid2\")\n", "outpath=os.path.join(demo_output_directory,\"extremes_tmp/pr_day_GISS-E2-H_historical_r6i1p1_20000101-20051231.nc\")\n", - "output_data.to_netcdf(outpath,\"w\")\n", + "make_lower_resolution_model_data_for_demo(inpath, outpath)\n", "\n", "# Make low resolution obs data\n", "inpath=os.path.join(demo_data_directory,'obs4MIPs_PCMDI_daily/NASA-JPL/GPCP-1-3/day/pr/gn/latest/pr_day_GPCP-1-3_PCMDI_gn_19961002-20170101.nc')\n", - "ds=xc.open_dataset(inpath)\n", - "out_grid = xc.create_uniform_grid(-90, 90, 10., 0.5, 360, 10.)\n", - "output_data = ds.regridder.horizontal(\"pr\", out_grid, tool=\"regrid2\")\n", "outpath=os.path.join(demo_output_directory,\"extremes_tmp/pr_day_GPCP-1-3_PCMDI_gn_19961002-20170101.nc\")\n", - "output_data.to_netcdf(outpath,\"w\")" + "make_lower_resolution_model_data_for_demo(inpath, outpath)" ] }, { @@ -91,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 7, "id": "7439eab4", "metadata": {}, "outputs": [ @@ -156,219 +156,60 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "id": "8adaf0fb", "metadata": {}, "outputs": [ { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "INFO::2023-10-19 15:57::pcmdi_metrics:: Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/demo_output/extremes_ex1/GISS-E2-H_block_extremes_metrics.json\n", - "2023-10-19 15:57:36,152 [INFO]: base.py(write:246) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/demo_output/extremes_ex1/GISS-E2-H_block_extremes_metrics.json\n", - "INFO::2023-10-19 15:57::pcmdi_metrics:: Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/demo_output/extremes_ex1/block_extremes_metrics.json\n", - "2023-10-19 15:57:55,591 [INFO]: base.py(write:246) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/demo_output/extremes_ex1/block_extremes_metrics.json\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:423: RuntimeWarning: overflow encountered in power\n", - " result = np.sum(np.log(scale) + y**(-1 / shape) + np.log(y)*(1/shape + 1))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:423: RuntimeWarning: overflow encountered in power\n", - " result = np.sum(np.log(scale) + y**(-1 / shape) + np.log(y)*(1/shape + 1))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:423: RuntimeWarning: overflow encountered in power\n", - " result = np.sum(np.log(scale) + y**(-1 / shape) + np.log(y)*(1/shape + 1))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:423: RuntimeWarning: overflow encountered in power\n", - " result = np.sum(np.log(scale) + y**(-1 / shape) + np.log(y)*(1/shape + 1))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:423: RuntimeWarning: overflow encountered in power\n", - " result = np.sum(np.log(scale) + y**(-1 / shape) + np.log(y)*(1/shape + 1))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n" + "No sftlf file found for GISS-E2-H r6i1p1\n", + "\n", + "-----------------------\n", + "model, run, variable: GISS-E2-H r6i1p1 pr\n", + "test_data (model in this case) full_path:\n", + " demo_output/extremes_tmp/pr_day_GISS-E2-H_historical_r6i1p1_20000101-20051231.nc\n", + "Generating land sea mask.\n", + "Generating precipitation block extrema.\n", + "Writing results to netCDF.\n", + "Generating metrics.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:423: RuntimeWarning: overflow encountered in power\n", - " result = np.sum(np.log(scale) + y**(-1 / shape) + np.log(y)*(1/shape + 1))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:423: RuntimeWarning: overflow encountered in power\n", - " result = np.sum(np.log(scale) + y**(-1 / shape) + np.log(y)*(1/shape + 1))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1584: RuntimeWarning: All-NaN slice encountered\n", - " result = np.apply_along_axis(_nanquantile_1d, axis, a, q,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:423: RuntimeWarning: overflow encountered in power\n", - " result = np.sum(np.log(scale) + y**(-1 / shape) + np.log(y)*(1/shape + 1))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numdifftools/limits.py:150: UserWarning: All-NaN slice encountered\n", - " warnings.warn(str(msg))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:423: RuntimeWarning: overflow encountered in power\n", - " result = np.sum(np.log(scale) + y**(-1 / shape) + np.log(y)*(1/shape + 1))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:423: RuntimeWarning: overflow encountered in power\n", - " result = np.sum(np.log(scale) + y**(-1 / shape) + np.log(y)*(1/shape + 1))\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:423: RuntimeWarning: overflow encountered in power\n", - " result = np.sum(np.log(scale) + y**(-1 / shape) + np.log(y)*(1/shape + 1))\n", - "2023-10-19 16:00:57,855 [WARNING]: dataset.py(open_dataset:109) >> \"No time coordinates were found in this dataset to decode. If time coordinates were expected to exist, make sure they are detectable by setting the CF 'axis' or 'standard_name' attribute (e.g., ds['time'].attrs['axis'] = 'T' or ds['time'].attrs['standard_name'] = 'time'). Afterwards, try decoding again with `xcdat.decode_time`.\"\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1879: RuntimeWarning: Degrees of freedom <= 0 for slice.\n", - " var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1879: RuntimeWarning: Degrees of freedom <= 0 for slice.\n", - " var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1879: RuntimeWarning: Degrees of freedom <= 0 for slice.\n", - " var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1879: RuntimeWarning: Degrees of freedom <= 0 for slice.\n", - " var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1879: RuntimeWarning: Degrees of freedom <= 0 for slice.\n", - " var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n", - "2023-10-19 16:00:58,459 [WARNING]: dataset.py(open_dataset:109) >> \"No time coordinates were found in this dataset to decode. If time coordinates were expected to exist, make sure they are detectable by setting the CF 'axis' or 'standard_name' attribute (e.g., ds['time'].attrs['axis'] = 'T' or ds['time'].attrs['standard_name'] = 'time'). Afterwards, try decoding again with `xcdat.decode_time`.\"\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1879: RuntimeWarning: Degrees of freedom <= 0 for slice.\n", - " var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1879: RuntimeWarning: Degrees of freedom <= 0 for slice.\n" + "INFO::2023-12-22 13:00::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/extremes_ex1/GISS-E2-H_block_extremes_metrics.json\n", + "2023-12-22 13:00:39,824 [INFO]: base.py(write:251) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/extremes_ex1/GISS-E2-H_block_extremes_metrics.json\n", + "2023-12-22 13:00:39,824 [INFO]: base.py(write:251) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/extremes_ex1/GISS-E2-H_block_extremes_metrics.json\n", + "INFO::2023-12-22 13:00::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/extremes_ex1/block_extremes_metrics.json\n", + "2023-12-22 13:00:56,588 [INFO]: base.py(write:251) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/extremes_ex1/block_extremes_metrics.json\n", + "2023-12-22 13:00:56,588 [INFO]: base.py(write:251) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/extremes_ex1/block_extremes_metrics.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generating return values.\n", + "demo_output/extremes_ex1/netcdf/GISS-E2-H_r6i1p1_land_Rx5day_2000-2005.nc\n", + "Return value for single realization\n", + "Stationary case\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - " var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1879: RuntimeWarning: Degrees of freedom <= 0 for slice.\n", - " var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1879: RuntimeWarning: Degrees of freedom <= 0 for slice.\n", - " var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n", - "/home/ordonez4/miniconda3/envs/pmp_climex_2/lib/python3.10/site-packages/numpy/lib/nanfunctions.py:1879: RuntimeWarning: Degrees of freedom <= 0 for slice.\n", - " var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n", - "INFO::2023-10-19 16:01::pcmdi_metrics:: Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/demo_output/extremes_ex1/return_value_metrics.json\n", - "2023-10-19 16:01:18,413 [INFO]: base.py(write:246) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/demo_output/extremes_ex1/return_value_metrics.json\n" + "/Users/lee1043/mambaforge/envs/pmp_devel_20231129/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:288: RuntimeWarning: Mean of empty slice\n", + " scale_factor = np.abs(np.nanmean(data))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\n", - "Metrics output path not found.\n", - "Creating metrics output directory demo_output/extremes_ex1\n", - "No sftlf file found for GISS-E2-H r6i1p1\n", - "\n", - "-----------------------\n", - "model, run, variable: GISS-E2-H r6i1p1 pr\n", - "test_data (model in this case) full_path:\n", - " demo_output/extremes_tmp/pr_day_GISS-E2-H_historical_r6i1p1_20000101-20051231.nc\n", - "Generating land sea mask.\n", - "Generating precipitation block extrema.\n", - "Writing results to netCDF.\n", - "Generating metrics.\n", - "Generating return values.\n", - "demo_output/extremes_ex1/netcdf/GISS-E2-H_r6i1p1_land_Rx5day_2000-2005.nc\n", - "Return value for single realization\n", - "Stationary case\n", "demo_output/extremes_ex1/netcdf/GISS-E2-H_r6i1p1_land_Rx1day_2000-2005.nc\n", "Return value for single realization\n", "Stationary case\n" @@ -378,7 +219,30 @@ "name": "stderr", "output_type": "stream", "text": [ - "[WARNING] yaksa: 10 leaked handle pool objects\n" + "/Users/lee1043/mambaforge/envs/pmp_devel_20231129/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/return_value.py:288: RuntimeWarning: Mean of empty slice\n", + " scale_factor = np.abs(np.nanmean(data))\n", + "2023-12-22 13:00:57,246 [WARNING]: dataset.py(open_dataset:128) >> \"No time coordinates were found in this dataset to decode. If time coordinates were expected to exist, make sure they are detectable by setting the CF 'axis' or 'standard_name' attribute (e.g., ds['time'].attrs['axis'] = 'T' or ds['time'].attrs['standard_name'] = 'time'). Afterwards, try decoding again with `xcdat.decode_time`.\"\n", + "2023-12-22 13:00:57,246 [WARNING]: dataset.py(open_dataset:128) >> \"No time coordinates were found in this dataset to decode. If time coordinates were expected to exist, make sure they are detectable by setting the CF 'axis' or 'standard_name' attribute (e.g., ds['time'].attrs['axis'] = 'T' or ds['time'].attrs['standard_name'] = 'time'). Afterwards, try decoding again with `xcdat.decode_time`.\"\n", + "Traceback (most recent call last):\n", + " File \"/Users/lee1043/mambaforge/envs/pmp_devel_20231129/bin/extremes_driver.py\", line 607, in \n", + " tmp = compute_metrics.metrics_json_return_value(\n", + " File \"/Users/lee1043/mambaforge/envs/pmp_devel_20231129/lib/python3.10/site-packages/pcmdi_metrics/extremes/lib/compute_metrics.py\", line 638, in metrics_json_return_value\n", + " obs = obs.bounds.add_missing_bounds()\n", + "AttributeError: 'NoneType' object has no attribute 'bounds'\n" + ] + }, + { + "ename": "CalledProcessError", + "evalue": "Command 'b'extremes_driver.py -p basic_extremes_param.py\\n'' returned non-zero exit status 1.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mCalledProcessError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[8], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mget_ipython\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun_cell_magic\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mbash\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mextremes_driver.py -p basic_extremes_param.py\u001b[39;49m\u001b[38;5;130;43;01m\\n\u001b[39;49;00m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/mambaforge/envs/pmp_devel_20231129/lib/python3.10/site-packages/IPython/core/interactiveshell.py:2430\u001b[0m, in \u001b[0;36mInteractiveShell.run_cell_magic\u001b[0;34m(self, magic_name, line, cell)\u001b[0m\n\u001b[1;32m 2428\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbuiltin_trap:\n\u001b[1;32m 2429\u001b[0m args \u001b[38;5;241m=\u001b[39m (magic_arg_s, cell)\n\u001b[0;32m-> 2430\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2432\u001b[0m \u001b[38;5;66;03m# The code below prevents the output from being displayed\u001b[39;00m\n\u001b[1;32m 2433\u001b[0m \u001b[38;5;66;03m# when using magics with decodator @output_can_be_silenced\u001b[39;00m\n\u001b[1;32m 2434\u001b[0m \u001b[38;5;66;03m# when the last Python token in the expression is a ';'.\u001b[39;00m\n\u001b[1;32m 2435\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mgetattr\u001b[39m(fn, magic\u001b[38;5;241m.\u001b[39mMAGIC_OUTPUT_CAN_BE_SILENCED, \u001b[38;5;28;01mFalse\u001b[39;00m):\n", + "File \u001b[0;32m~/mambaforge/envs/pmp_devel_20231129/lib/python3.10/site-packages/IPython/core/magics/script.py:153\u001b[0m, in \u001b[0;36mScriptMagics._make_script_magic..named_script_magic\u001b[0;34m(line, cell)\u001b[0m\n\u001b[1;32m 151\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 152\u001b[0m line \u001b[38;5;241m=\u001b[39m script\n\u001b[0;32m--> 153\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshebang\u001b[49m\u001b[43m(\u001b[49m\u001b[43mline\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcell\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/mambaforge/envs/pmp_devel_20231129/lib/python3.10/site-packages/IPython/core/magics/script.py:305\u001b[0m, in \u001b[0;36mScriptMagics.shebang\u001b[0;34m(self, line, cell)\u001b[0m\n\u001b[1;32m 300\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args\u001b[38;5;241m.\u001b[39mraise_error \u001b[38;5;129;01mand\u001b[39;00m p\u001b[38;5;241m.\u001b[39mreturncode \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 301\u001b[0m \u001b[38;5;66;03m# If we get here and p.returncode is still None, we must have\u001b[39;00m\n\u001b[1;32m 302\u001b[0m \u001b[38;5;66;03m# killed it but not yet seen its return code. We don't wait for it,\u001b[39;00m\n\u001b[1;32m 303\u001b[0m \u001b[38;5;66;03m# in case it's stuck in uninterruptible sleep. -9 = SIGKILL\u001b[39;00m\n\u001b[1;32m 304\u001b[0m rc \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mreturncode \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m9\u001b[39m\n\u001b[0;32m--> 305\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CalledProcessError(rc, cell)\n", + "\u001b[0;31mCalledProcessError\u001b[0m: Command 'b'extremes_driver.py -p basic_extremes_param.py\\n'' returned non-zero exit status 1." ] } ], @@ -397,7 +261,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "3bd1bba7", "metadata": {}, "outputs": [ @@ -469,7 +333,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "0600155d", "metadata": {}, "outputs": [ @@ -539,7 +403,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "b6ebd1fc", "metadata": {}, "outputs": [ @@ -591,7 +455,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "0b619de5", "metadata": {}, "outputs": [ @@ -980,7 +844,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "22886f3e", "metadata": {}, "outputs": [ @@ -1150,7 +1014,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "c86f0eb9", "metadata": {}, "outputs": [ @@ -1335,7 +1199,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "a14ccb13", "metadata": {}, "outputs": [ @@ -1577,7 +1441,18 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, + "id": "43ef81af", + "metadata": {}, + "outputs": [], + "source": [ + "from IPython.display import Image\n", + "from IPython.core.display import HTML " + ] + }, + { + "cell_type": "code", + "execution_count": null, "id": "d871e429", "metadata": {}, "outputs": [ @@ -1594,9 +1469,6 @@ } ], "source": [ - "from IPython.display import Image\n", - "from IPython.core.display import HTML \n", - "\n", "Image(filename = demo_output_directory + \"/extremes_ex3/plots/maps/GISS-E2-H_r6i1p1_land_Rx1day_ANN.png\")" ] }, @@ -1653,7 +1525,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "36771ecb", "metadata": {}, "outputs": [ @@ -1825,7 +1697,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "aa7cbc57", "metadata": {}, "outputs": [ @@ -1842,9 +1714,6 @@ } ], "source": [ - "from IPython.display import Image\n", - "from IPython.core.display import HTML \n", - "\n", "Image(filename = demo_output_directory + \"/extremes_ex4/plots/maps/GISS-E2-H_r6i1p1_WestHemi_Rx1day_ANN.png\")" ] }, @@ -1887,7 +1756,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "40e73627", "metadata": {}, "outputs": [], @@ -1895,21 +1764,13 @@ "%%bash -s \"$demo_output_directory\"\n", "rm -r $1/extremes_tmp" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e8ff050a", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python [conda env:pmp_climex_2] *", + "display_name": "pmp_devel_20230223", "language": "python", - "name": "conda-env-pmp_climex_2-py" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -1921,7 +1782,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.10.10" } }, "nbformat": 4,