{ "cells": [ { "cell_type": "markdown", "id": "experienced-shoot", "metadata": {}, "source": [ "# Example Python workflow for shuffling the climate data with tests to check whether shuffling worked" ] }, { "cell_type": "markdown", "id": "guilty-basics", "metadata": {}, "source": [ "This notebook shows how you can shuffle the climate data (here for simplicity done on yearly basis). In addition, it produces test files of shuffled climate data for two glaciers (using nearest gridpoints of these glaciers). \n", "\n", "we choose these glaciers for testing:\n", "- **RGI60-11.00897**: Hintereisferner (lon: 10.758, lat: 46.800)\n", " - nearest gridpoint from isimip3b: (10.75, 46.75)\n", "- **RGI60-16.02207**: Shallap Glacier (lon: -9.486, lat: -77.334)\n", " - nearest gridpoint from isimip3b: (-9.25, -77.25)\n", "\n", "**Please check in your workflow if your shuffling works by testing if you get the same annual time series of shuffled climate time series for the two glaciers. Note: no weighting per month duration is performed for the annual mean)!**\n", "\n", "(we only check temperature shuffling with the ssp585 scenario and the ipsl-cm6a-lr gcm)\n", "\n", "test files for shuffled climate:\n", "- `test_shuffling/test_RGI60-11.00897_ipsl-cm6a-lr_ssp585_tasAdjust_shuffled.csv`\n", "- `test_shuffling/test_RGI60-16.02207_ipsl-cm6a-lr_ssp585_tasAdjust_shuffled.csv`\n", "---" ] }, { "cell_type": "code", "execution_count": 1, "id": "floating-disposition", "metadata": {}, "outputs": [], "source": [ "# import these packages \n", "import xarray as xr\n", "import numpy as np\n", "import pandas as pd" ] }, { "cell_type": "markdown", "id": "talented-hearing", "metadata": {}, "source": [ "let's take the *ipsl-cm6a-lr* gcm, the *ssp585* scenario and temperature as an example!" ] }, { "cell_type": "code", "execution_count": 2, "id": "eleven-photographer", "metadata": {}, "outputs": [], "source": [ "gcm = 'ipsl-cm6a-lr'\n", "scenario = 'ssp585'\n", "typ = 'tasAdjust'\n", "glacier = 'RGI60-11.00897' \n", "# we also run the workflow for the Shallap glacier\n", "# just run the notebook instead with:\n", "# glacier = 'RGI60-16.02207'" ] }, { "cell_type": "code", "execution_count": 3, "id": "banned-hospital", "metadata": {}, "outputs": [], "source": [ "# take the right gridpoint!\n", "if glacier == 'RGI60-11.00897':\n", " # Hintereisferner\n", " lon, lat = (10.758, 46.800)\n", "elif glacier == 'RGI60-16.02207':\n", " # Shallap glacier\n", " lon, lat = (-77.334, -9.486)" ] }, { "cell_type": "code", "execution_count": 4, "id": "concerned-management", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | 1851-1870 | \n", "1901-1920 | \n", "1951-1970 | \n", "1995-2014 | \n", "2021-2040 | \n", "2041-2060 | \n", "2061-2080 | \n", "2081-2100 | \n", "
|---|---|---|---|---|---|---|---|---|
| simulation_years | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
| 0 | \n", "1861 | \n", "1909 | \n", "1957 | \n", "2000 | \n", "2034 | \n", "2049 | \n", "2073 | \n", "2081 | \n", "
| 1 | \n", "1858 | \n", "1918 | \n", "1959 | \n", "2013 | \n", "2036 | \n", "2045 | \n", "2072 | \n", "2094 | \n", "
| 2 | \n", "1852 | \n", "1903 | \n", "1969 | \n", "2005 | \n", "2032 | \n", "2054 | \n", "2065 | \n", "2098 | \n", "
| 3 | \n", "1862 | \n", "1906 | \n", "1963 | \n", "1996 | \n", "2039 | \n", "2053 | \n", "2061 | \n", "2084 | \n", "
| 4 | \n", "1868 | \n", "1904 | \n", "1970 | \n", "2010 | \n", "2021 | \n", "2043 | \n", "2063 | \n", "2090 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 4995 | \n", "1867 | \n", "1905 | \n", "1962 | \n", "2008 | \n", "2024 | \n", "2053 | \n", "2078 | \n", "2088 | \n", "
| 4996 | \n", "1852 | \n", "1907 | \n", "1968 | \n", "2005 | \n", "2027 | \n", "2052 | \n", "2073 | \n", "2081 | \n", "
| 4997 | \n", "1866 | \n", "1913 | \n", "1967 | \n", "2012 | \n", "2026 | \n", "2049 | \n", "2067 | \n", "2093 | \n", "
| 4998 | \n", "1863 | \n", "1902 | \n", "1957 | \n", "1998 | \n", "2040 | \n", "2057 | \n", "2065 | \n", "2090 | \n", "
| 4999 | \n", "1870 | \n", "1919 | \n", "1965 | \n", "1995 | \n", "2030 | \n", "2060 | \n", "2064 | \n", "2082 | \n", "
5000 rows × 8 columns
\n", "| \n", " | 1851-1870 | \n", "1901-1920 | \n", "1951-1970 | \n", "1995-2014 | \n", "2021-2040 | \n", "2041-2060 | \n", "2061-2080 | \n", "2081-2100 | \n", "
|---|---|---|---|---|---|---|---|---|
| simulation_years | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
| 0 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 1 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 2 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 3 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 4 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 4995 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 4996 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 4997 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 4998 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 4999 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
5000 rows × 8 columns
\n", "| \n", " | 1851-1870 | \n", "1901-1920 | \n", "1951-1970 | \n", "1995-2014 | \n", "2021-2040 | \n", "2041-2060 | \n", "2061-2080 | \n", "2081-2100 | \n", "
|---|---|---|---|---|---|---|---|---|
| simulation_years | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
| 0 | \n", "270.509644 | \n", "271.286499 | \n", "271.965332 | \n", "272.543823 | \n", "273.897675 | \n", "275.207062 | \n", "278.033691 | \n", "278.575348 | \n", "
| 1 | \n", "271.433563 | \n", "270.225555 | \n", "272.337372 | \n", "273.612549 | \n", "274.926422 | \n", "275.436096 | \n", "278.030304 | \n", "279.327179 | \n", "
| 2 | \n", "271.823822 | \n", "269.993378 | \n", "271.553131 | \n", "273.208374 | \n", "274.084625 | \n", "275.777252 | \n", "277.347626 | \n", "281.086548 | \n", "
| 3 | \n", "271.572571 | \n", "271.005493 | \n", "271.319458 | \n", "272.492340 | \n", "274.388916 | \n", "274.980591 | \n", "277.015839 | \n", "278.625946 | \n", "
| 4 | \n", "271.465179 | \n", "270.070770 | \n", "270.637848 | \n", "272.844513 | \n", "273.681488 | \n", "275.692261 | \n", "276.637665 | \n", "280.027466 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 4995 | \n", "270.676910 | \n", "269.957367 | \n", "272.018311 | \n", "272.476440 | \n", "272.553009 | \n", "274.980591 | \n", "278.677673 | \n", "279.783203 | \n", "
| 4996 | \n", "271.823822 | \n", "269.597382 | \n", "270.914856 | \n", "273.208374 | \n", "273.274567 | \n", "275.753815 | \n", "278.033691 | \n", "278.575348 | \n", "
| 4997 | \n", "269.981049 | \n", "270.118652 | \n", "272.242859 | \n", "273.874298 | \n", "273.564636 | \n", "275.207062 | \n", "276.350616 | \n", "280.937592 | \n", "
| 4998 | \n", "270.749786 | \n", "270.742859 | \n", "271.965332 | \n", "272.742950 | \n", "274.395111 | \n", "277.058197 | \n", "277.347626 | \n", "280.027466 | \n", "
| 4999 | \n", "272.592438 | \n", "270.868896 | \n", "272.335754 | \n", "272.216888 | \n", "273.728546 | \n", "276.563049 | \n", "276.505585 | \n", "278.055542 | \n", "
5000 rows × 8 columns
\n", "