{ "cells": [ { "cell_type": "markdown", "id": "4877a1c9-1c81-427c-9da6-799ddcd41647", "metadata": {}, "source": [ "# Calculating the total subsurface storage anomalies using geopandas\n", "In this example spatial mean monthly total subsurface storage for each federal state of Germany from 2011 until 2021\n", "will be calculated taking into account how much (ratio) of the gridpoints\n", "is actually being intersected \n", "inside each federal state." ] }, { "cell_type": "markdown", "id": "1ebaa21a-8a12-48bf-8231-0cb81e3f9ecb", "metadata": {}, "source": [ "Before starting it is important to import the needed libraries.
\n", "Make sure to make geopandas and SLOTH available to import in python. If you already have added SLOTH to your PYHTONPATH, below step is not needed." ] }, { "cell_type": "code", "execution_count": null, "id": "07f5f644-cf9b-4596-a272-75f3a4531917", "metadata": {}, "outputs": [], "source": [ "import os\n", "import sys\n", "\n", "cwd = os.getcwd()\n", "sloth_path = f\"{cwd}/../\"\n", "sys.path.append(sloth_path)" ] }, { "cell_type": "code", "execution_count": 12, "id": "e23e83a8-9306-4084-a2c2-c6e789759966", "metadata": { "tags": [] }, "outputs": [], "source": [ "import geopandas as gpd\n", "import xarray as xr\n", "import pandas as pd\n", "from shapely.geometry import Polygon\n", "import sloth.toolBox " ] }, { "cell_type": "markdown", "id": "ab18a7ed-0e78-40c7-acc0-7ea1026fe8c3", "metadata": {}, "source": [ "The paths needed for the anomalies calculations are prepared next." ] }, { "cell_type": "code", "execution_count": null, "id": "0fd309f2-53d4-4c0e-b4de-63d76bab883d", "metadata": {}, "outputs": [], "source": [ "path = '//p/scratch/pfgpude05/belleflamme1/sim/ADAPTER_DE05_ECMWF-HRES_detforecast__FZJ-IBG3-ParFlowCLM380D_v01bJuwelsGpuProdClimatologyTl_PRhourly/postpro/data/'\n", "fname= 'tss_DE05_ECMWF-HRES_hindcast_r1i1p2_FZJ-IBG3-ParFlowCLM380_hgfadapter-h00-v3_1hr_*-*.nc'\n", "fname_tssAVE = 'tssAve_DE05_ECMWF-HRES_hindcast_r1i1p2_FZJ-IBG3-ParFlowCLM380_hgfadapter-h00-v3_1hr_reference-year-2011-2021.nc'" ] }, { "cell_type": "markdown", "id": "fdf6ea34-6566-426e-899d-31b5808357e1", "metadata": {}, "source": [ "In the following step all files will be compiled together and the monthly total subsurface
\n", "storage is calculated. " ] }, { "cell_type": "code", "execution_count": null, "id": "8e0f13bb-2580-4ce1-a75a-f79067adbe17", "metadata": { "tags": [] }, "outputs": [], "source": [ "ds_tss = xr.open_mfdataset(path+fname, decode_times=True)\n", "ds_tss_mon = ds_tss.resample({'time': '1MS'}).mean() # calculate the monthly mean\n", "df_tss_mon = ds_tss_mon.to_dataframe()\n", "df_tss_mon = df_tss_mon.reset_index() # the values here represent the monthly tts for the whole 2000*2000 grid\n", "df_tss_mon_sorted=df_tss_mon.sort_values(by=['time'])" ] }, { "cell_type": "markdown", "id": "de11aefc-4265-4944-9016-2b987fd5ef96", "metadata": {}, "source": [ "For calculating the anomalies, the long term total subsurface storage is needed and calculated next." ] }, { "cell_type": "code", "execution_count": null, "id": "fed811ae-2356-4e66-a3c2-52a3f2fa2d46", "metadata": {}, "outputs": [], "source": [ "ds_tssAVE = xr.open_mfdataset(path + fname_tssAVE, engine=\"netcdf4\", decode_times=True)\n", "ds_tssAVE = ds_tssAVE.drop('rotated_pole')\n", "ds_tssAVE_mon = ds_tssAVE.resample({'time': '1MS'}).mean() \n", "df_tssAVE_mon = ds_tssAVE_mon.to_dataframe()\n", "df_tssAVE_mon = df_tssAVE_mon.reset_index()" ] }, { "cell_type": "markdown", "id": "52666aaa-4904-44ea-941f-9806f12f4f20", "metadata": {}, "source": [ "A dataframe is created with the lons and lats of the 2000*2000 grid (the domain that contains the total subsurface storage) in order to add the calculated anomalies later to this dataframe.\n" ] }, { "cell_type": "code", "execution_count": 201, "id": "db8159ff-388f-4366-bae0-a34451913017", "metadata": { "tags": [] }, "outputs": [], "source": [ "df_anomaly = pd.DataFrame(columns=['lon',\n", " 'lat',])\n", "df_anomaly['lon'] = df_tss_mon_sorted['lon'].iloc[0:4000000]\n", "df_anomaly['lat'] = df_tss_mon_sorted['lat'].iloc[0:4000000]" ] }, { "cell_type": "markdown", "id": "a48680af-3056-41ec-ab06-c2d645aca7a5", "metadata": {}, "source": [ "The final step is to calculate the anomalies, in this loop the anomalies for each month from 2011-2022 for each grid is calculated, it loops through the years and months and add the values in a column, which means for each month a column with its anomalies values will be added.\n", "t" ] }, { "cell_type": "markdown", "id": "49acf08a-3555-4796-a9a7-e4d5585206bc", "metadata": {}, "source": [ "As shown below, the dataframe is prepared as follows:\n", "- each row represents a grid point in the domain\n", "- the columns contains information on lon and lat as well as anomalies for each month from 2011 until 2021" ] }, { "cell_type": "code", "execution_count": 204, "id": "7840ad32-231e-4af4-bef0-00eaad56b13a", "metadata": { "jupyter": { "source_hidden": true }, "tags": [] }, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
lonlat2011_12011_22011_32011_42011_52011_62011_72011_8...2022_32022_42022_52022_62022_72022_82022_92022_102022_112022_12
02.86415644.254330-0.455078-0.1757810.312500-11.029297-37.771484-26.11132816.77734465.214844...-0.2656254.953125-23.765625-55.781250-37.515625-91.335938-103.468750-117.330078-125.214844-57.529297
1278006044.25439148.737358-0.806641-0.3671880.195312-9.496094-33.369141-19.09375020.23046951.841797...-0.4414064.152344-19.548828-45.017578-23.996094-75.730469-86.578125-95.554688-96.341797-27.708984
1705867224.32057351.805782-0.154297-0.0351560.207031-4.126953-6.5917973.38476616.97265615.625000...-0.2246091.564453-10.769531-14.166016-4.728516-36.582031-32.123047-2.962891-0.312500-0.189453
64649277815.52827447.738449-0.394531-0.1230470.328125-10.277344-37.744141-24.43554720.15625064.380859...-0.3125004.826172-24.535156-53.386719-30.810547-84.294922-97.890625-110.275391-112.976562-38.738281
222562622.11372648.209255-0.347656-0.0410160.251953-10.488281-37.468750-23.82812521.55273463.205078...-0.4082034.753906-23.535156-51.101562-29.115234-81.833984-94.062500-104.388672-103.269531-26.167969
..................................................................
99902240.35918452.314259NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
56692542413.92006646.913773NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
478660082.63141748.333389NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
56727811614.00737145.914566NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
56780928813.67476049.967464NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "

4000000 rows × 146 columns

\n", "
" ], "text/plain": [ " lon lat 2011_1 2011_2 2011_3 2011_4 \\\n", "0 2.864156 44.254330 -0.455078 -0.175781 0.312500 -11.029297 \n", "127800604 4.254391 48.737358 -0.806641 -0.367188 0.195312 -9.496094 \n", "170586722 4.320573 51.805782 -0.154297 -0.035156 0.207031 -4.126953 \n", "646492778 15.528274 47.738449 -0.394531 -0.123047 0.328125 -10.277344 \n", "22256262 2.113726 48.209255 -0.347656 -0.041016 0.251953 -10.488281 \n", "... ... ... ... ... ... ... \n", "9990224 0.359184 52.314259 NaN NaN NaN NaN \n", "566925424 13.920066 46.913773 NaN NaN NaN NaN \n", "47866008 2.631417 48.333389 NaN NaN NaN NaN \n", "567278116 14.007371 45.914566 NaN NaN NaN NaN \n", "567809288 13.674760 49.967464 NaN NaN NaN NaN \n", "\n", " 2011_5 2011_6 2011_7 2011_8 ... 2022_3 \\\n", "0 -37.771484 -26.111328 16.777344 65.214844 ... -0.265625 \n", "127800604 -33.369141 -19.093750 20.230469 51.841797 ... -0.441406 \n", "170586722 -6.591797 3.384766 16.972656 15.625000 ... -0.224609 \n", "646492778 -37.744141 -24.435547 20.156250 64.380859 ... -0.312500 \n", "22256262 -37.468750 -23.828125 21.552734 63.205078 ... -0.408203 \n", "... ... ... ... ... ... ... \n", "9990224 NaN NaN NaN NaN ... NaN \n", "566925424 NaN NaN NaN NaN ... NaN \n", "47866008 NaN NaN NaN NaN ... NaN \n", "567278116 NaN NaN NaN NaN ... NaN \n", "567809288 NaN NaN NaN NaN ... NaN \n", "\n", " 2022_4 2022_5 2022_6 2022_7 2022_8 2022_9 \\\n", "0 4.953125 -23.765625 -55.781250 -37.515625 -91.335938 -103.468750 \n", "127800604 4.152344 -19.548828 -45.017578 -23.996094 -75.730469 -86.578125 \n", "170586722 1.564453 -10.769531 -14.166016 -4.728516 -36.582031 -32.123047 \n", "646492778 4.826172 -24.535156 -53.386719 -30.810547 -84.294922 -97.890625 \n", "22256262 4.753906 -23.535156 -51.101562 -29.115234 -81.833984 -94.062500 \n", "... ... ... ... ... ... ... \n", "9990224 NaN NaN NaN NaN NaN NaN \n", "566925424 NaN NaN NaN NaN NaN NaN \n", "47866008 NaN NaN NaN NaN NaN NaN \n", "567278116 NaN NaN NaN NaN NaN NaN \n", "567809288 NaN NaN NaN NaN NaN NaN \n", "\n", " 2022_10 2022_11 2022_12 \n", "0 -117.330078 -125.214844 -57.529297 \n", "127800604 -95.554688 -96.341797 -27.708984 \n", "170586722 -2.962891 -0.312500 -0.189453 \n", "646492778 -110.275391 -112.976562 -38.738281 \n", "22256262 -104.388672 -103.269531 -26.167969 \n", "... ... ... ... \n", "9990224 NaN NaN NaN \n", "566925424 NaN NaN NaN \n", "47866008 NaN NaN NaN \n", "567278116 NaN NaN NaN \n", "567809288 NaN NaN NaN \n", "\n", "[4000000 rows x 146 columns]" ] }, "execution_count": 204, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_anomaly" ] }, { "cell_type": "code", "execution_count": null, "id": "5befe56e-1b68-4f28-8af6-dbdfc7b1c722", "metadata": {}, "outputs": [], "source": [ " anomaly_list = []\n", " list_year = [2011, 2012, 2013, 2014,\n", " 2015, 2016, 2017, 2018,\n", " 2019, 2020, 2021, 2022\n", " ]\n", " list_month = [1, 2, 3,\n", " 4, 5, 6,\n", " 7, 8, 9,\n", " 10, 11, 12,\n", " ]\n", "\n", " print('calculating the anomalies')\n", " for i in range(len(list_year)):\n", " for n in range(len(list_month)):\n", " print(list_month[n])\n", " start_mon = f'{list_year[i]}-{list_month[n]}-01'\n", " end_mon = f'{list_year[i]}-{list_month[n]}-01'\n", " start_mon = pd.to_datetime(start_mon)\n", " end_mon = pd.to_datetime(end_mon)\n", " start_mon_tssAVE = f'2017-{list_month[n]}-01'\n", " end_mon_tssAVE = f'2017-{list_month[n]}-01'\n", " start_mon_tssAVE = pd.to_datetime(start_mon_tssAVE)\n", " end_mon_tssAVE = pd.to_datetime(end_mon_tssAVE)\n", " df_tss_yr = df_tss_mon[df_tss_mon['time'].between(start_mon, end_mon)]\n", " df_tss_yr = df_tss_yr.reset_index()\n", " df_tssAVE_mon_yr = df_tssAVE_mon[df_tssAVE_mon['time'].between(start_mon_tssAVE, end_mon_tssAVE)]\n", " df_tssAVE_mon_yr = df_tssAVE_mon_yr.reset_index()\n", " df_anom = df_tss_yr['tss'] - df_tssAVE_mon_yr['tssAve']\n", "\n", " df_anomaly[f'{list_year[i]}_{list_month[n]}'] = df_anom.values\n", " df_anomaly.to_csv('/p/scratch/pfgpude05/hammoudeh1/sim/ADAPTER_DE05_ECMWF-HRES_detforecast__FZJ-IBG3-ParFlowCLM380D_v01bJuwelsGpuProdClimatologyTl_PRhourly/postpro/data/time_series/tss_anomalies_DE05_2021-20230823.csv')\n", "\n" ] }, { "cell_type": "markdown", "id": "a0d2587a-492c-494c-be43-e1ac2fe8f2a8", "metadata": {}, "source": [ "After the anomalies are calculated, the paths for the data are prepared.
\n", "Data needed:\n", "- Data containing information on the total subsurafce storage to calculate the monthly anomaly.\n", "- Dataframe (can also be a nectdf or any other data type) containing infromation on the four longitudes and latitudes that surrounds each gridpoint in the source dataframe. this information is needed to be able to create polygons for each gridpoint.\n", "- Shapefile fo Germany containing all the federal stations.\n", "\n", "Another information is needed such as:\n", "- Projected coordinate reference system (utm).\n", "- Number of years.\n", "- Number of days/months etc.\n", "- A path to save the output." ] }, { "cell_type": "code", "execution_count": 254, "id": "05307ee0-2b7b-4be2-aea9-ee02ffe9f23c", "metadata": { "tags": [] }, "outputs": [], "source": [ "df_data= df_anomaly\n", "#df_data = '/p/scratch/pfgpude05/hammoudeh1/sim/ADAPTER_DE05_ECMWF-HRES_detforecast__FZJ-IBG3-ParFlowCLM380D_v01bJuwelsGpuProdClimatologyTl_PRhourly/postpro/data/time_series/tss_anomalies_DE05_2021-20230823.csv'\n", "corners = '/p/project/pfgpude05/hammoudeh1/geo_data/corner_grids_DE06/corner_grids_DE06.nc'\n", "area_of_interest ='/p/project/pfgpude05/hammoudeh1/geo_data/nuts2500/2500_NUTS1.shp'\n", "crs_utm = 'EPSG:25832'\n", "nr_yr =12\n", "nr_entries = 12\n", "save_dir = '/p/scratch/pfgpude05/hammoudeh1/sim/ADAPTER_DE05_ECMWF-HRES_detforecast__FZJ-IBG3-ParFlowCLM380D_v01bJuwelsGpuProdClimatologyTl_PRhourly/geo_data/anomalies_geopandas/NUTS3_tss_monthly_anomalies_DE06_ECMWF-HRES_hindcast_r1i1p2_FZJ-IBG3-ParFlowCLM380_hgfadapter-h00-v3_1hr/NUTS1_tss_monthly_anomalies_DE06_Parflow_SH_v1.shp'" ] }, { "cell_type": "code", "execution_count": 246, "id": "fcce1194-749c-4d92-a157-cedc6e686e9a", "metadata": { "jupyter": { "source_hidden": true }, "tags": [] }, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NUTS_LEVELNUTS_CODENUTS_NAMEgeometry
01DE1Baden-WürttembergMULTIPOLYGON (((591826.754 5434806.578, 591502...
11DE2BayernPOLYGON ((759919.057 5493994.847, 759656.392 5...
21DE3BerlinPOLYGON ((812675.236 5831469.065, 813573.397 5...
31DE4BrandenburgPOLYGON ((785946.492 5753692.786, 785689.525 5...
41DE5BremenMULTIPOLYGON (((471292.489 5932922.759, 470685...
51DE6HamburgMULTIPOLYGON (((463107.577 5977587.614, 462620...
61DE7HessenPOLYGON ((492636.671 5483361.184, 491734.166 5...
71DE8Mecklenburg-VorpommernMULTIPOLYGON (((713722.584 6019028.989, 714041...
81DE9NiedersachsenMULTIPOLYGON (((508518.071 5806884.353, 508505...
91DEANordrhein-WestfalenPOLYGON ((373588.503 5612322.662, 372409.785 5...
101DEBRheinland-PfalzPOLYGON ((420154.696 5433007.302, 418891.303 5...
111DECSaarlandPOLYGON ((361553.412 5446433.660, 360354.267 5...
121DEDSachsenPOLYGON ((753976.948 5653939.390, 753924.450 5...
131DEESachsen-AnhaltPOLYGON ((669178.456 5690646.781, 668139.009 5...
141DEFSchleswig-HolsteinMULTIPOLYGON (((427783.160 6003522.451, 427486...
151DEGThüringenPOLYGON ((726352.625 5648413.044, 726600.494 5...
\n", "
" ], "text/plain": [ " NUTS_LEVEL NUTS_CODE NUTS_NAME \\\n", "0 1 DE1 Baden-Württemberg \n", "1 1 DE2 Bayern \n", "2 1 DE3 Berlin \n", "3 1 DE4 Brandenburg \n", "4 1 DE5 Bremen \n", "5 1 DE6 Hamburg \n", "6 1 DE7 Hessen \n", "7 1 DE8 Mecklenburg-Vorpommern \n", "8 1 DE9 Niedersachsen \n", "9 1 DEA Nordrhein-Westfalen \n", "10 1 DEB Rheinland-Pfalz \n", "11 1 DEC Saarland \n", "12 1 DED Sachsen \n", "13 1 DEE Sachsen-Anhalt \n", "14 1 DEF Schleswig-Holstein \n", "15 1 DEG Thüringen \n", "\n", " geometry \n", "0 MULTIPOLYGON (((591826.754 5434806.578, 591502... \n", "1 POLYGON ((759919.057 5493994.847, 759656.392 5... \n", "2 POLYGON ((812675.236 5831469.065, 813573.397 5... \n", "3 POLYGON ((785946.492 5753692.786, 785689.525 5... \n", "4 MULTIPOLYGON (((471292.489 5932922.759, 470685... \n", "5 MULTIPOLYGON (((463107.577 5977587.614, 462620... \n", "6 POLYGON ((492636.671 5483361.184, 491734.166 5... \n", "7 MULTIPOLYGON (((713722.584 6019028.989, 714041... \n", "8 MULTIPOLYGON (((508518.071 5806884.353, 508505... \n", "9 POLYGON ((373588.503 5612322.662, 372409.785 5... \n", "10 POLYGON ((420154.696 5433007.302, 418891.303 5... \n", "11 POLYGON ((361553.412 5446433.660, 360354.267 5... \n", "12 POLYGON ((753976.948 5653939.390, 753924.450 5... \n", "13 POLYGON ((669178.456 5690646.781, 668139.009 5... \n", "14 MULTIPOLYGON (((427783.160 6003522.451, 427486... \n", "15 POLYGON ((726352.625 5648413.044, 726600.494 5... " ] }, "execution_count": 246, "metadata": {}, "output_type": "execute_result" } ], "source": [ "shapefile" ] }, { "cell_type": "markdown", "id": "7129acb9-9694-4944-b18d-22629c90c1e8", "metadata": {}, "source": [ "The 'NUTS_NAME' from the table below, will be used for dissovling the field in the end.
\n", "That's why this information is needed as an input in the tool" ] }, { "cell_type": "code", "execution_count": 230, "id": "33e4f6c8-63a6-4ced-be25-0fb7b06ef865", "metadata": { "tags": [] }, "outputs": [], "source": [ "Name_area = \"NUTS_NAME\"" ] }, { "cell_type": "markdown", "id": "9043b354-8e8a-4c11-bf5c-8da35f035be8", "metadata": {}, "source": [ "The intersection_calculations tool is imported from sloth.toolbox " ] }, { "cell_type": "code", "execution_count": null, "id": "3d56de91-f8e4-49c4-9fef-ca4e15d7c37e", "metadata": {}, "outputs": [], "source": [ "sloth.toolbox.intersection_calculations(df_data, corners, area_of_interest, Name_area, crs_utm, nr_yr, nr_entries, save_dir)" ] }, { "cell_type": "markdown", "id": "568817f7-13a1-4e7f-a75d-63e9bced1175", "metadata": {}, "source": [ "The result is shown in the table below:" ] }, { "cell_type": "code", "execution_count": 262, "id": "47b9fd55-a754-4c61-a6dd-a7e6acd5a5b6", "metadata": { "jupyter": { "source_hidden": true }, "tags": [] }, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
geometrylonlat2011_12011_22011_32011_42011_52011_62011_7...2022_72022_82022_92022_102022_112022_12areaNUTS_LEVELarea_intersectedweight
NUTS_NAME
Baden-WürttembergMULTIPOLYGON (((400493.888 5268816.619, 401103...9.04535248.5379560.999507-2.988537-13.584477-21.015722-57.277115-63.289494-43.851151...-64.984001-93.216202-89.057289-77.876862-81.391617-76.319214374678.0853721.0369487.9181760.986148
BayernPOLYGON ((507442.465 5491666.064, 507374.615 5...11.42096348.9337581.731518-3.034703-13.670825-21.404711-57.849911-64.082687-44.784664...-63.859665-91.726974-87.553711-76.597458-80.274864-75.176254375050.5610931.0370964.1120330.989103
BerlinPOLYGON ((780348.536 5813302.828, 779911.820 5...13.40396352.50092725.70593625.63825614.0323549.348076-15.815358-17.6938531.582355...-85.105247-108.459457-101.509254-95.753525-108.704613-102.388306375838.6436311.0347783.2342080.925356
BrandenburgPOLYGON ((676049.159 5877864.309, 676109.609 5...13.39786252.4684265.5435570.937342-10.016368-17.526293-52.535980-59.144440-40.211243...-63.198277-90.098953-85.329941-75.727402-80.210075-75.104263375848.4899521.0369595.5194170.983361
BremenMULTIPOLYGON (((468226.157 5893810.567, 467760...8.73611153.206532-9.506310-12.064992-21.316515-31.167387-75.887642-81.646461-60.356339...-78.357590-107.278130-101.842323-84.059784-87.900513-85.182060374818.5980361.0326689.7738570.871589
HamburgMULTIPOLYGON (((551170.414 5928592.519, 550963...10.00254553.55018225.57053426.04618113.92983510.464141-12.814467-16.7881891.120710...-84.439415-104.581825-96.698769-92.634155-105.355164-98.748741374803.5025941.0343649.9516810.916876
HessenPOLYGON ((420136.833 5536098.325, 419637.142 5...9.02975650.597702-1.622735-6.414443-17.024820-24.803610-62.581284-69.298172-49.687885...-65.227036-94.198318-89.954620-78.154289-81.152153-76.200714375041.3373131.0367454.2442010.979770
Mecklenburg-VorpommernMULTIPOLYGON (((617186.776 5910703.204, 616915...12.54299253.7568863.585589-0.735577-11.536910-19.055853-54.574936-60.570900-41.148571...-66.532906-94.190651-89.620071-79.108841-83.113586-77.816010375282.6560011.0364617.4687940.971585
NiedersachsenMULTIPOLYGON (((354207.146 5814329.405, 354033...9.15988152.7617267.2919963.948156-6.924499-13.796718-47.395435-53.088966-33.938244...-66.691063-93.021286-88.040375-78.674881-84.412430-79.208153374952.4061151.0368999.5955770.984124
Nordrhein-WestfalenPOLYGON ((290655.096 5623782.625, 290656.794 5...7.55864751.4751854.6012590.266528-10.279454-17.371027-52.570518-58.947182-39.851475...-64.477089-91.286812-86.429611-76.440918-80.905113-75.741623375154.0232191.0369483.3743600.984885
Rheinland-PfalzPOLYGON ((301290.602 5531392.741, 301084.142 5...7.45083449.9104806.0480452.004749-9.018032-16.458361-50.644306-56.789558-37.998516...-64.440720-91.378166-86.539139-76.646225-81.347626-76.340233375094.1537271.0368624.3209800.982752
SaarlandPOLYGON ((315507.595 5481970.296, 314910.921 5...6.95120349.3837702.946488-1.885279-12.328921-20.652977-58.255016-63.524227-44.533035...-61.877522-90.718102-88.003914-76.803322-79.527748-73.550659375104.6275091.0359668.6556860.958849
SachsenPOLYGON ((712923.245 5582183.306, 712733.682 5...13.34522551.0488134.797780-0.519058-11.254671-18.747925-54.531155-61.287735-42.006641...-61.797779-88.396599-83.679886-74.015678-78.097069-72.758545375951.4459761.0368478.5938650.980122
Sachsen-AnhaltPOLYGON ((615254.052 5726743.256, 615250.857 5...11.70204652.007923-10.956268-16.022284-26.324970-35.175495-76.511673-83.026962-63.564831...-60.799084-92.132446-89.499664-74.617950-75.833855-71.662788375364.5591611.0369012.0825950.983077
Schleswig-HolsteinMULTIPOLYGON (((426389.821 6005095.954, 426461...9.80649154.1862348.0320614.532070-6.483582-13.468135-46.871441-52.392162-33.390022...-66.364571-92.719681-87.642197-78.375977-83.884872-78.847504374599.1917541.0363606.6844020.970651
ThüringenPOLYGON ((562083.355 5611197.224, 562099.302 5...11.03018250.90105411.1364198.009848-2.874439-9.569095-42.398903-48.243431-29.178293...-69.037308-94.825653-89.288139-80.275635-86.308487-80.896896375262.3059781.0366870.1174070.977638
\n", "

16 rows × 151 columns

\n", "
" ], "text/plain": [ " geometry \\\n", "NUTS_NAME \n", "Baden-Württemberg MULTIPOLYGON (((400493.888 5268816.619, 401103... \n", "Bayern POLYGON ((507442.465 5491666.064, 507374.615 5... \n", "Berlin POLYGON ((780348.536 5813302.828, 779911.820 5... \n", "Brandenburg POLYGON ((676049.159 5877864.309, 676109.609 5... \n", "Bremen MULTIPOLYGON (((468226.157 5893810.567, 467760... \n", "Hamburg MULTIPOLYGON (((551170.414 5928592.519, 550963... \n", "Hessen POLYGON ((420136.833 5536098.325, 419637.142 5... \n", "Mecklenburg-Vorpommern MULTIPOLYGON (((617186.776 5910703.204, 616915... \n", "Niedersachsen MULTIPOLYGON (((354207.146 5814329.405, 354033... \n", "Nordrhein-Westfalen POLYGON ((290655.096 5623782.625, 290656.794 5... \n", "Rheinland-Pfalz POLYGON ((301290.602 5531392.741, 301084.142 5... \n", "Saarland POLYGON ((315507.595 5481970.296, 314910.921 5... \n", "Sachsen POLYGON ((712923.245 5582183.306, 712733.682 5... \n", "Sachsen-Anhalt POLYGON ((615254.052 5726743.256, 615250.857 5... \n", "Schleswig-Holstein MULTIPOLYGON (((426389.821 6005095.954, 426461... \n", "Thüringen POLYGON ((562083.355 5611197.224, 562099.302 5... \n", "\n", " lon lat 2011_1 2011_2 2011_3 \\\n", "NUTS_NAME \n", "Baden-Württemberg 9.045352 48.537956 0.999507 -2.988537 -13.584477 \n", "Bayern 11.420963 48.933758 1.731518 -3.034703 -13.670825 \n", "Berlin 13.403963 52.500927 25.705936 25.638256 14.032354 \n", "Brandenburg 13.397862 52.468426 5.543557 0.937342 -10.016368 \n", "Bremen 8.736111 53.206532 -9.506310 -12.064992 -21.316515 \n", "Hamburg 10.002545 53.550182 25.570534 26.046181 13.929835 \n", "Hessen 9.029756 50.597702 -1.622735 -6.414443 -17.024820 \n", "Mecklenburg-Vorpommern 12.542992 53.756886 3.585589 -0.735577 -11.536910 \n", "Niedersachsen 9.159881 52.761726 7.291996 3.948156 -6.924499 \n", "Nordrhein-Westfalen 7.558647 51.475185 4.601259 0.266528 -10.279454 \n", "Rheinland-Pfalz 7.450834 49.910480 6.048045 2.004749 -9.018032 \n", "Saarland 6.951203 49.383770 2.946488 -1.885279 -12.328921 \n", "Sachsen 13.345225 51.048813 4.797780 -0.519058 -11.254671 \n", "Sachsen-Anhalt 11.702046 52.007923 -10.956268 -16.022284 -26.324970 \n", "Schleswig-Holstein 9.806491 54.186234 8.032061 4.532070 -6.483582 \n", "Thüringen 11.030182 50.901054 11.136419 8.009848 -2.874439 \n", "\n", " 2011_4 2011_5 2011_6 2011_7 ... \\\n", "NUTS_NAME ... \n", "Baden-Württemberg -21.015722 -57.277115 -63.289494 -43.851151 ... \n", "Bayern -21.404711 -57.849911 -64.082687 -44.784664 ... \n", "Berlin 9.348076 -15.815358 -17.693853 1.582355 ... \n", "Brandenburg -17.526293 -52.535980 -59.144440 -40.211243 ... \n", "Bremen -31.167387 -75.887642 -81.646461 -60.356339 ... \n", "Hamburg 10.464141 -12.814467 -16.788189 1.120710 ... \n", "Hessen -24.803610 -62.581284 -69.298172 -49.687885 ... \n", "Mecklenburg-Vorpommern -19.055853 -54.574936 -60.570900 -41.148571 ... \n", "Niedersachsen -13.796718 -47.395435 -53.088966 -33.938244 ... \n", "Nordrhein-Westfalen -17.371027 -52.570518 -58.947182 -39.851475 ... \n", "Rheinland-Pfalz -16.458361 -50.644306 -56.789558 -37.998516 ... \n", "Saarland -20.652977 -58.255016 -63.524227 -44.533035 ... \n", "Sachsen -18.747925 -54.531155 -61.287735 -42.006641 ... \n", "Sachsen-Anhalt -35.175495 -76.511673 -83.026962 -63.564831 ... \n", "Schleswig-Holstein -13.468135 -46.871441 -52.392162 -33.390022 ... \n", "Thüringen -9.569095 -42.398903 -48.243431 -29.178293 ... \n", "\n", " 2022_7 2022_8 2022_9 2022_10 \\\n", "NUTS_NAME \n", "Baden-Württemberg -64.984001 -93.216202 -89.057289 -77.876862 \n", "Bayern -63.859665 -91.726974 -87.553711 -76.597458 \n", "Berlin -85.105247 -108.459457 -101.509254 -95.753525 \n", "Brandenburg -63.198277 -90.098953 -85.329941 -75.727402 \n", "Bremen -78.357590 -107.278130 -101.842323 -84.059784 \n", "Hamburg -84.439415 -104.581825 -96.698769 -92.634155 \n", "Hessen -65.227036 -94.198318 -89.954620 -78.154289 \n", "Mecklenburg-Vorpommern -66.532906 -94.190651 -89.620071 -79.108841 \n", "Niedersachsen -66.691063 -93.021286 -88.040375 -78.674881 \n", "Nordrhein-Westfalen -64.477089 -91.286812 -86.429611 -76.440918 \n", "Rheinland-Pfalz -64.440720 -91.378166 -86.539139 -76.646225 \n", "Saarland -61.877522 -90.718102 -88.003914 -76.803322 \n", "Sachsen -61.797779 -88.396599 -83.679886 -74.015678 \n", "Sachsen-Anhalt -60.799084 -92.132446 -89.499664 -74.617950 \n", "Schleswig-Holstein -66.364571 -92.719681 -87.642197 -78.375977 \n", "Thüringen -69.037308 -94.825653 -89.288139 -80.275635 \n", "\n", " 2022_11 2022_12 area NUTS_LEVEL \\\n", "NUTS_NAME \n", "Baden-Württemberg -81.391617 -76.319214 374678.085372 1.0 \n", "Bayern -80.274864 -75.176254 375050.561093 1.0 \n", "Berlin -108.704613 -102.388306 375838.643631 1.0 \n", "Brandenburg -80.210075 -75.104263 375848.489952 1.0 \n", "Bremen -87.900513 -85.182060 374818.598036 1.0 \n", "Hamburg -105.355164 -98.748741 374803.502594 1.0 \n", "Hessen -81.152153 -76.200714 375041.337313 1.0 \n", "Mecklenburg-Vorpommern -83.113586 -77.816010 375282.656001 1.0 \n", "Niedersachsen -84.412430 -79.208153 374952.406115 1.0 \n", "Nordrhein-Westfalen -80.905113 -75.741623 375154.023219 1.0 \n", "Rheinland-Pfalz -81.347626 -76.340233 375094.153727 1.0 \n", "Saarland -79.527748 -73.550659 375104.627509 1.0 \n", "Sachsen -78.097069 -72.758545 375951.445976 1.0 \n", "Sachsen-Anhalt -75.833855 -71.662788 375364.559161 1.0 \n", "Schleswig-Holstein -83.884872 -78.847504 374599.191754 1.0 \n", "Thüringen -86.308487 -80.896896 375262.305978 1.0 \n", "\n", " area_intersected weight \n", "NUTS_NAME \n", "Baden-Württemberg 369487.918176 0.986148 \n", "Bayern 370964.112033 0.989103 \n", "Berlin 347783.234208 0.925356 \n", "Brandenburg 369595.519417 0.983361 \n", "Bremen 326689.773857 0.871589 \n", "Hamburg 343649.951681 0.916876 \n", "Hessen 367454.244201 0.979770 \n", "Mecklenburg-Vorpommern 364617.468794 0.971585 \n", "Niedersachsen 368999.595577 0.984124 \n", "Nordrhein-Westfalen 369483.374360 0.984885 \n", "Rheinland-Pfalz 368624.320980 0.982752 \n", "Saarland 359668.655686 0.958849 \n", "Sachsen 368478.593865 0.980122 \n", "Sachsen-Anhalt 369012.082595 0.983077 \n", "Schleswig-Holstein 363606.684402 0.970651 \n", "Thüringen 366870.117407 0.977638 \n", "\n", "[16 rows x 151 columns]" ] }, "execution_count": 262, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dissolve_gdf.drop('index_left',axis='columns')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.6" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }