diff --git a/doc/source/tutorials/index.rst b/doc/source/tutorials/index.rst index a8fcd1ac..93cbbdbe 100644 --- a/doc/source/tutorials/index.rst +++ b/doc/source/tutorials/index.rst @@ -11,7 +11,9 @@ capabilities. To see how icclim can solve specific issues see :caption: Contents: installation - C4I_Averaged_Temperature_Anomaly_2081-2100_vs_1971-2000_SSP5 - C4I_deltaT_deltaP_Anomaly_2081-2100_vs_1971-2000 - C4I_TG90p_Calculate__subset_and_plot - C4I_userindex_maxtemp_freezing + notebooks/averaged_tas_anomaly + notebooks/averaged_temperature_anomaly + notebooks/deltat_deltap_anomaly + notebooks/tg90p_calculate__subset_and_plot + notebooks/userindex_maxtemp_freezing + notebooks/cold_spell_duration diff --git a/doc/source/tutorials/C4I_Averaged_Temperature_Anomaly_2081-2100_vs_1971-2000_SSP5.ipynb b/doc/source/tutorials/notebooks/averaged_tas_anomaly.ipynb similarity index 99% rename from doc/source/tutorials/C4I_Averaged_Temperature_Anomaly_2081-2100_vs_1971-2000_SSP5.ipynb rename to doc/source/tutorials/notebooks/averaged_tas_anomaly.ipynb index 6626c11b..7a3b31d5 100644 --- a/doc/source/tutorials/C4I_Averaged_Temperature_Anomaly_2081-2100_vs_1971-2000_SSP5.ipynb +++ b/doc/source/tutorials/notebooks/averaged_tas_anomaly.ipynb @@ -4,12 +4,17 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## ICCLIM C4I: Calculate the Averaged Temperature Anomaly 2081-2100 vs 1971-2000 SSP585\n", + "# Calculate the Averaged Temperature Anomaly \n", "\n", + "## Averaged Temperature Anomaly 2081-2100 vs 1971-2000 SSP585\n", "\n", - "Example notebook that runs ICCLIM, which is pre-installed in the notebook.\n", + "This example calculates the averaged temperature anomaly (using the TG indicator) for the period 2081-2100 compared to the reference 1971-2000 for SSP585 and several climate models.\n", + "\n", + "We assume to have the **tas** variable in netCDF files in a `./data` folder.\n", + "The data can be dowloaded using the [metalink](data/cmcc_gfdl_tas.metalink) provided with this notebook.\n", + "The data described in a `.metalink` file can be dowloaded with tools such as [aria2](https://aria2.github.io/) or a browser plugin such as [DownThemAll!](https://addons.mozilla.org/en-US/firefox/addon/downthemall/)\n", + "If you wish to use a different dataset, you can use the [climate 4 impact portal](https://www.climate4impact.eu/c4i-frontend/) to search and select the data you wish to use and a metalink file to the [ESGF](https://esgf.llnl.gov/) data will be provided.\n", "\n", - "The example calculates the averaged temperature anomaly (using the TG indicator) for the period 2081-2100 compared to the reference 1971-2000 for SSP585 and several climate models. It needs the tas parameter chosen by the user on C4I. Alternatively, it could also be used as an example for any other climate index.\n", "\n", "The data is read using xarray and a plot of the time series averaged over Europe is generated, as well as an average spatial map. Several output types examples are shown.\n", "\n", diff --git a/doc/source/tutorials/data/cmcc_and_gfdl_pr_and_tas.metalink b/doc/source/tutorials/notebooks/data/cmcc_gfdl_pr_and_tas.metalink similarity index 100% rename from doc/source/tutorials/data/cmcc_and_gfdl_pr_and_tas.metalink rename to doc/source/tutorials/notebooks/data/cmcc_gfdl_pr_and_tas.metalink diff --git a/doc/source/tutorials/notebooks/data/cmcc_gfdl_tas.metalink b/doc/source/tutorials/notebooks/data/cmcc_gfdl_tas.metalink new file mode 100644 index 00000000..99f48a45 --- /dev/null +++ b/doc/source/tutorials/notebooks/data/cmcc_gfdl_tas.metalink @@ -0,0 +1,153 @@ + + + 1147761901 + 1842d1e9d4d880f431f1a08cff252501ea32aac39e85dd02426f1616b7cc34d9 + http://esgf-node2.cmcc.it/thredds/fileServer/esg_dataroot/CMIP6/ScenarioMIP/CMCC/CMCC-ESM2/ssp585/r1i1p1f1/day/tas/gn/v20210126/tas_day_CMCC-ESM2_ssp585_r1i1p1f1_gn_20150101-20391231.nc + + + + 1145071534 + 749ca55115708a81b59e0430fc2dca9674fe16ec7328b639f1232bfeb2531720 + http://esgf-node2.cmcc.it/thredds/fileServer/esg_dataroot/CMIP6/ScenarioMIP/CMCC/CMCC-ESM2/ssp585/r1i1p1f1/day/tas/gn/v20210126/tas_day_CMCC-ESM2_ssp585_r1i1p1f1_gn_20400101-20641231.nc + + + + 1141932140 + 823c0ddcd5d607508f6d2c1cf262ae8345c9f5e7b90b83dff459c9768c01b874 + http://esgf-node2.cmcc.it/thredds/fileServer/esg_dataroot/CMIP6/ScenarioMIP/CMCC/CMCC-ESM2/ssp585/r1i1p1f1/day/tas/gn/v20210126/tas_day_CMCC-ESM2_ssp585_r1i1p1f1_gn_20650101-20891231.nc + + + + 501759828 + 009c5804afeeac37e5337e1f9a0defcded19e1418ec604fe3c9ec921e80e7122 + http://esgf-node2.cmcc.it/thredds/fileServer/esg_dataroot/CMIP6/ScenarioMIP/CMCC/CMCC-ESM2/ssp585/r1i1p1f1/day/tas/gn/v20210126/tas_day_CMCC-ESM2_ssp585_r1i1p1f1_gn_20900101-21001231.nc + + + + 1150891671 + e04ed7e8cd9d826534e62d9f1f3f475d82c598c4afe4c895f6a09f611a3b2b55 + http://esgf-node2.cmcc.it/thredds/fileServer/esg_dataroot/CMIP6/CMIP/CMCC/CMCC-ESM2/historical/r1i1p1f1/day/tas/gn/v20210114/tas_day_CMCC-ESM2_historical_r1i1p1f1_gn_18500101-18741231.nc + + + + 1151025700 + 6c4b4daf593a7f4f367422cd3809cc1903b150416768082f6f23ff7d0d423c2e + http://esgf-node2.cmcc.it/thredds/fileServer/esg_dataroot/CMIP6/CMIP/CMCC/CMCC-ESM2/historical/r1i1p1f1/day/tas/gn/v20210114/tas_day_CMCC-ESM2_historical_r1i1p1f1_gn_18750101-18991231.nc + + + + 1150811941 + 41ce66cfc99260dcc3f444c4d331af1bd0e31a584ce58efcf99e4fd6e1018315 + http://esgf-node2.cmcc.it/thredds/fileServer/esg_dataroot/CMIP6/CMIP/CMCC/CMCC-ESM2/historical/r1i1p1f1/day/tas/gn/v20210114/tas_day_CMCC-ESM2_historical_r1i1p1f1_gn_19000101-19241231.nc + + + + 1150101826 + 9d98438740d5df41f8c32134ee1517bbdc1ff8fc44edae4ee7ef0f1b77cca6db + http://esgf-node2.cmcc.it/thredds/fileServer/esg_dataroot/CMIP6/CMIP/CMCC/CMCC-ESM2/historical/r1i1p1f1/day/tas/gn/v20210114/tas_day_CMCC-ESM2_historical_r1i1p1f1_gn_19250101-19491231.nc + + + + 1149723510 + 934178eea0dc6b0d34631f4b0a897308da91b0525217302b1cddf79a491d0eef + http://esgf-node2.cmcc.it/thredds/fileServer/esg_dataroot/CMIP6/CMIP/CMCC/CMCC-ESM2/historical/r1i1p1f1/day/tas/gn/v20210114/tas_day_CMCC-ESM2_historical_r1i1p1f1_gn_19500101-19741231.nc + + + + 1149098090 + 20087e4531105f3d3aec33b39c33b1ebfd9f4bf266cb58e2e40dc70a98ee2eb8 + http://esgf-node2.cmcc.it/thredds/fileServer/esg_dataroot/CMIP6/CMIP/CMCC/CMCC-ESM2/historical/r1i1p1f1/day/tas/gn/v20210114/tas_day_CMCC-ESM2_historical_r1i1p1f1_gn_19750101-19991231.nc + + + + 688921916 + 2a085848340fcd18a92885461075e7573f30739322c60d9008a04c9206bf4e04 + http://esgf-node2.cmcc.it/thredds/fileServer/esg_dataroot/CMIP6/CMIP/CMCC/CMCC-ESM2/historical/r1i1p1f1/day/tas/gn/v20210114/tas_day_CMCC-ESM2_historical_r1i1p1f1_gn_20000101-20141231.nc + + + + 869344669 + 09daf328f41bafee272ab1caf4b638cfde5140806eba9d48841e2f16125c4aac + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/CMIP/NOAA-GFDL/GFDL-ESM4/historical/r1i1p1f1/day/tas/gr1/v20190726/tas_day_GFDL-ESM4_historical_r1i1p1f1_gr1_18500101-18691231.nc + + + + 869221823 + 827bccd76d56f9eade880f4393c39b9ae373af37864f5229cd751353ed65a936 + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/CMIP/NOAA-GFDL/GFDL-ESM4/historical/r1i1p1f1/day/tas/gr1/v20190726/tas_day_GFDL-ESM4_historical_r1i1p1f1_gr1_18700101-18891231.nc + + + + 868781080 + afd5a3b30407bb238c20a98a2148d922e5c79ed33981ae42affa975fc11bf7fa + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/CMIP/NOAA-GFDL/GFDL-ESM4/historical/r1i1p1f1/day/tas/gr1/v20190726/tas_day_GFDL-ESM4_historical_r1i1p1f1_gr1_18900101-19091231.nc + + + + 868772105 + 68e7420534128c8ce30951e32f96e2e70a1a06e41afcfb6ae44f2253ded58ee0 + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/CMIP/NOAA-GFDL/GFDL-ESM4/historical/r1i1p1f1/day/tas/gr1/v20190726/tas_day_GFDL-ESM4_historical_r1i1p1f1_gr1_19100101-19291231.nc + + + + 869081937 + c9c3876e103b5d4c52b16f94caf8968412725038aa48cbe955655ff08cecc91a + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/CMIP/NOAA-GFDL/GFDL-ESM4/historical/r1i1p1f1/day/tas/gr1/v20190726/tas_day_GFDL-ESM4_historical_r1i1p1f1_gr1_19300101-19491231.nc + + + + 868969211 + 8ec30f38f360b8967399a994611a815c687686005affa499e5e22b22e41eb10f + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/CMIP/NOAA-GFDL/GFDL-ESM4/historical/r1i1p1f1/day/tas/gr1/v20190726/tas_day_GFDL-ESM4_historical_r1i1p1f1_gr1_19500101-19691231.nc + + + + 868804370 + b8e45d51f84915e5f06723f81c78de4cb5ac7f8ab9891764bced8682348fc908 + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/CMIP/NOAA-GFDL/GFDL-ESM4/historical/r1i1p1f1/day/tas/gr1/v20190726/tas_day_GFDL-ESM4_historical_r1i1p1f1_gr1_19700101-19891231.nc + + + + 868083593 + 21319b76de8745787399b707790945b2e0e1703cb859e95ba24df637b33f0e6e + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/CMIP/NOAA-GFDL/GFDL-ESM4/historical/r1i1p1f1/day/tas/gr1/v20190726/tas_day_GFDL-ESM4_historical_r1i1p1f1_gr1_19900101-20091231.nc + + + + 216984460 + cb28432dd1d5c22ba8dc261ebb9279e69f25deab4c5c3d7860410f17fefd9b43 + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/CMIP/NOAA-GFDL/GFDL-ESM4/historical/r1i1p1f1/day/tas/gr1/v20190726/tas_day_GFDL-ESM4_historical_r1i1p1f1_gr1_20100101-20141231.nc + + + + 867093833 + 70c0c4fa91357311eaf53e9140ac0ed2ab6dfb06e48631b895b584f78e286aae + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/ScenarioMIP/NOAA-GFDL/GFDL-ESM4/ssp585/r1i1p1f1/day/tas/gr1/v20180701/tas_day_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20150101-20341231.nc + + + + 866220779 + 2f5036ec5d8480e07d0447bbcebe710bc615b367f9d048393750bcd34a669c5e + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/ScenarioMIP/NOAA-GFDL/GFDL-ESM4/ssp585/r1i1p1f1/day/tas/gr1/v20180701/tas_day_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20350101-20541231.nc + + + + 864691418 + 99d1d4ab9d7d3b356a89f429be8bab90527f67dbf7e7190653c0b26df8b2084c + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/ScenarioMIP/NOAA-GFDL/GFDL-ESM4/ssp585/r1i1p1f1/day/tas/gr1/v20180701/tas_day_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20550101-20741231.nc + + + + 862813097 + 59bb830b97b794ad7a2dcffbde62b2eec325327236056dbf90948c1600ec0420 + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/ScenarioMIP/NOAA-GFDL/GFDL-ESM4/ssp585/r1i1p1f1/day/tas/gr1/v20180701/tas_day_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20750101-20941231.nc + + + + 258706543 + 720bcd041a8911dd4ef072c6576b503b24fd0d981ba6d64133e393a657056904 + http://esgf-data1.llnl.gov/thredds/fileServer/css03_data/CMIP6/ScenarioMIP/NOAA-GFDL/GFDL-ESM4/ssp585/r1i1p1f1/day/tas/gr1/v20180701/tas_day_GFDL-ESM4_ssp585_r1i1p1f1_gr1_20950101-21001231.nc + + + + diff --git a/doc/source/tutorials/C4I_deltaT_deltaP_Anomaly_2081-2100_vs_1971-2000.ipynb b/doc/source/tutorials/notebooks/deltaT_deltaP_anomaly.ipynb similarity index 83% rename from doc/source/tutorials/C4I_deltaT_deltaP_Anomaly_2081-2100_vs_1971-2000.ipynb rename to doc/source/tutorials/notebooks/deltaT_deltaP_anomaly.ipynb index 751fb6d9..0a5221f9 100644 --- a/doc/source/tutorials/C4I_deltaT_deltaP_Anomaly_2081-2100_vs_1971-2000.ipynb +++ b/doc/source/tutorials/notebooks/deltaT_deltaP_anomaly.ipynb @@ -4,11 +4,19 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## ICCLIM C4I: Calculate the averaged surface temperature anomaly and the same for precipitation anomaly over the period 2081-2100 compared to the period 1981-2000, and display delta-T delta-P diagram\n", + "# Calculate averaged surface temperature and precipitation anomalies\n", "\n", - "Example notebook that runs ICCLIM, which is pre-installed in the notebook.\n", + "#### The averaged surface temperature anomaly and the same for precipitation anomaly over the period 2081-2100 compared to the period 1981-2000, and display delta-T delta-P diagram\n", + "\n", + "Example notebook that runs icclim.\n", + "\n", + "The example calculates the averaged temperature anomaly (using the [TG](https://knmi-ecad-assets-prd.s3.amazonaws.com/documents/atbd.pdf#subsubsection.5.3.11.TG) indicator) vs the precipitation anomaly (using the PRCPTOT indicator) for the period 2081-2100 compared to the reference 1981-2000 for SSP 585 and several climate models.\n", + "\n", + "We assume to have the **tas** and the **pr** variables in netCDF files in a `./data` folder.\n", + "The data can be dowloaded using the [metalink](data/cmcc_gfdl_pr_and_tas.metalink) provided with this notebook.\n", + "The data described in a `.metalink` file can be dowloaded with tools such as [aria2](https://aria2.github.io/) or a browser plugin such as [DownThemAll!](https://addons.mozilla.org/en-US/firefox/addon/downthemall/)\n", + "If you wish to use a different dataset, you can use the [climate 4 impact portal](https://www.climate4impact.eu/c4i-frontend/) to search and select the data you wish to use and a metalink file to the [ESGF](https://esgf.llnl.gov/) data will be provided.\n", "\n", - "The example calculates the averaged temperature anomaly (using the TG indicator) vs the precipitation anomaly (using the PRCPTOT indicator) for the period 2081-2100 compared to the reference 1981-2000 for SSP 585 and several climate models. It needs the tas as well as the pr parameter chosen by the user on C4I.\n", "\n", "The data is read using xarray and a plot of the a deltaT-deltaP diagram with data averaged over Europe is generated.\n", "\n", @@ -19,11 +27,79 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: icclim in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (6.6.0)\n", + "Requirement already satisfied: matplotlib in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (3.8.2)\n", + "Requirement already satisfied: nc_time_axis in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (1.4.1)\n", + "Requirement already satisfied: numpy>=1.16 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (1.26.2)\n", + "Requirement already satisfied: xarray>=2022.6 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2023.10.1)\n", + "Requirement already satisfied: xclim<=0.47,>=0.45 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (0.47.0)\n", + "Requirement already satisfied: cf_xarray>=0.7.4 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (0.8.6)\n", + "Requirement already satisfied: cftime>=1.4.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (1.6.3)\n", + "Requirement already satisfied: dask[array] in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2023.12.1)\n", + "Requirement already satisfied: netCDF4>=1.5.7 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (1.6.5)\n", + "Requirement already satisfied: psutil in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (5.9.7)\n", + "Requirement already satisfied: zarr in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2.16.1)\n", + "Requirement already satisfied: rechunker!=0.4,>=0.3 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (0.5.2)\n", + "Requirement already satisfied: fsspec in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2023.12.2)\n", + "Requirement already satisfied: pandas>=1.3 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2.1.4)\n", + "Requirement already satisfied: dateparser in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (1.2.0)\n", + "Requirement already satisfied: pint in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (0.19.2)\n", + "Requirement already satisfied: jinja2 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (3.1.2)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (1.2.0)\n", + "Requirement already satisfied: cycler>=0.10 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (4.46.0)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (1.4.5)\n", + "Requirement already satisfied: packaging>=20.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (23.2)\n", + "Requirement already satisfied: pillow>=8 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (10.1.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (3.1.1)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (2.8.2)\n", + "Requirement already satisfied: certifi in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from netCDF4>=1.5.7->icclim) (2023.11.17)\n", + "Requirement already satisfied: pytz>=2020.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from pandas>=1.3->icclim) (2023.3.post1)\n", + "Requirement already satisfied: tzdata>=2022.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from pandas>=1.3->icclim) (2023.3)\n", + "Requirement already satisfied: six>=1.5 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n", + "Requirement already satisfied: mypy-extensions in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from rechunker!=0.4,>=0.3->icclim) (1.0.0)\n", + "Requirement already satisfied: boltons>=20.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (23.0.0)\n", + "Requirement already satisfied: bottleneck>=1.3.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (1.3.7)\n", + "Requirement already satisfied: Click>=8.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (8.1.7)\n", + "Requirement already satisfied: jsonpickle in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (3.0.2)\n", + "Requirement already satisfied: lmoments3>=1.0.5 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (1.0.6)\n", + "Requirement already satisfied: numba in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (0.58.1)\n", + "Requirement already satisfied: pyyaml in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (6.0.1)\n", + "Requirement already satisfied: scikit-learn>=0.21.3 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (1.3.2)\n", + "Requirement already satisfied: scipy>=1.2 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (1.11.4)\n", + "Requirement already satisfied: statsmodels in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (0.14.1)\n", + "Requirement already satisfied: cloudpickle>=1.5.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array]->icclim) (3.0.0)\n", + "Requirement already satisfied: partd>=1.2.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array]->icclim) (1.4.1)\n", + "Requirement already satisfied: toolz>=0.10.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array]->icclim) (0.12.0)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array]->icclim) (7.0.0)\n", + "Requirement already satisfied: asciitree in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from zarr->icclim) (0.3.3)\n", + "Requirement already satisfied: fasteners in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from zarr->icclim) (0.17.3)\n", + "Requirement already satisfied: numcodecs>=0.10.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from zarr->icclim) (0.12.1)\n", + "Requirement already satisfied: regex!=2019.02.19,!=2021.8.27 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dateparser->icclim) (2023.10.3)\n", + "Requirement already satisfied: tzlocal in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dateparser->icclim) (5.2)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from jinja2->icclim) (2.1.3)\n", + "Requirement already satisfied: zipp>=0.5 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from importlib-metadata>=4.13.0->dask[array]->icclim) (3.17.0)\n", + "Requirement already satisfied: locket in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from partd>=1.2.0->dask[array]->icclim) (1.0.0)\n", + "Requirement already satisfied: joblib>=1.1.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from scikit-learn>=0.21.3->xclim<=0.47,>=0.45->icclim) (1.3.2)\n", + "Requirement already satisfied: threadpoolctl>=2.0.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from scikit-learn>=0.21.3->xclim<=0.47,>=0.45->icclim) (3.2.0)\n", + "Requirement already satisfied: bokeh>=2.4.2 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array,diagnostics]->rechunker!=0.4,>=0.3->icclim) (3.3.2)\n", + "Requirement already satisfied: llvmlite<0.42,>=0.41.0dev0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from numba->xclim<=0.47,>=0.45->icclim) (0.41.1)\n", + "Requirement already satisfied: patsy>=0.5.4 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from statsmodels->xclim<=0.47,>=0.45->icclim) (0.5.4)\n", + "Requirement already satisfied: tornado>=5.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from bokeh>=2.4.2->dask[array,diagnostics]->rechunker!=0.4,>=0.3->icclim) (6.3.3)\n", + "Requirement already satisfied: xyzservices>=2021.09.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from bokeh>=2.4.2->dask[array,diagnostics]->rechunker!=0.4,>=0.3->icclim) (2023.10.1)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ - "%matplotlib inline" + "%pip install icclim matplotlib nc_time_axis" ] }, { diff --git a/doc/source/tutorials/C4I_TG90p_Calculate__subset_and_plot.ipynb b/doc/source/tutorials/notebooks/tg90p_calculate__subset_and_plot.ipynb similarity index 98% rename from doc/source/tutorials/C4I_TG90p_Calculate__subset_and_plot.ipynb rename to doc/source/tutorials/notebooks/tg90p_calculate__subset_and_plot.ipynb index ea38c712..b41593ed 100644 --- a/doc/source/tutorials/C4I_TG90p_Calculate__subset_and_plot.ipynb +++ b/doc/source/tutorials/notebooks/tg90p_calculate__subset_and_plot.ipynb @@ -9,12 +9,16 @@ "tags": [] }, "source": [ - "## ICCLIM C4I: Calculate the percentage of days when Tmean > 90th percentile (TG90p)\n", + "# Calculate percentage of days when Tmean > 90th percentile (TG90p)\n", "\n", + "Example notebook that runs icclim.\n", "\n", - "Example notebook that runs ICCLIM, which is pre-installed in the notebook.\n", + "The example calculates the percentage of days when Tmax > 90th percentile (TG90p indicator) for the dataset chosen by the user on C4I.\n", + "We assume to have the **tas** variable in netCDF files in a `./data` folder.\n", + "The data can be dowloaded using the [metalink](data/cmcc_gfdl_tas.metalink) provided with this notebook.\n", + "The data described in a `.metalink` file can be dowloaded with tools such as [aria2](https://aria2.github.io/) or a browser plugin such as [DownThemAll!](https://addons.mozilla.org/en-US/firefox/addon/downthemall/)\n", + "If you wish to use a different dataset, you can use the [climate 4 impact portal](https://www.climate4impact.eu/c4i-frontend/) to search and select the data you wish to use and a metalink file to the [ESGF](https://esgf.llnl.gov/) data will be provided.\n", "\n", - "The example calculates the percentage of days when Tmax > 90th percentil (TG90p indicator) for the dataset chosen by the user on C4I.\n", "\n", "The data is read using xarray and a plot of the time series over a specific region is generated, as well as an average spatial map. Several output types examples are shown.\n", "\n", @@ -34,52 +38,92 @@ "name": "stdout", "output_type": "stream", "text": [ - "python: 3.11.7 | packaged by conda-forge | (main, Dec 15 2023, 08:38:37) [GCC 12.3.0]\n", - "numpy: 1.26.2\n", - "pandas: 2.1.4\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-01-19 15:26:53,482 To route to workers diagnostics web server please install jupyter-server-proxy: python -m pip install jupyter-server-proxy\n", - "/home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages/distributed/node.py:182: UserWarning: Port 8787 is already in use.\n", - "Perhaps you already have a cluster running?\n", - "Hosting the HTTP server on port 40611 instead\n", - " warnings.warn(\n", - "2024-01-19 15:26:53,525 State start\n", - "2024-01-19 15:26:53,527 Found stale lock file and directory '/tmp/dask-scratch-space/scheduler-0w9_0s1z', purging\n", - "2024-01-19 15:26:53,528 Found stale lock file and directory '/tmp/dask-scratch-space/scheduler-m50xkh9n', purging\n", - "2024-01-19 15:26:53,533 Scheduler at: tcp://127.0.0.1:44713\n", - "2024-01-19 15:26:53,533 dashboard at: http://127.0.0.1:40611/status\n", - "2024-01-19 15:26:53,534 Registering Worker plugin shuffle\n", - "2024-01-19 15:26:53,546 Start Nanny at: 'tcp://127.0.0.1:45305'\n", - "2024-01-19 15:26:54,402 Register worker \n", - "2024-01-19 15:26:54,405 Starting worker compute stream, tcp://127.0.0.1:42883\n", - "2024-01-19 15:26:54,406 Starting established connection to tcp://127.0.0.1:47274\n", - "2024-01-19 15:26:54,426 Receive client connection: Client-ca5a357b-b6d6-11ee-950a-10f60a94f133\n", - "2024-01-19 15:26:54,428 Starting established connection to tcp://127.0.0.1:47284\n" + "Requirement already satisfied: icclim in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (6.6.0)\n", + "Requirement already satisfied: matplotlib in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (3.8.2)\n", + "Requirement already satisfied: nc_time_axis in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (1.4.1)\n", + "Requirement already satisfied: numpy>=1.16 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (1.26.2)\n", + "Requirement already satisfied: xarray>=2022.6 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2023.10.1)\n", + "Requirement already satisfied: xclim<=0.47,>=0.45 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (0.47.0)\n", + "Requirement already satisfied: cf_xarray>=0.7.4 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (0.8.6)\n", + "Requirement already satisfied: cftime>=1.4.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (1.6.3)\n", + "Requirement already satisfied: dask[array] in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2023.12.1)\n", + "Requirement already satisfied: netCDF4>=1.5.7 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (1.6.5)\n", + "Requirement already satisfied: psutil in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (5.9.7)\n", + "Requirement already satisfied: zarr in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2.16.1)\n", + "Requirement already satisfied: rechunker!=0.4,>=0.3 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (0.5.2)\n", + "Requirement already satisfied: fsspec in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2023.12.2)\n", + "Requirement already satisfied: pandas>=1.3 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2.1.4)\n", + "Requirement already satisfied: dateparser in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (1.2.0)\n", + "Requirement already satisfied: pint in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (0.19.2)\n", + "Requirement already satisfied: jinja2 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (3.1.2)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (1.2.0)\n", + "Requirement already satisfied: cycler>=0.10 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (4.46.0)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (1.4.5)\n", + "Requirement already satisfied: packaging>=20.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (23.2)\n", + "Requirement already satisfied: pillow>=8 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (10.1.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (3.1.1)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (2.8.2)\n", + "Requirement already satisfied: certifi in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from netCDF4>=1.5.7->icclim) (2023.11.17)\n", + "Requirement already satisfied: pytz>=2020.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from pandas>=1.3->icclim) (2023.3.post1)\n", + "Requirement already satisfied: tzdata>=2022.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from pandas>=1.3->icclim) (2023.3)\n", + "Requirement already satisfied: six>=1.5 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n", + "Requirement already satisfied: mypy-extensions in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from rechunker!=0.4,>=0.3->icclim) (1.0.0)\n", + "Requirement already satisfied: boltons>=20.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (23.0.0)\n", + "Requirement already satisfied: bottleneck>=1.3.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (1.3.7)\n", + "Requirement already satisfied: Click>=8.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (8.1.7)\n", + "Requirement already satisfied: jsonpickle in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (3.0.2)\n", + "Requirement already satisfied: lmoments3>=1.0.5 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (1.0.6)\n", + "Requirement already satisfied: numba in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (0.58.1)\n", + "Requirement already satisfied: pyyaml in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (6.0.1)\n", + "Requirement already satisfied: scikit-learn>=0.21.3 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (1.3.2)\n", + "Requirement already satisfied: scipy>=1.2 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (1.11.4)\n", + "Requirement already satisfied: statsmodels in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (0.14.1)\n", + "Requirement already satisfied: cloudpickle>=1.5.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array]->icclim) (3.0.0)\n", + "Requirement already satisfied: partd>=1.2.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array]->icclim) (1.4.1)\n", + "Requirement already satisfied: toolz>=0.10.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array]->icclim) (0.12.0)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array]->icclim) (7.0.0)\n", + "Requirement already satisfied: asciitree in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from zarr->icclim) (0.3.3)\n", + "Requirement already satisfied: fasteners in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from zarr->icclim) (0.17.3)\n", + "Requirement already satisfied: numcodecs>=0.10.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from zarr->icclim) (0.12.1)\n", + "Requirement already satisfied: regex!=2019.02.19,!=2021.8.27 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dateparser->icclim) (2023.10.3)\n", + "Requirement already satisfied: tzlocal in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dateparser->icclim) (5.2)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from jinja2->icclim) (2.1.3)\n", + "Requirement already satisfied: zipp>=0.5 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from importlib-metadata>=4.13.0->dask[array]->icclim) (3.17.0)\n", + "Requirement already satisfied: locket in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from partd>=1.2.0->dask[array]->icclim) (1.0.0)\n", + "Requirement already satisfied: joblib>=1.1.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from scikit-learn>=0.21.3->xclim<=0.47,>=0.45->icclim) (1.3.2)\n", + "Requirement already satisfied: threadpoolctl>=2.0.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from scikit-learn>=0.21.3->xclim<=0.47,>=0.45->icclim) (3.2.0)\n", + "Requirement already satisfied: bokeh>=2.4.2 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array,diagnostics]->rechunker!=0.4,>=0.3->icclim) (3.3.2)\n", + "Requirement already satisfied: llvmlite<0.42,>=0.41.0dev0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from numba->xclim<=0.47,>=0.45->icclim) (0.41.1)\n", + "Requirement already satisfied: patsy>=0.5.4 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from statsmodels->xclim<=0.47,>=0.45->icclim) (0.5.4)\n", + "Requirement already satisfied: tornado>=5.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from bokeh>=2.4.2->dask[array,diagnostics]->rechunker!=0.4,>=0.3->icclim) (6.3.3)\n", + "Requirement already satisfied: xyzservices>=2021.09.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from bokeh>=2.4.2->dask[array,diagnostics]->rechunker!=0.4,>=0.3->icclim) (2023.10.1)\n", + "Note: you may need to restart the kernel to use updated packages.\n" ] - }, + } + ], + "source": [ + "%pip install icclim matplotlib nc_time_axis" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "python: 3.11.7 | packaged by conda-forge | (main, Dec 15 2023, 08:38:37) [GCC 12.3.0]\n", + "numpy: 1.26.2\n", + "pandas: 2.1.4\n", "xclim: 0.47.0\n", "dask: 2023.12.1\n", "xarray: 2023.10.1\n", "icclim: 6.6.0\n", "cftime: 1.6.3\n" ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-01-19 15:30:42,373 Receive client connection: Client-worker-531cfd0b-b6d7-11ee-954e-10f60a94f133\n", - "2024-01-19 15:30:42,375 Starting established connection to tcp://127.0.0.1:52316\n" - ] } ], "source": [ @@ -107,18 +151,6 @@ "from distributed import Client\n", "import logging\n", "\n", - "client = Client(\n", - " memory_limit=\"16GB\", n_workers=1, threads_per_worker=2, silence_logs=logging.ERROR\n", - ")\n", - "\n", - "dask.config.set({\"array.slicing.split_large_chunks\": False})\n", - "\n", - "dask.config.set({\"distributed.worker.memory.target\": \"0.8\"})\n", - "dask.config.set({\"distributed.worker.memory.spill\": \"0.9\"})\n", - "dask.config.set({\"distributed.worker.memory.pause\": \"0.95\"})\n", - "dask.config.set({\"distributed.worker.memory.terminate\": \"0.98\"})\n", - "\n", - "dask.config.set({\"array.chunk-size\": \"100 MB\"})\n", "\n", "print(\"xclim: \", xclim.__version__)\n", "print(\"dask: \", dask.__version__)\n", diff --git a/doc/source/tutorials/C4I_userindex_maxtemp_freezing.ipynb b/doc/source/tutorials/notebooks/userindex_maxtemp_freezing.ipynb similarity index 98% rename from doc/source/tutorials/C4I_userindex_maxtemp_freezing.ipynb rename to doc/source/tutorials/notebooks/userindex_maxtemp_freezing.ipynb index a7f80406..d9734fbe 100644 --- a/doc/source/tutorials/C4I_userindex_maxtemp_freezing.ipynb +++ b/doc/source/tutorials/notebooks/userindex_maxtemp_freezing.ipynb @@ -6,22 +6,104 @@ "tags": [] }, "source": [ - "## icclim C4I: Calculate the number of days with mean temperature freezing or below\n", + "# Calculate number of days with freezing mean temperature\n", "\n", + "Example notebook that runs icclim.\n", "\n", - "Example notebook that runs icclim, which is pre-installed in the notebook.\n", + "The example calculates the number of days when the minimum temperature is freezing or below for the dataset chosen by the user on C4I. It uses the custom user index functionality of icclim. \n", + "\n", + "We assume to have the **tas** variable in netCDF files in a `./data` folder.\n", + "The data can be dowloaded using the [metalink](data/cmcc_gfdl_tas.metalink) provided with this notebook.\n", + "The data described in a `.metalink` file can be dowloaded with tools such as [aria2](https://aria2.github.io/) or a browser plugin such as [DownThemAll!](https://addons.mozilla.org/en-US/firefox/addon/downthemall/)\n", + "If you wish to use a different dataset, you can use the [climate 4 impact portal](https://www.climate4impact.eu/c4i-frontend/) to search and select the data you wish to use and a metalink file to the [ESGF](https://esgf.llnl.gov/) data will be provided.\n", "\n", - "The example calculates the number of days when the minimum temperature is freezing or below for the dataset chosen by the user on C4I. It uses the custom user index functionality of icclim. Please note that as of icclim 6.1.0, custom user index is deprecated, generic indices should be used instead. An updated notebook will be online soon.\n", "\n", "The data is read using xarray and a plot of the time series over a specific region is generated, as well as an average spatial map. Several output types examples are shown.\n", "\n", - "The dataset that is expected for this notebook are tasmin parameter for one specific climate model and experiment as well as one member. The time period should be continuous.\n", + "The dataset that is expected for this notebook are tas parameter for one specific climate model and experiment as well as one member. The time period should be continuous.\n", "\n", "To keep this example fast to run, the following period is considered: 2015-01-01 to 2019-12-31, and plots are shown over European region.\n", "\n", "### Preparation of the needed modules" ] }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: icclim in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (6.6.0)\n", + "Requirement already satisfied: matplotlib in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (3.8.2)\n", + "Requirement already satisfied: nc_time_axis in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (1.4.1)\n", + "Requirement already satisfied: numpy>=1.16 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (1.26.2)\n", + "Requirement already satisfied: xarray>=2022.6 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2023.10.1)\n", + "Requirement already satisfied: xclim<=0.47,>=0.45 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (0.47.0)\n", + "Requirement already satisfied: cf_xarray>=0.7.4 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (0.8.6)\n", + "Requirement already satisfied: cftime>=1.4.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (1.6.3)\n", + "Requirement already satisfied: dask[array] in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2023.12.1)\n", + "Requirement already satisfied: netCDF4>=1.5.7 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (1.6.5)\n", + "Requirement already satisfied: psutil in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (5.9.7)\n", + "Requirement already satisfied: zarr in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2.16.1)\n", + "Requirement already satisfied: rechunker!=0.4,>=0.3 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (0.5.2)\n", + "Requirement already satisfied: fsspec in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2023.12.2)\n", + "Requirement already satisfied: pandas>=1.3 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (2.1.4)\n", + "Requirement already satisfied: dateparser in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (1.2.0)\n", + "Requirement already satisfied: pint in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (0.19.2)\n", + "Requirement already satisfied: jinja2 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from icclim) (3.1.2)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (1.2.0)\n", + "Requirement already satisfied: cycler>=0.10 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (4.46.0)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (1.4.5)\n", + "Requirement already satisfied: packaging>=20.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (23.2)\n", + "Requirement already satisfied: pillow>=8 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (10.1.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (3.1.1)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from matplotlib) (2.8.2)\n", + "Requirement already satisfied: certifi in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from netCDF4>=1.5.7->icclim) (2023.11.17)\n", + "Requirement already satisfied: pytz>=2020.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from pandas>=1.3->icclim) (2023.3.post1)\n", + "Requirement already satisfied: tzdata>=2022.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from pandas>=1.3->icclim) (2023.3)\n", + "Requirement already satisfied: six>=1.5 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n", + "Requirement already satisfied: mypy-extensions in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from rechunker!=0.4,>=0.3->icclim) (1.0.0)\n", + "Requirement already satisfied: boltons>=20.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (23.0.0)\n", + "Requirement already satisfied: bottleneck>=1.3.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (1.3.7)\n", + "Requirement already satisfied: Click>=8.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (8.1.7)\n", + "Requirement already satisfied: jsonpickle in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (3.0.2)\n", + "Requirement already satisfied: lmoments3>=1.0.5 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (1.0.6)\n", + "Requirement already satisfied: numba in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (0.58.1)\n", + "Requirement already satisfied: pyyaml in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (6.0.1)\n", + "Requirement already satisfied: scikit-learn>=0.21.3 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (1.3.2)\n", + "Requirement already satisfied: scipy>=1.2 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (1.11.4)\n", + "Requirement already satisfied: statsmodels in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from xclim<=0.47,>=0.45->icclim) (0.14.1)\n", + "Requirement already satisfied: cloudpickle>=1.5.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array]->icclim) (3.0.0)\n", + "Requirement already satisfied: partd>=1.2.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array]->icclim) (1.4.1)\n", + "Requirement already satisfied: toolz>=0.10.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array]->icclim) (0.12.0)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array]->icclim) (7.0.0)\n", + "Requirement already satisfied: asciitree in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from zarr->icclim) (0.3.3)\n", + "Requirement already satisfied: fasteners in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from zarr->icclim) (0.17.3)\n", + "Requirement already satisfied: numcodecs>=0.10.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from zarr->icclim) (0.12.1)\n", + "Requirement already satisfied: regex!=2019.02.19,!=2021.8.27 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dateparser->icclim) (2023.10.3)\n", + "Requirement already satisfied: tzlocal in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dateparser->icclim) (5.2)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from jinja2->icclim) (2.1.3)\n", + "Requirement already satisfied: zipp>=0.5 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from importlib-metadata>=4.13.0->dask[array]->icclim) (3.17.0)\n", + "Requirement already satisfied: locket in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from partd>=1.2.0->dask[array]->icclim) (1.0.0)\n", + "Requirement already satisfied: joblib>=1.1.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from scikit-learn>=0.21.3->xclim<=0.47,>=0.45->icclim) (1.3.2)\n", + "Requirement already satisfied: threadpoolctl>=2.0.0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from scikit-learn>=0.21.3->xclim<=0.47,>=0.45->icclim) (3.2.0)\n", + "Requirement already satisfied: bokeh>=2.4.2 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from dask[array,diagnostics]->rechunker!=0.4,>=0.3->icclim) (3.3.2)\n", + "Requirement already satisfied: llvmlite<0.42,>=0.41.0dev0 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from numba->xclim<=0.47,>=0.45->icclim) (0.41.1)\n", + "Requirement already satisfied: patsy>=0.5.4 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from statsmodels->xclim<=0.47,>=0.45->icclim) (0.5.4)\n", + "Requirement already satisfied: tornado>=5.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from bokeh>=2.4.2->dask[array,diagnostics]->rechunker!=0.4,>=0.3->icclim) (6.3.3)\n", + "Requirement already satisfied: xyzservices>=2021.09.1 in /home/bzah/micromamba/envs/icclim-dev/lib/python3.11/site-packages (from bokeh>=2.4.2->dask[array,diagnostics]->rechunker!=0.4,>=0.3->icclim) (2023.10.1)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install icclim matplotlib nc_time_axis" + ] + }, { "cell_type": "code", "execution_count": 1,