{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## RATECE-PLANICA ski station (Slovenia) under CMIP-6 SSP585 condition\n", "\n", "- **Description**: SSP-based RCP scenario with high radiative forcing by the end of century. Following approximately RCP8.5 global forcing pathway with SSP5 socioeconomic conditions. Concentration-driven.\n", "- **Rationale**: the scenario represents the high end of plausible future pathways. SSP5 is the only SSP with emissions high enough to produce the 8.5 W/m2 level of forcing in 2100.\n", "- Full description on [ES-DOC](https://view.es-doc.org/?renderMethod=name&project=cmip6&type=cim.2.designing.NumericalExperiment&client=esdoc-url-rewrite&name=ssp585)\n", "\n", "### Is it worth investing in artificial snowmaking equipment at RATECE-PLANICA?" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f97e156901df449cad0a21351f37fb55", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Map(center=[46.5, 13.7], controls=(ZoomControl(options=['position', 'zoom_in_text', 'zoom_in_title', 'zoom_out…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from ipyleaflet import Map, Marker, basemaps\n", "\n", "center = (46.5, 13.70)\n", "\n", "m = Map(\n", " basemap=basemaps.OpenTopoMap, \n", " center=center,\n", " zoom=7\n", ")\n", "marker = Marker(location=center, draggable=False)\n", "m.add_layer(marker);\n", "m" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.7/site-packages/matplotlib/font_manager.py:281: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n", " 'Matplotlib is building the font cache using fc-list. '\n" ] } ], "source": [ "import xarray as xr\n", "import pandas as pd\n", "import cftime\n", "import intake\n", "from dask.distributed import Client\n", "from dask.distributed import wait, progress\n", "xr.set_options(display_style='html')\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Step-1: Observation mean and standard deviation at RATECE-PLANICA station\n", "\n", "## Time series - daily RATECE-PLANICA average temperature\n", "\n", "- coordinates: 46.50N, 13.70E, 864.0m\n", "- GHCN-D station code: SIE00115206 RATECE-PLANICA Slovenia" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "filename = 'http://berkeleyearth.lbl.gov/auto/Stations/TAVG/Text/22498-TAVG-Data.txt'\n", "data = pd.read_csv(filename, sep='\\s+', header=None, comment='%')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Compute mean and standard deviation from 1961-2005" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "279.7723153988868 7.3015251282000255\n" ] } ], "source": [ "mean_st_1961_2005 = data[(data[0] >= 1961 ) & (data[0] <= 2005)][6].mean()\n", "std_st_1961_2005 = data[(data[0] >= 1961 ) & (data[0] <= 2005)][6].std()\n", "print(mean_st_1961_2005 + 273.15, std_st_1961_2005)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Store results in csv file" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# list of values \n", "lst = [mean_st_1961_2005 + 273.15, std_st_1961_2005] \n", " \n", "# Calling DataFrame constructor on list \n", "# with indices and columns specified \n", "df_st = pd.DataFrame(lst, index =['mean', 'stddev'], \n", " columns =['RATECE-PLANICA-T2M-1961-2005']) \n", "df_st.to_csv('RATECE-PLANICA-1961-2005_t2m.csv') " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RATECE-PLANICA-T2M-1961-2005
mean279.772315
stddev7.301525
\n", "
" ], "text/plain": [ " RATECE-PLANICA-T2M-1961-2005\n", "mean 279.772315\n", "stddev 7.301525" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_st" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Step-2: CMIP-6 mean and standard deviation at RATECE-PLANICA\n", "\n", "- We will be using one model CNRM-CM6-1-HR\n", "\n", "### Check catalog and get model data" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "col_url = \"https://raw.githubusercontent.com/NCAR/intake-esm-datastore/master/catalogs/pangeo-cmip6.json\"" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "col = intake.open_esm_datastore(col_url)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "cat = col.search(experiment_id=['historical', 'ssp585'], table_id='day',\n", " variable_id=['tas', 'tasmin', 'tasmax'], source_id='CNRM-CM6-1-HR', institution_id='CNRM-CERFACS')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
activity_idinstitution_idsource_idexperiment_idmember_idtable_idvariable_idgrid_labelzstoredcpp_init_year
0CMIPCNRM-CERFACSCNRM-CM6-1-HRhistoricalr1i1p1f2daytasgrgs://cmip6/CMIP/CNRM-CERFACS/CNRM-CM6-1-HR/his...NaN
1CMIPCNRM-CERFACSCNRM-CM6-1-HRhistoricalr1i1p1f2daytasmaxgrgs://cmip6/CMIP/CNRM-CERFACS/CNRM-CM6-1-HR/his...NaN
2CMIPCNRM-CERFACSCNRM-CM6-1-HRhistoricalr1i1p1f2daytasmingrgs://cmip6/CMIP/CNRM-CERFACS/CNRM-CM6-1-HR/his...NaN
3ScenarioMIPCNRM-CERFACSCNRM-CM6-1-HRssp585r1i1p1f2daytasgrgs://cmip6/ScenarioMIP/CNRM-CERFACS/CNRM-CM6-1...NaN
4ScenarioMIPCNRM-CERFACSCNRM-CM6-1-HRssp585r1i1p1f2daytasmaxgrgs://cmip6/ScenarioMIP/CNRM-CERFACS/CNRM-CM6-1...NaN
5ScenarioMIPCNRM-CERFACSCNRM-CM6-1-HRssp585r1i1p1f2daytasmingrgs://cmip6/ScenarioMIP/CNRM-CERFACS/CNRM-CM6-1...NaN
\n", "
" ], "text/plain": [ " activity_id institution_id source_id experiment_id member_id table_id \\\n", "0 CMIP CNRM-CERFACS CNRM-CM6-1-HR historical r1i1p1f2 day \n", "1 CMIP CNRM-CERFACS CNRM-CM6-1-HR historical r1i1p1f2 day \n", "2 CMIP CNRM-CERFACS CNRM-CM6-1-HR historical r1i1p1f2 day \n", "3 ScenarioMIP CNRM-CERFACS CNRM-CM6-1-HR ssp585 r1i1p1f2 day \n", "4 ScenarioMIP CNRM-CERFACS CNRM-CM6-1-HR ssp585 r1i1p1f2 day \n", "5 ScenarioMIP CNRM-CERFACS CNRM-CM6-1-HR ssp585 r1i1p1f2 day \n", "\n", " variable_id grid_label zstore \\\n", "0 tas gr gs://cmip6/CMIP/CNRM-CERFACS/CNRM-CM6-1-HR/his... \n", "1 tasmax gr gs://cmip6/CMIP/CNRM-CERFACS/CNRM-CM6-1-HR/his... \n", "2 tasmin gr gs://cmip6/CMIP/CNRM-CERFACS/CNRM-CM6-1-HR/his... \n", "3 tas gr gs://cmip6/ScenarioMIP/CNRM-CERFACS/CNRM-CM6-1... \n", "4 tasmax gr gs://cmip6/ScenarioMIP/CNRM-CERFACS/CNRM-CM6-1... \n", "5 tasmin gr gs://cmip6/ScenarioMIP/CNRM-CERFACS/CNRM-CM6-1... \n", "\n", " dcpp_init_year \n", "0 NaN \n", "1 NaN \n", "2 NaN \n", "3 NaN \n", "4 NaN \n", "5 NaN " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cat.df" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Progress: |███████████████████████████████████████████████████████████████████████████████| 100.0% \n", "\n", "--> The keys in the returned dictionary of datasets are constructed as follows:\n", "\t'activity_id.institution_id.source_id.experiment_id.table_id.grid_label'\n", " \n", "--> There are 2 group(s)\n" ] }, { "data": { "text/plain": [ "['ScenarioMIP.CNRM-CERFACS.CNRM-CM6-1-HR.ssp585.day.gr',\n", " 'CMIP.CNRM-CERFACS.CNRM-CM6-1-HR.historical.day.gr']" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dset_dict = cat.to_dataset_dict(zarr_kwargs={'consolidated': True})\n", "list(dset_dict.keys())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Create dask cluster" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# Select 10 'workers' under 'manual scaling' menu below and click 'Scale'\n", "# Click on the 'Dashboard link' to monitor calculation progress\n", "from dask.distributed import Client\n", "client = Client(n_workers=10, threads_per_worker=2, memory_limit='60GB')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Model mean and standard deviation 1961-2005" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.Dataset
" ], "text/plain": [ "\n", "Dimensions: (axis_nbounds: 2, lat: 360, lon: 720, member_id: 1, time: 60265)\n", "Coordinates:\n", " time_bounds (time, axis_nbounds) datetime64[ns] dask.array\n", " height float64 2.0\n", " * time (time) datetime64[ns] 1850-01-01T12:00:00 ... 2014-12-31T12:00:00\n", " * lat (lat) float64 -89.62 -89.12 -88.62 -88.13 ... 88.62 89.12 89.62\n", " * lon (lon) float64 0.0 0.5 1.0 1.5 2.0 ... 358.0 358.5 359.0 359.5\n", " * member_id (member_id) \n", " tasmax (member_id, time, lat, lon) float32 dask.array\n", " tasmin (member_id, time, lat, lon) float32 dask.array\n", "Attributes:\n", " grid: data regridded to a 359 gaussian grid (360x720 la...\n", " variant_label: r1i1p1f2\n", " grid_label: gr\n", " references: http://www.umr-cnrm.fr/cmip6/references\n", " parent_activity_id: C M I P\n", " external_variables: areacella\n", " xios_commit: 1442-shuffle\n", " CMIP6_CV_version: cv=6.2.3.0-7-g2019642\n", " parent_time_units: days since 1850-01-01 00:00:00\n", " product: model-output\n", " realm: atmos\n", " institution_id: CNRM-CERFACS\n", " branch_time_in_parent: 0.0\n", " branch_method: standard\n", " institution: CNRM (Centre National de Recherches Meteorologiqu...\n", " license: CMIP6 model data produced by CNRM-CERFACS is lice...\n", " parent_source_id: CNRM-CM6-1-HR\n", " intake_esm_varname: tasmin\n", " sub_experiment_id: none\n", " parent_mip_era: CMIP6\n", " status: 2019-11-16;created;by nhn2@columbia.edu\n", " mip_era: CMIP6\n", " history: none\n", " nominal_resolution: 50 km\n", " branch_time_in_child: 0.0\n", " parent_experiment_id: p i C o n t r o l\n", " creation_date: 2019-05-23T12:33:55Z\n", " dr2xml_version: 1.16\n", " source_type: AOGCM\n", " EXPID: CNRM-CM6-1-HR_historical_r1i1p1f2\n", " source: CNRM-CM6-1-HR (2017): aerosol: prescribed monthl...\n", " sub_experiment: none\n", " source_id: CNRM-CM6-1-HR\n", " dr2xml_md5sum: 45d4369d889ddfb8149d771d8625e9ec\n", " table_id: day\n", " activity_id: CMIP\n", " variable_id: tasmin\n", " frequency: day\n", " realization_index: 1\n", " parent_variant_label: r1i1p1f2\n", " initialization_index: 1\n", " forcing_index: 2\n", " contact: contact.cmip@meteo.fr\n", " physics_index: 1\n", " data_specs_version: 01.00.21\n", " experiment: all-forcing simulation of the recent past\n", " nemo_gelato_commit: 84a9e3f161dade7_8250e198106a168\n", " title: CNRM-CM6-1-HR model output prepared for CMIP6 and...\n", " description: CMIP6 historical\n", " Conventions: CF-1.7 CMIP-6.2\n", " tracking_id: hdl:21.14100/8674f71e-9cba-4ef2-b5a5-8a5963e491c7...\n", " experiment_id: historical\n", " further_info_url: https://furtherinfo.es-doc.org/CMIP6.CNRM-CERFACS...\n", " arpege_minor_version: 6.3.3" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds_hist = dset_dict['CMIP.CNRM-CERFACS.CNRM-CM6-1-HR.historical.day.gr']\n", "ds_hist" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.7/site-packages/ipykernel_launcher.py:1: FutureWarning: The pandas.datetime class is deprecated and will be removed from pandas in a future version. Import from datetime module instead.\n", " \"\"\"Entry point for launching an IPython kernel.\n" ] } ], "source": [ "p = ds_hist['tas'].sel(time=slice(pd.datetime(1961, 1, 1), pd.datetime(2005, 12, 31))).sel(lat=46.5,lon=13.7, method=\"nearest\")" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.DataArray
'tas'
  • member_id: 1
  • time: 16435
  • dask.array<chunksize=(1, 66), meta=np.ndarray>
    \n",
           "\n",
           "\n",
           "\n",
           "\n",
           "
    \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    Array Chunk
    Bytes 65.74 kB 376 B
    Shape (1, 16435) (1, 94)
    Count 1637 Tasks 176 Chunks
    Type float32 numpy.ndarray
    \n", "
    \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 16435\n", " 1\n", "\n", "
    • height
      ()
      float64
      2.0
      axis :
      Z
      long_name :
      height
      name :
      height
      positive :
      up
      standard_name :
      height
      units :
      m
      array(2.)
    • time
      (time)
      datetime64[ns]
      1961-01-01T12:00:00 ... 2005-12-30T12:00:00
      axis :
      T
      bounds :
      time_bounds
      long_name :
      Time axis
      standard_name :
      time
      time_origin :
      1850-01-01 00:00:00
      array(['1961-01-01T12:00:00.000000000', '1961-01-02T12:00:00.000000000',\n",
             "       '1961-01-03T12:00:00.000000000', ..., '2005-12-28T12:00:00.000000000',\n",
             "       '2005-12-29T12:00:00.000000000', '2005-12-30T12:00:00.000000000'],\n",
             "      dtype='datetime64[ns]')
    • lat
      ()
      float64
      46.69
      axis :
      Y
      long_name :
      Latitude
      standard_name :
      latitude
      units :
      degrees_north
      array(46.68510105)
    • lon
      ()
      float64
      13.5
      axis :
      X
      long_name :
      Longitude
      standard_name :
      longitude
      units :
      degrees_east
      array(13.5)
    • member_id
      (member_id)
      <U8
      'r1i1p1f2'
      array(['r1i1p1f2'], dtype='<U8')
  • cell_measures :
    area: areacella
    cell_methods :
    area: time: mean
    description :
    Near-Surface Air Temperature
    history :
    none
    interval_operation :
    900 s
    interval_write :
    1 d
    long_name :
    Near-Surface Air Temperature
    online_operation :
    average
    standard_name :
    air_temperature
    units :
    K
" ], "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " height float64 2.0\n", " * time (time) datetime64[ns] 1961-01-01T12:00:00 ... 2005-12-30T12:00:00\n", " lat float64 46.69\n", " lon float64 13.5\n", " * member_id (member_id) \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RATECE-PLANICA-T2M-1961-2005
mean276.168396
stddev8.298349
\n", "" ], "text/plain": [ " RATECE-PLANICA-T2M-1961-2005\n", "mean 276.168396\n", "stddev 8.298349" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_cmip6" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Step-3: CMIP-6 Model data historical 1961 - 2010 \n", "- 'maximum_2m_temperature_in_the_last_24_hours'\n", "- 'minimum_2m_temperature_in_the_last_24_hours'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Apply bias correction to tasmin for historical " ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.7/site-packages/ipykernel_launcher.py:1: FutureWarning: The pandas.datetime class is deprecated and will be removed from pandas in a future version. Import from datetime module instead.\n", " \"\"\"Entry point for launching an IPython kernel.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.DataArray
'tasmin'
  • member_id: 1
  • time: 18261
  • dask.array<chunksize=(1, 6), meta=np.ndarray>
    \n",
           "\n",
           "\n",
           "\n",
           "\n",
           "
    \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    Array Chunk
    Bytes 73.04 kB 372 B
    Shape (1, 18261) (1, 93)
    Count 2487 Tasks 198 Chunks
    Type float32 numpy.ndarray
    \n", "
    \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 18261\n", " 1\n", "\n", "
    • height
      ()
      float64
      2.0
      axis :
      Z
      long_name :
      height
      name :
      height
      positive :
      up
      standard_name :
      height
      units :
      m
      array(2.)
    • time
      (time)
      datetime64[ns]
      1961-01-01T12:00:00 ... 2010-12-30T12:00:00
      axis :
      T
      bounds :
      time_bounds
      long_name :
      Time axis
      standard_name :
      time
      time_origin :
      1850-01-01 00:00:00
      array(['1961-01-01T12:00:00.000000000', '1961-01-02T12:00:00.000000000',\n",
             "       '1961-01-03T12:00:00.000000000', ..., '2010-12-28T12:00:00.000000000',\n",
             "       '2010-12-29T12:00:00.000000000', '2010-12-30T12:00:00.000000000'],\n",
             "      dtype='datetime64[ns]')
    • lat
      ()
      float64
      46.69
      axis :
      Y
      long_name :
      Latitude
      standard_name :
      latitude
      units :
      degrees_north
      array(46.68510105)
    • lon
      ()
      float64
      13.5
      axis :
      X
      long_name :
      Longitude
      standard_name :
      longitude
      units :
      degrees_east
      array(13.5)
    • member_id
      (member_id)
      <U8
      'r1i1p1f2'
      array(['r1i1p1f2'], dtype='<U8')
" ], "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " height float64 2.0\n", " * time (time) datetime64[ns] 1961-01-01T12:00:00 ... 2010-12-30T12:00:00\n", " lat float64 46.69\n", " lon float64 13.5\n", " * member_id (member_id) \n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.DataArray
'tasmax'
  • member_id: 1
  • time: 18261
  • dask.array<chunksize=(1, 66), meta=np.ndarray>
    \n",
           "\n",
           "\n",
           "\n",
           "\n",
           "
    \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    Array Chunk
    Bytes 73.04 kB 376 B
    Shape (1, 18261) (1, 94)
    Count 2455 Tasks 195 Chunks
    Type float32 numpy.ndarray
    \n", "
    \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 18261\n", " 1\n", "\n", "
    • height
      ()
      float64
      2.0
      axis :
      Z
      long_name :
      height
      name :
      height
      positive :
      up
      standard_name :
      height
      units :
      m
      array(2.)
    • time
      (time)
      datetime64[ns]
      1961-01-01T12:00:00 ... 2010-12-30T12:00:00
      axis :
      T
      bounds :
      time_bounds
      long_name :
      Time axis
      standard_name :
      time
      time_origin :
      1850-01-01 00:00:00
      array(['1961-01-01T12:00:00.000000000', '1961-01-02T12:00:00.000000000',\n",
             "       '1961-01-03T12:00:00.000000000', ..., '2010-12-28T12:00:00.000000000',\n",
             "       '2010-12-29T12:00:00.000000000', '2010-12-30T12:00:00.000000000'],\n",
             "      dtype='datetime64[ns]')
    • lat
      ()
      float64
      46.69
      axis :
      Y
      long_name :
      Latitude
      standard_name :
      latitude
      units :
      degrees_north
      array(46.68510105)
    • lon
      ()
      float64
      13.5
      axis :
      X
      long_name :
      Longitude
      standard_name :
      longitude
      units :
      degrees_east
      array(13.5)
    • member_id
      (member_id)
      <U8
      'r1i1p1f2'
      array(['r1i1p1f2'], dtype='<U8')
" ], "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " height float64 2.0\n", " * time (time) datetime64[ns] 1961-01-01T12:00:00 ... 2010-12-30T12:00:00\n", " lat float64 46.69\n", " lon float64 13.5\n", " * member_id (member_id) \n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.Dataset
    • axis_nbounds: 2
    • lat: 360
    • lon: 720
    • member_id: 1
    • time: 31411
    • time_bounds
      (time, axis_nbounds)
      datetime64[ns]
      dask.array<chunksize=(15706, 2), meta=np.ndarray>
      \n",
             "\n",
             "\n",
             "\n",
             "\n",
             "
      \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
      Array Chunk
      Bytes 502.58 kB 251.30 kB
      Shape (31411, 2) (15706, 2)
      Count 22 Tasks 2 Chunks
      Type datetime64[ns] numpy.ndarray
      \n", "
      \n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 2\n", " 31411\n", "\n", "
    • height
      ()
      float64
      2.0
      axis :
      Z
      long_name :
      height
      name :
      height
      positive :
      up
      standard_name :
      height
      units :
      m
      array(2.)
    • time
      (time)
      datetime64[ns]
      2015-01-01T12:00:00 ... 2100-12-31T12:00:00
      axis :
      T
      bounds :
      time_bounds
      long_name :
      Time axis
      standard_name :
      time
      time_origin :
      1850-01-01 00:00:00
      array(['2015-01-01T12:00:00.000000000', '2015-01-02T12:00:00.000000000',\n",
             "       '2015-01-03T12:00:00.000000000', ..., '2100-12-29T12:00:00.000000000',\n",
             "       '2100-12-30T12:00:00.000000000', '2100-12-31T12:00:00.000000000'],\n",
             "      dtype='datetime64[ns]')
    • lat
      (lat)
      float64
      -89.62 -89.12 ... 89.12 89.62
      axis :
      Y
      long_name :
      Latitude
      standard_name :
      latitude
      units :
      degrees_north
      array([-89.617791, -89.122671, -88.624627, ...,  88.624627,  89.122671,\n",
             "        89.617791])
    • lon
      (lon)
      float64
      0.0 0.5 1.0 ... 358.5 359.0 359.5
      axis :
      X
      long_name :
      Longitude
      standard_name :
      longitude
      units :
      degrees_east
      array([  0. ,   0.5,   1. , ..., 358.5, 359. , 359.5])
    • member_id
      (member_id)
      <U8
      'r1i1p1f2'
      array(['r1i1p1f2'], dtype='<U8')
    • tas
      (member_id, time, lat, lon)
      float32
      dask.array<chunksize=(1, 95, 360, 720), meta=np.ndarray>
      cell_measures :
      area: areacella
      cell_methods :
      area: time: mean
      description :
      Near-Surface Air Temperature
      history :
      none
      interval_operation :
      900 s
      interval_write :
      1 d
      long_name :
      Near-Surface Air Temperature
      online_operation :
      average
      standard_name :
      air_temperature
      units :
      K
      \n",
             "\n",
             "\n",
             "\n",
             "\n",
             "
      \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
      Array Chunk
      Bytes 32.57 GB 98.50 MB
      Shape (1, 31411, 360, 720) (1, 95, 360, 720)
      Count 663 Tasks 331 Chunks
      Type float32 numpy.ndarray
      \n", "
      \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 1\n", " 1\n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 720\n", " 360\n", " 31411\n", "\n", "
    • tasmax
      (member_id, time, lat, lon)
      float32
      dask.array<chunksize=(1, 95, 360, 720), meta=np.ndarray>
      cell_measures :
      area: areacella
      cell_methods :
      area: mean time: maximum
      description :
      Daily Maximum Near-Surface Air Temperature
      history :
      none
      interval_operation :
      900 s
      interval_write :
      1 d
      long_name :
      Daily Maximum Near-Surface Air Temperature
      online_operation :
      maximum
      standard_name :
      air_temperature
      units :
      K
      \n",
             "\n",
             "\n",
             "\n",
             "\n",
             "
      \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
      Array Chunk
      Bytes 32.57 GB 98.50 MB
      Shape (1, 31411, 360, 720) (1, 95, 360, 720)
      Count 663 Tasks 331 Chunks
      Type float32 numpy.ndarray
      \n", "
      \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 1\n", " 1\n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 720\n", " 360\n", " 31411\n", "\n", "
    • tasmin
      (member_id, time, lat, lon)
      float32
      dask.array<chunksize=(1, 94, 360, 720), meta=np.ndarray>
      cell_measures :
      area: areacella
      cell_methods :
      area: mean time: minimum
      description :
      Daily Minimum Near-Surface Air Temperature
      history :
      none
      interval_operation :
      900 s
      interval_write :
      1 d
      long_name :
      Daily Minimum Near-Surface Air Temperature
      online_operation :
      minimum
      standard_name :
      air_temperature
      units :
      K
      \n",
             "\n",
             "\n",
             "\n",
             "\n",
             "
      \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
      Array Chunk
      Bytes 32.57 GB 97.46 MB
      Shape (1, 31411, 360, 720) (1, 94, 360, 720)
      Count 671 Tasks 335 Chunks
      Type float32 numpy.ndarray
      \n", "
      \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 1\n", " 1\n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 720\n", " 360\n", " 31411\n", "\n", "
  • grid :
    data regridded to a 359 gaussian grid (360x720 latlon) from a native atmosphere T359l reduced gaussian grid
    variant_label :
    r1i1p1f2
    grid_label :
    gr
    references :
    http://www.umr-cnrm.fr/cmip6/references
    parent_activity_id :
    C M I P
    external_variables :
    areacella
    xios_commit :
    1442-shuffle
    CMIP6_CV_version :
    cv=6.2.3.0-7-g2019642
    parent_time_units :
    days since 1850-01-01 00:00:00
    product :
    model-output
    realm :
    atmos
    institution_id :
    CNRM-CERFACS
    branch_time_in_parent :
    60265.0
    branch_method :
    standard
    institution :
    CNRM (Centre National de Recherches Meteorologiques, Toulouse 31057, France), CERFACS (Centre Europeen de Recherche et de Formation Avancee en Calcul Scientifique, Toulouse 31057, France)
    license :
    CMIP6 model data produced by CNRM-CERFACS is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (https://creativecommons.org/licenses). Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing CMIP6 output, including citation requirements and proper acknowledgment. Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute in this file) and at http://www.umr-cnrm.fr/cmip6/. The data producers and data providers make no warranty, either express or implied, including, but not limited to, warranties of merchantability and fitness for a particular purpose. All liabilities arising from the supply of the information (including any liability arising in negligence) are excluded to the fullest extent permitted by law.
    parent_source_id :
    CNRM-CM6-1-HR
    intake_esm_varname :
    tasmin
    sub_experiment_id :
    none
    parent_mip_era :
    CMIP6
    status :
    2020-02-02;created; by gcs.cmip6.ldeo@gmail.com
    mip_era :
    CMIP6
    history :
    none
    nominal_resolution :
    50 km
    branch_time_in_child :
    60265.0
    parent_experiment_id :
    h i s t o r i c a l
    creation_date :
    2019-09-13T14:50:53Z
    dr2xml_version :
    1.16
    source_type :
    AOGCM
    EXPID :
    CNRM-CM6-1-HR_ssp585_r1i1p1f2
    source :
    CNRM-CM6-1-HR (2017): aerosol: prescribed monthly fields computed by TACTIC_v2 scheme atmos: Arpege 6.3 (T359; Gaussian Reduced with 181724 grid points in total distributed over 360 latitude circles (with 720 grid points per latitude circle between 32.2degN and 32.2degS reducing to 18 grid points per latitude circle at 89.6degN and 89.6degS); 91 levels; top level 78.4 km) atmosChem: OZL_v2 land: Surfex 8.0c ocean: Nemo 3.6 (eORCA025, tripolar primarily 1/4deg; 1442 x 1050 longitude/latitude; 75 levels; top grid cell 0-1 m) seaIce: Gelato 6.1
    sub_experiment :
    none
    source_id :
    CNRM-CM6-1-HR
    dr2xml_md5sum :
    45d4369d889ddfb8149d771d8625e9ec
    table_id :
    day
    activity_id :
    ScenarioMIP
    variable_id :
    tasmin
    frequency :
    day
    realization_index :
    1
    parent_variant_label :
    r1i1p1f2
    initialization_index :
    1
    forcing_index :
    2
    contact :
    contact.cmip@meteo.fr
    physics_index :
    1
    data_specs_version :
    01.00.21
    experiment :
    update of RCP8.5 based on SSP5
    nemo_gelato_commit :
    84a9e3f161dade7_8250e198106a168
    title :
    CNRM-CM6-1-HR model output prepared for CMIP6 and ScenarioMIP / ssp585 simulation
    description :
    Future scenario with high radiative forcing by the end of century. Following approximately RCP8.5 global forcing pathway but with new forcing based on SSP5. Concentration-driven. As a tier 2 option, this simulation should be extended to year 2300
    Conventions :
    CF-1.7 CMIP-6.2
    tracking_id :
    hdl:21.14100/b51b13df-d194-4941-affb-64c0236ffc79\n", "hdl:21.14100/25c93c65-3914-4e09-b48c-d9b92ae30267\n", "hdl:21.14100/e652365f-b1d4-4d63-b0fb-4c88f553cda5\n", "hdl:21.14100/e8084d26-5f1a-483f-8eca-0287a7faaa6e\n", "hdl:21.14100/084cef3d-d1fc-4624-943f-0696308508a1\n", "hdl:21.14100/c348f370-d52c-4a5f-8a64-3e7392766c53
    experiment_id :
    ssp585
    further_info_url :
    https://furtherinfo.es-doc.org/CMIP6.CNRM-CERFACS.CNRM-CM6-1-HR.ssp585.none.r1i1p1f2
    arpege_minor_version :
    6.3.3
" ], "text/plain": [ "\n", "Dimensions: (axis_nbounds: 2, lat: 360, lon: 720, member_id: 1, time: 31411)\n", "Coordinates:\n", " time_bounds (time, axis_nbounds) datetime64[ns] dask.array\n", " height float64 2.0\n", " * time (time) datetime64[ns] 2015-01-01T12:00:00 ... 2100-12-31T12:00:00\n", " * lat (lat) float64 -89.62 -89.12 -88.62 -88.13 ... 88.62 89.12 89.62\n", " * lon (lon) float64 0.0 0.5 1.0 1.5 2.0 ... 358.0 358.5 359.0 359.5\n", " * member_id (member_id) \n", " tasmax (member_id, time, lat, lon) float32 dask.array\n", " tasmin (member_id, time, lat, lon) float32 dask.array\n", "Attributes:\n", " grid: data regridded to a 359 gaussian grid (360x720 la...\n", " variant_label: r1i1p1f2\n", " grid_label: gr\n", " references: http://www.umr-cnrm.fr/cmip6/references\n", " parent_activity_id: C M I P\n", " external_variables: areacella\n", " xios_commit: 1442-shuffle\n", " CMIP6_CV_version: cv=6.2.3.0-7-g2019642\n", " parent_time_units: days since 1850-01-01 00:00:00\n", " product: model-output\n", " realm: atmos\n", " institution_id: CNRM-CERFACS\n", " branch_time_in_parent: 60265.0\n", " branch_method: standard\n", " institution: CNRM (Centre National de Recherches Meteorologiqu...\n", " license: CMIP6 model data produced by CNRM-CERFACS is lice...\n", " parent_source_id: CNRM-CM6-1-HR\n", " intake_esm_varname: tasmin\n", " sub_experiment_id: none\n", " parent_mip_era: CMIP6\n", " status: 2020-02-02;created; by gcs.cmip6.ldeo@gmail.com\n", " mip_era: CMIP6\n", " history: none\n", " nominal_resolution: 50 km\n", " branch_time_in_child: 60265.0\n", " parent_experiment_id: h i s t o r i c a l\n", " creation_date: 2019-09-13T14:50:53Z\n", " dr2xml_version: 1.16\n", " source_type: AOGCM\n", " EXPID: CNRM-CM6-1-HR_ssp585_r1i1p1f2\n", " source: CNRM-CM6-1-HR (2017): aerosol: prescribed monthl...\n", " sub_experiment: none\n", " source_id: CNRM-CM6-1-HR\n", " dr2xml_md5sum: 45d4369d889ddfb8149d771d8625e9ec\n", " table_id: day\n", " activity_id: ScenarioMIP\n", " variable_id: tasmin\n", " frequency: day\n", " realization_index: 1\n", " parent_variant_label: r1i1p1f2\n", " initialization_index: 1\n", " forcing_index: 2\n", " contact: contact.cmip@meteo.fr\n", " physics_index: 1\n", " data_specs_version: 01.00.21\n", " experiment: update of RCP8.5 based on SSP5\n", " nemo_gelato_commit: 84a9e3f161dade7_8250e198106a168\n", " title: CNRM-CM6-1-HR model output prepared for CMIP6 and...\n", " description: Future scenario with high radiative forcing by th...\n", " Conventions: CF-1.7 CMIP-6.2\n", " tracking_id: hdl:21.14100/b51b13df-d194-4941-affb-64c0236ffc79...\n", " experiment_id: ssp585\n", " further_info_url: https://furtherinfo.es-doc.org/CMIP6.CNRM-CERFACS...\n", " arpege_minor_version: 6.3.3" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds_ssp585 = dset_dict['ScenarioMIP.CNRM-CERFACS.CNRM-CM6-1-HR.ssp585.day.gr']\n", "ds_ssp585" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Apply bias correction to tasmin for prevision 2021-2100" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.7/site-packages/ipykernel_launcher.py:1: FutureWarning: The pandas.datetime class is deprecated and will be removed from pandas in a future version. Import from datetime module instead.\n", " \"\"\"Entry point for launching an IPython kernel.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.DataArray
'tasmin'
  • member_id: 1
  • time: 29218
  • dask.array<chunksize=(1, 64), meta=np.ndarray>
    \n",
           "\n",
           "\n",
           "\n",
           "\n",
           "
    \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    Array Chunk
    Bytes 116.87 kB 376 B
    Shape (1, 29218) (1, 94)
    Count 2543 Tasks 312 Chunks
    Type float32 numpy.ndarray
    \n", "
    \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 29218\n", " 1\n", "\n", "
    • height
      ()
      float64
      2.0
      axis :
      Z
      long_name :
      height
      name :
      height
      positive :
      up
      standard_name :
      height
      units :
      m
      array(2.)
    • time
      (time)
      datetime64[ns]
      2021-01-01T12:00:00 ... 2100-12-30T12:00:00
      axis :
      T
      bounds :
      time_bounds
      long_name :
      Time axis
      standard_name :
      time
      time_origin :
      1850-01-01 00:00:00
      array(['2021-01-01T12:00:00.000000000', '2021-01-02T12:00:00.000000000',\n",
             "       '2021-01-03T12:00:00.000000000', ..., '2100-12-28T12:00:00.000000000',\n",
             "       '2100-12-29T12:00:00.000000000', '2100-12-30T12:00:00.000000000'],\n",
             "      dtype='datetime64[ns]')
    • lat
      ()
      float64
      46.69
      axis :
      Y
      long_name :
      Latitude
      standard_name :
      latitude
      units :
      degrees_north
      array(46.68510105)
    • lon
      ()
      float64
      13.5
      axis :
      X
      long_name :
      Longitude
      standard_name :
      longitude
      units :
      degrees_east
      array(13.5)
    • member_id
      (member_id)
      <U8
      'r1i1p1f2'
      array(['r1i1p1f2'], dtype='<U8')
" ], "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " height float64 2.0\n", " * time (time) datetime64[ns] 2021-01-01T12:00:00 ... 2100-12-30T12:00:00\n", " lat float64 46.69\n", " lon float64 13.5\n", " * member_id (member_id) \n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.DataArray
'tasmax'
  • member_id: 1
  • time: 29218
  • dask.array<chunksize=(1, 88), meta=np.ndarray>
    \n",
           "\n",
           "\n",
           "\n",
           "\n",
           "
    \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    Array Chunk
    Bytes 116.87 kB 380 B
    Shape (1, 29218) (1, 95)
    Count 2511 Tasks 308 Chunks
    Type float32 numpy.ndarray
    \n", "
    \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 29218\n", " 1\n", "\n", "
    • height
      ()
      float64
      2.0
      axis :
      Z
      long_name :
      height
      name :
      height
      positive :
      up
      standard_name :
      height
      units :
      m
      array(2.)
    • time
      (time)
      datetime64[ns]
      2021-01-01T12:00:00 ... 2100-12-30T12:00:00
      axis :
      T
      bounds :
      time_bounds
      long_name :
      Time axis
      standard_name :
      time
      time_origin :
      1850-01-01 00:00:00
      array(['2021-01-01T12:00:00.000000000', '2021-01-02T12:00:00.000000000',\n",
             "       '2021-01-03T12:00:00.000000000', ..., '2100-12-28T12:00:00.000000000',\n",
             "       '2100-12-29T12:00:00.000000000', '2100-12-30T12:00:00.000000000'],\n",
             "      dtype='datetime64[ns]')
    • lat
      ()
      float64
      46.69
      axis :
      Y
      long_name :
      Latitude
      standard_name :
      latitude
      units :
      degrees_north
      array(46.68510105)
    • lon
      ()
      float64
      13.5
      axis :
      X
      long_name :
      Longitude
      standard_name :
      longitude
      units :
      degrees_east
      array(13.5)
    • member_id
      (member_id)
      <U8
      'r1i1p1f2'
      array(['r1i1p1f2'], dtype='<U8')
" ], "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " height float64 2.0\n", " * time (time) datetime64[ns] 2021-01-01T12:00:00 ... 2100-12-30T12:00:00\n", " lat float64 46.69\n", " lon float64 13.5\n", " * member_id (member_id) \n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.DataArray
'tasmin'
  • member_id: 1
  • year: 50
  • dask.array<chunksize=(1, 1), meta=np.ndarray>
    \n",
           "\n",
           "\n",
           "\n",
           "\n",
           "
    \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    Array Chunk
    Bytes 400 B 8 B
    Shape (1, 50) (1, 1)
    Count 10488 Tasks 50 Chunks
    Type int64 numpy.ndarray
    \n", "
    \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 50\n", " 1\n", "\n", "
    • height
      ()
      float64
      2.0
      axis :
      Z
      long_name :
      height
      name :
      height
      positive :
      up
      standard_name :
      height
      units :
      m
      array(2.)
    • lat
      ()
      float64
      46.69
      axis :
      Y
      long_name :
      Latitude
      standard_name :
      latitude
      units :
      degrees_north
      array(46.68510105)
    • lon
      ()
      float64
      13.5
      axis :
      X
      long_name :
      Longitude
      standard_name :
      longitude
      units :
      degrees_east
      array(13.5)
    • member_id
      (member_id)
      <U8
      'r1i1p1f2'
      array(['r1i1p1f2'], dtype='<U8')
    • year
      (year)
      int64
      1961 1962 1963 ... 2008 2009 2010
      array([1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972,\n",
             "       1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984,\n",
             "       1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,\n",
             "       1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,\n",
             "       2009, 2010])
" ], "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " height float64 2.0\n", " lat float64 46.69\n", " lon float64 13.5\n", " * member_id (member_id) \n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.DataArray
'tasmin'
  • member_id: 1
  • year: 80
  • dask.array<chunksize=(1, 1), meta=np.ndarray>
    \n",
           "\n",
           "\n",
           "\n",
           "\n",
           "
    \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    Array Chunk
    Bytes 640 B 8 B
    Shape (1, 80) (1, 1)
    Count 13807 Tasks 80 Chunks
    Type int64 numpy.ndarray
    \n", "
    \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 80\n", " 1\n", "\n", "
    • height
      ()
      float64
      2.0
      axis :
      Z
      long_name :
      height
      name :
      height
      positive :
      up
      standard_name :
      height
      units :
      m
      array(2.)
    • lat
      ()
      float64
      46.69
      axis :
      Y
      long_name :
      Latitude
      standard_name :
      latitude
      units :
      degrees_north
      array(46.68510105)
    • lon
      ()
      float64
      13.5
      axis :
      X
      long_name :
      Longitude
      standard_name :
      longitude
      units :
      degrees_east
      array(13.5)
    • member_id
      (member_id)
      <U8
      'r1i1p1f2'
      array(['r1i1p1f2'], dtype='<U8')
    • year
      (year)
      int64
      2021 2022 2023 ... 2098 2099 2100
      array([2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032,\n",
             "       2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044,\n",
             "       2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056,\n",
             "       2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068,\n",
             "       2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080,\n",
             "       2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092,\n",
             "       2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100])
" ], "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " height float64 2.0\n", " lat float64 46.69\n", " lon float64 13.5\n", " * member_id (member_id) \n" ] } ], "source": [ "nb_favourable = xr.merge([nb_favourable_h, nb_favourable_p])" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.Dataset
    • member_id: 1
    • year: 130
    • year
      (year)
      int64
      1961 1962 1963 ... 2098 2099 2100
      array([1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972,\n",
             "       1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984,\n",
             "       1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,\n",
             "       1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,\n",
             "       2009, 2010, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030,\n",
             "       2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042,\n",
             "       2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054,\n",
             "       2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066,\n",
             "       2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078,\n",
             "       2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090,\n",
             "       2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100])
    • height
      ()
      float64
      2.0
      axis :
      Z
      long_name :
      height
      name :
      height
      positive :
      up
      standard_name :
      height
      units :
      m
      array(2.)
    • lat
      ()
      float64
      46.69
      axis :
      Y
      long_name :
      Latitude
      standard_name :
      latitude
      units :
      degrees_north
      array(46.68510105)
    • lon
      ()
      float64
      13.5
      axis :
      X
      long_name :
      Longitude
      standard_name :
      longitude
      units :
      degrees_east
      array(13.5)
    • member_id
      (member_id)
      <U8
      'r1i1p1f2'
      array(['r1i1p1f2'], dtype='<U8')
    • tasmin
      (member_id, year)
      float64
      dask.array<chunksize=(1, 51), meta=np.ndarray>
      \n",
             "\n",
             "\n",
             "\n",
             "\n",
             "
      \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
      Array Chunk
      Bytes 1.04 kB 408 B
      Shape (1, 130) (1, 51)
      Count 14692 Tasks 80 Chunks
      Type float64 numpy.ndarray
      \n", "
      \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", " 130\n", " 1\n", "\n", "
" ], "text/plain": [ "\n", "Dimensions: (member_id: 1, year: 130)\n", "Coordinates:\n", " * year (year) int64 1961 1962 1963 1964 1965 ... 2097 2098 2099 2100\n", " height float64 2.0\n", " lat float64 46.69\n", " lon float64 13.5\n", " * member_id (member_id) " ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nb_favourable" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "series = nb_favourable.tasmin.to_series()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "series = series.reset_index(level='member_id').drop(columns=['member_id'])\n", "\n", "series.index = pd.to_datetime(series.index, format='%Y')" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
tasmin
year
1961-01-0167.0
1962-01-0151.0
1963-01-0136.0
1964-01-0162.0
1965-01-0153.0
......
2096-01-015.0
2097-01-019.0
2098-01-011.0
2099-01-010.0
2100-01-010.0
\n", "

130 rows × 1 columns

\n", "
" ], "text/plain": [ " tasmin\n", "year \n", "1961-01-01 67.0\n", "1962-01-01 51.0\n", "1963-01-01 36.0\n", "1964-01-01 62.0\n", "1965-01-01 53.0\n", "... ...\n", "2096-01-01 5.0\n", "2097-01-01 9.0\n", "2098-01-01 1.0\n", "2099-01-01 0.0\n", "2100-01-01 0.0\n", "\n", "[130 rows x 1 columns]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "series.to_csv(\"nb_favourable_snow_cmip6.csv\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Step-6: Plotting (group per decades)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "series10YS = series.groupby(pd.Grouper(freq='10YS')).mean()" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "image/png": "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W27JmWeeyaRJk2qq+x//+AcHHngggwYNomfPniy++OJssMEGnHbaaXz44YeNOL2gDCeddBJdunTh6aef5pprrmlvcWoifFwFQRAEQRAEQRAEwULOxIkTueCCCwA4/vjj6dmzZ9F0O+ywA5MnTy56bNKkSUyaNImRI0fyhz/8gXPPPZdDDjmkbL1mxnHHHcf5558/n6XPzJkzmTJlCi+88AIXXXQR1113Hd/73vdaeXZBJVZaaSX2228/Lr/8cn7729+y11570bVr1/YWqypCcRUEQRAEQRAEQdAkllxySW6//faSx0eOHMmFF14IwBZbbMHRRx9dMu3666/fcPmCrw6nn346n3/+Of369eOwww4rm3bAgAFsvPHGrLnmmiyzzDIsvfTSzJkzhzfffJM77riDMWPGMH36dA499FC6dOnCgQceWLKsE044gfPOOw+ARRddlIMOOojBgwczffp0br31Vh566CEmT57MLrvswhNPPMG6667b0PMO8pxwwglcfvnlTJgwgcsvv7zifdBRCMVVEARBEARBEARBk+jZsydDhw4tefyTTz6Zt77CCiuUTRsErWXKlClcccUVAOyxxx706NGjZNpHHnmENdZYA0lFj//ud7/jjDPO4MQTTwTguOOOY5999qFbt24t0o4ZM4azzjoLgL59+/L444+z9tprzzt+6KGHMnz4cE455RSmT5/OIYccwujRo0vWHdTHKquswqabbsrTTz/N+eefz6GHHrpAtHX4uAqCIAiCIAiCIAiChZgrr7ySGTNmALDvvvuWTbvmmmtWVGaccMIJ8xRQn3zyCU899VTRdKeeeuq86YGnn376fEqrHCeffDKDBw8G4Nlnn+Xee+8tfzJBXeyzzz4AvPbaazzyyCPtLE11hOIqCIIgCIIgCIJgAWbGjBmcc845bLjhhvTr149FF12UNddckxNOOIEpU6aUzVsYoXDKlCmcccYZbLTRRgwYMABJDBs2rGjed955h9/85jcMHjyYJZZYgq5du7L00kuz9dZbc/HFFzNr1qyKso8aNYr999+f1VZbjV69es0rY6211mL33Xfnsssuq9oJ+NixYzn00EMZNGgQPXr0oH///my55ZZcf/31VUdRGz16NIcccgirrbYavXv3ZtFFF2XQoEHsv//+jBw5sqoyqmH27NlcdNFFbLrppvTr149evXqx+uqrc9xxxzFhwoSG1ZPj6quvBtyqb7PNNmtImWussca89WLXaNq0adx3330A9OnTp+R9JImjjjpq3vaNN95Yt2xmxjXXXMOWW27JgAED6NGjB4MGDeLQQw/llVdeqbqcqVOncu2113LQQQex3nrrsdhii7HIIouw+OKLs/7663Pcccfx1ltvlcx//PHHz+tj5aYMZ1l77bWRRI8ePYr23zvvvJM999yTlVdemZ49e9K9e3eWXXZZ1llnHX784x9z7bXXlu33e+21F126+OS73H3R0YmpgkEQBEEQBEEQBAso48aNY6eddmLs2LHz7R87dixjx47l+uuvZ9SoUQwcOLBiWS+88AJDhw7l3XffrZj2jDPO4JRTTuGLL76Yb//kyZOZPHkyDz/8MOeddx533303q666aov8c+fO5dBDD+Wyyy5rcSxXxiuvvMKtt97Kz372M84///yy8owYMYLDDjtsPnk+//xzRo4cyciRI3nggQfKRmWcPXs2hx9+OJdeemmLY+PGjWPcuHFcddVV7LHHHlx55ZVlp9pV4v3332e77bZjzJgx8+1/7bXXeO2117j88su5+eabW11+Ie+++y4vvPACAEOGDGnY1LCswmbppZducfyxxx6bdz0233zzks7gAbbddtt56zllV2uZMWMGu+66Kw8++OB8+8eNG8cll1zCVVddVfQ6FzJr1iyWXHLJFvc4uIJ3ypQpjBkzhj//+c+cf/75HHHEES3SHXrooZx99tmYGZdeeim77rpr2TpHjx7NSy+9BMDuu+9Ov3795h2bOXMme+yxB/fcc0+LfBMnTmTixIn8+9//5pprruG8887jmGOOKVpH//79+eY3v8mYMWO4++67mTNnDp07dy4rV3sTiqsgCIIgCIIgCIIFkKlTp7Ljjjvy6quvsvPOO7P99tuz+OKLM27cOC6++GLeeecdJkyYwH777cfjjz9etqyPPvqIXXbZhf/+97/ssMMO7LjjjgwYMID33nuvhaLj2GOPnadI6t27N3vvvTeDBw+mb9++TJo0iTvuuIORI0fyxhtvsPnmm/Ovf/2rhWLjwgsvnKe0Wmyxxdh3331Zb7316Nu3LzNmzGD8+PGMHj2aRx99tGI73H///dx888307duXI444gvXWWw9JPP7441xxxRV8+eWXXHnllWy++eYlnYjvt99+XH/99QD/n707j9O5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n4BPgTnAIufcBV4CcM5FpvSMc66Jc+4N59yLzrkrvPQpIiIiIiIiIiI5X9iJK6ADkMfMDgRdewUoBvwHX+KqNvCQxxiGAgecc0X8F5xzHYAvgR7AE8Ay51xpj/2KiIiIiIiIiEgO5iVxdTXwg//EOXcx0Bh438w6m1krYAVwt8cYGuBbYng46NozwCGgE9AHKAr8n8d+RUREREREREQkB/OSuCoG7Ak6r5f4879B174BynqMoTSw0X/inCsHVADeMrMJZjYUmAnEeuxXRERERERERERyMC+Jq4P4kld+DQEDvg26dhrI7zGGwsCRoPN6if3OCrq2DijlsV8REREREREREcnBvOwquB64JXEXwdNAe2B5siV+ZYFdHmPYCQQXX28G/IFv2aFfQeCUx35FRERERERERCQH85K4ehPfssBtwEmgEPCU/6ZzLhKoDyzxGMMS4Fbn3C3An8DfgblmdjKoTTlgu8d+RUREREREREQkBwt7qaCZfQo8AvwCxAN9zWx8UJNm+JJZczzG8EJiHJ8Bs4G8wPP+m865wkAjYKnHfkVEREREREREJAfzMuMKM3sHeCeVe7PxJa48MbM1zrnawH2Jlz42s+VBTariS4ZN9Nq3iIiIiIiIiIjkXGEnrpxzVcxsTVYEkdjv46ncWwQsyopxRURERERERETk/OVlV8EfnHOLnXOdnHNedw4UERERERERERHxxEviag5QGxgD7HDOveacuyZrwhIRERERERERkdzOS3H2WHy7+70I/AH0BNY45xY45+52zuXNohhFRERERERERCQX8jLjCjPbamb9gTLAHcCXQD3gP8B259wrzrnymR+miIiIiIiIiIjkNp4SV35mdtrMpgbNwnoBOAP8H7DeOfeVc+62TIxTRERERERERERymXQlrpK5CigPFAUccAhoDExxzi1zzpXJhDFERERERERERCSXSVfiyjl3sXPucefcBnzLBe8EFgPtgEuACsBooAbwTibFKiIiIiIiIiIiuUgeL42dcw2B7kBbIB9wGHgbeMfMfg5quhF40DkXha8WloiIiIiIiIiIiCdhJ66cc+vxLQl0wEpgOPCBmf0R4rGfgYLJ+jkDmPdQMTPzlGgTEREREREREZGcy0siqCwwAd/sqqVhPvMhsDzZtYWkL3ElIiIiIiIiIiK5iJfE1eVmdsBL52a2Fdia7Foj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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "from datetime import datetime\n", "from datetime import timedelta\n", "from dateutil.relativedelta import relativedelta\n", "\n", "fig = plt.figure(1, figsize=[20,10])\n", "ax = plt.subplot(1, 1, 1)\n", "series10YS.plot.bar(ax=ax)\n", "plt.axhline(y=30, color='r', linestyle='-', linewidth=3)\n", "labels = [datetime.strptime(item.get_text(), '%Y-%m-%d %H:%M:%S').strftime(\"%Y\") + '-' + \n", " (datetime.strptime(item.get_text() , '%Y-%m-%d %H:%M:%S') + relativedelta(years=9)).strftime(\"%Y\") for item in ax.get_xticklabels()] \n", "ax.set_xticklabels(labels, rotation=20, fontsize = 15)\n", "ax.set_xlabel('Decade', fontsize = 20)\n", "ax.set_ylabel('Average number of favourable days per year\\n for the production of artifical snow', fontsize = 20)\n", "plt.title(\"RATECE-PLANICA ski station (Slovenia) \\n A dying ski tourism destination under SSP585 \", fontsize=30)\n", "ax.legend(labels=['Threshold (30 days)','CNRM-CM6-1-HR'], fontsize=30)\n", "plt.savefig(\"nb_favourable_snow_cmip6.png\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "client.shutdown()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.6" } }, "nbformat": 4, "nbformat_minor": 4 }