{ "cells": [ { "cell_type": "markdown", "id": "6f7c9cf7-93ca-4921-9783-d6377f2606b7", "metadata": {}, "source": [ "This notebook selects the non-duplicates and moves them one folder upwards" ] }, { "cell_type": "code", "execution_count": 1, "id": "4fc7ed5a-d1a9-4169-a2f1-465955af619b", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "id": "6e4d6adc-1307-4524-8ddb-3b41ea4c372a", "metadata": {}, "outputs": [], "source": [ "d_reg_num_name={}\n", "d_reg_num_name['01'] = 'Alaska'\n", "d_reg_num_name['02'] = 'Western Canada & USA'\n", "d_reg_num_name['03'] = 'Arctic Canada North'\n", "d_reg_num_name['04'] = 'Arctic Canada South'\n", "d_reg_num_name['05'] = 'Greenland'\n", "d_reg_num_name['06'] = 'Iceland'\n", "d_reg_num_name['07'] = 'Svalbard and Jan Mayen'\n", "d_reg_num_name['08'] = 'Scandinavia'\n", "d_reg_num_name['09'] = 'Russian Arctic'\n", "d_reg_num_name['10'] = 'North Asia'\n", "d_reg_num_name['11'] = 'Central Europe'\n", "d_reg_num_name['12'] = 'Caucasus and Middle East'\n", "d_reg_num_name['13'] = 'Central Asia'\n", "d_reg_num_name['14'] = 'South Asia West'\n", "d_reg_num_name['15'] = 'South Asia East'\n", "d_reg_num_name['16'] = 'Low Latitudes'\n", "d_reg_num_name['17'] = 'Southern Andes'\n", "d_reg_num_name['18'] = 'New Zealand'\n", "d_reg_num_name['19'] = 'Antarctic and Subantarctic'\n", "\n", "###\n", "d_reg_name_sh_num={}\n", "d_reg_name_sh_num['Alaska'] = '01'\n", "d_reg_name_sh_num['WesternCanada'] = '02'\n", "d_reg_name_sh_num['ArcticCanadaN'] = '03'\n", "d_reg_name_sh_num['ArcticCanadaS']='04'\n", "d_reg_name_sh_num['Greenland']='05'\n", "d_reg_name_sh_num['Iceland']='06'\n", "d_reg_name_sh_num['Svalbard']='07'\n", "d_reg_name_sh_num['Scandinavia']='08'\n", "d_reg_name_sh_num['RussianArctic']='09'\n", "d_reg_name_sh_num['NorthAsia']='10' \n", "d_reg_name_sh_num['CentralEurope']='11'\n", "d_reg_name_sh_num['Caucasus']='12'\n", "d_reg_name_sh_num['CentralAsia']='13'\n", "d_reg_name_sh_num['SouthAsiaWest']='14'\n", "d_reg_name_sh_num['SouthAsiaEast']='15'\n", "d_reg_name_sh_num['LowLatitudes']='16'\n", "d_reg_name_sh_num['SouthernAndes']='17'\n", "d_reg_name_sh_num['NewZealand']='18'\n", "d_reg_name_sh_num['Antarctic']='19'" ] }, { "cell_type": "code", "execution_count": 3, "id": "a80e4d57-03b1-45a5-938a-625fdc713e00", "metadata": {}, "outputs": [], "source": [ "pd_actual_runs = pd.read_csv('GloGEM_GlacierMIP3_actual_runs_Lily_list.csv')\n", "pd_actual_runs = pd_actual_runs.melt()\n", "pd_actual_runs['value'] = pd_actual_runs.value.astype(str)\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "ca1b449e-d944-4987-ac51-6d6e8d127ec6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mv: cannot stat 'Huss_rgi*': No such file or directory\n" ] } ], "source": [ "mv Huss_rgi* duplicates/." ] }, { "cell_type": "code", "execution_count": 5, "id": "d5e6ff5c-8555-4c93-a02c-a1bc52b8e116", "metadata": {}, "outputs": [], "source": [ "rgi_regs = []\n", "for rgi_reg in np.arange(1,20,1):\n", " if rgi_reg < 10:\n", " rgi_reg = '0'+str(rgi_reg)\n", " else:\n", " rgi_reg = str(rgi_reg)\n", " rgi_regs.append(rgi_reg)" ] }, { "cell_type": "code", "execution_count": 6, "id": "f4c12c03-26db-4cb1-85e6-8b94c2ad542f", "metadata": {}, "outputs": [], "source": [ "run=False\n", "if run:\n", " rgi_reg_l = []\n", " gcm_l = []\n", " ssp_l = []\n", " period_l = []\n", "\n", " for ssp in ['ssp126','ssp370','ssp585']:\n", " for gcm in ['gfdl-esm4','ipsl-cm6a-lr','mpi-esm1-2-hr','mri-esm2-0','ukesm1-0-ll']:\n", "\n", " if ssp == 'ssp126':\n", " periods=['1851-1870','1901-1920','1951-1970','1995-2014','2021-2040','2041-2060','2061-2080','2081-2100']\n", " else:\n", " periods=['2021-2040','2041-2060','2061-2080','2081-2100']\n", "\n", " for period in periods:\n", " for region in rgi_regs:\n", "\n", " rgi_reg_l.append(region)\n", " gcm_l.append(gcm)\n", " if period in ['1851-1870','1901-1920','1951-1970','1995-2014']:\n", " ssp_t = 'hist'\n", " else:\n", " ssp_t = ssp\n", " ssp_l.append(ssp_t)\n", " period_l.append(period)\n", "\n", " pd_actual_runs['gcm'] = gcm_l\n", " pd_actual_runs['ssp'] = ssp_l\n", " pd_actual_runs['rgi_reg'] = rgi_reg_l\n", " pd_actual_runs['period'] = period_l\n", " \n", "else:\n", " for l in pd_actual_runs.index:\n", " val = pd_actual_runs['value'].loc[l] #:\n", " if val =='nan':\n", " pass\n", " else:\n", " _,_,_,_,_,region,gcm,ssp,period_long=val.split('/')\n", " pd_actual_runs.loc[l,'region'] = region\n", " pd_actual_runs.loc[l,'rgi_reg'] = d_reg_name_sh_num[region]\n", " pd_actual_runs.loc[l,'gcm'] = gcm\n", " pd_actual_runs.loc[l,'period'] = period_long[:-7]\n", " if period_long[:-7] in ['1851-1870','1901-1920','1951-1970','1995-2014']:\n", " pd_actual_runs.loc[l,'ssp'] = 'hist'\n", " else:\n", " pd_actual_runs.loc[l,'ssp'] = ssp\n", "\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "27a323be-3b40-4bf6-bf72-b9a8136b0c9c", "metadata": {}, "outputs": [], "source": [ "def get_path_d(folder_path='/home/www/lschuster/glacierMIP3_analysis',\n", " rgi_reg='01',\n", " model_author='Rounce',\n", " period='1851-1870', gcm='gfdl-esm4', ssp='hist'):\n", " ''' output the regional simulation file path for the respective rgi_reg, model_author, period, gcm & ssp '''\n", " if (model_author == 'Rounce'):\n", " path = f'/home/www/drounce/regional-filled-norunaway/{rgi_reg}/{model_author}_rgi{rgi_reg}_sum_{period}_{gcm}_{ssp}.nc'\n", " elif ('OGGM' in model_author):\n", " # was corrected for missing glaciers ... (by Lilian Schuster with method of Fabien)\n", " if 'OGGM' in model_author and ssp == 'hist':\n", " ssp = 'historical'\n", " path = f'{folder_path}/{model_author[:4]}/regional_filled/{rgi_reg}/{model_author}_rgi{rgi_reg}_sum_{period}_{gcm}_{ssp}_filled.nc'\n", " else:\n", " path = f'{folder_path}/{model_author[:4]}/regional_filled/{rgi_reg}/{model_author}_rgi{rgi_reg}_sum_{period}_{gcm}_{ssp}_filled.nc'\n", " else:\n", " if gcm=='ipsl-cm6a-lr':\n", " if model_author=='Compagno':\n", " gcm='psl_cm6a-lr' # no 'i' and '_' instead of '-'\n", " if model_author == 'Huss':\n", " # also Huss has some spelling \n", " gcm = 'ipsl_cm6a-lr'\n", " if model_author=='Kraaijenbrink':\n", " if ssp == 'hist':\n", " ssp='historical'\n", " path = f'{folder_path}/{model_author}/duplicates/{model_author}_rgi{rgi_reg}_sum_{period}_{gcm}_{ssp}.nc'\n", " return path\n", "\n" ] }, { "cell_type": "code", "execution_count": 23, "id": "16df2021-4d29-4592-b789-e2b0e373d536", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/scratch_net/vierzack06_fourth/mhuss/GlacierMIP/Alaska/ukesm1-0-ll/ssp585/2081-2100_stable'" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd_sel = pd_actual_runs.loc[pd_actual_runs.gcm=='ukesm1-0-ll']\n", "pd_sel.loc[pd_sel.rgi_reg=='01'].value.iloc[7]\n" ] }, { "cell_type": "code", "execution_count": 27, "id": "62378c63-0bd1-4810-8907-990d68ebfcb5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/scratch_net/vierzack06_fourth/mhuss/GlacierMIP/Alaska/ukesm1-0-ll/ssp585/2021-2040_stable'" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd_sel.loc[pd_sel.rgi_reg=='01'].value.iloc[4]" ] }, { "cell_type": "code", "execution_count": 33, "id": "fc09175c-2ab2-4450-b65e-5f26c1cdd4f6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/scratch_net/vierzack06_fourth/mhuss/GlacierMIP/ArcticCanadaS/ukesm1-0-ll/ssp126/1851-1870_stable'" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd_sel.loc[pd_sel.rgi_reg=='04'].value.iloc[0]\n" ] }, { "cell_type": "code", "execution_count": 34, "id": "8912a7c3-4730-400e-9c29-b42089ee67f7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/scratch_net/vierzack06_fourth/mhuss/GlacierMIP/ArcticCanadaS/ukesm1-0-ll/ssp126/1995-2014_stable'" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd_sel.loc[pd_sel.rgi_reg=='04'].value.iloc[3]\n" ] }, { "cell_type": "code", "execution_count": 35, "id": "bc713e1e-ccfd-467b-8c27-b7bace2ddf3e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/scratch_net/vierzack06_fourth/mhuss/GlacierMIP/Greenland/ukesm1-0-ll/ssp126/1851-1870_stable'" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd_sel.loc[pd_sel.rgi_reg=='05'].value.iloc[0]\n" ] }, { "cell_type": "code", "execution_count": 36, "id": "62336182-87de-4937-b37c-249ff455b202", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/scratch_net/vierzack06_fourth/mhuss/GlacierMIP/Greenland/ukesm1-0-ll/ssp126/1995-2014_stable'" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd_sel.loc[pd_sel.rgi_reg=='05'].value.iloc[3]\n" ] }, { "cell_type": "code", "execution_count": null, "id": "ad8d4246-1fdd-4893-aa85-02b3bc4234f9", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "d6792030-70ae-47c3-be19-9223546a1250", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 9, "id": "bb72dc51-9d5c-4474-aba9-50f6537ce881", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "960" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# amount of working runs\n", "len(pd_actual_runs.where(pd_actual_runs.value != 'nan').dropna())" ] }, { "cell_type": "code", "execution_count": 10, "id": "baf2b3c2-680c-4e8b-95d3-22fa5b222920", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "560" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# amount of missing runs\n", "len(pd_actual_runs.where(pd_actual_runs.value == 'nan').dropna(how='all'))" ] }, { "cell_type": "code", "execution_count": 11, "id": "b45f4f6a-c416-4658-af20-72daffae9849", "metadata": {}, "outputs": [], "source": [ "pd_working_runs = pd_actual_runs.where(pd_actual_runs.value != 'nan').dropna()" ] }, { "cell_type": "code", "execution_count": 12, "id": "c5887e10-1919-40a7-8ca7-ba7500b27830", "metadata": {}, "outputs": [], "source": [ "import shutil\n", "for j in pd_working_runs.index:\n", " f = get_path_d(rgi_reg=pd_working_runs.loc[j]['rgi_reg'],\n", " model_author='Huss', period=pd_working_runs.loc[j]['period'],\n", " gcm=pd_working_runs.loc[j]['gcm'], ssp = pd_working_runs.loc[j]['ssp']) \n", "\n", " # absolute path\n", " src_path = f\n", " dst_path = '/home/www/lschuster/glacierMIP3_analysis/Huss'\n", " shutil.move(src_path, dst_path)" ] }, { "cell_type": "code", "execution_count": 13, "id": "fa93513f-1945-4a0d-be81-816ac8b43828", "metadata": {}, "outputs": [], "source": [ "import os\n", "\n", "_, _, files = next(os.walk(\"/home/www/lschuster/glacierMIP3_analysis/Huss/duplicates\"))\n", "file_count = len(files)\n", "assert file_count == len(pd_actual_runs.where(pd_actual_runs.value == 'nan').dropna(how='all'))" ] }, { "cell_type": "code", "execution_count": null, "id": "7852a20a-30bf-4eba-ae9e-e7752c1f8888", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "4946eafd-77ec-4f58-b058-7e5e6183a188", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "54c4ee79-378e-4143-84a9-dd3795e580bb", "metadata": { "tags": [] }, "source": [ "### OLD" ] }, { "cell_type": "code", "execution_count": null, "id": "d1fc4af6-e82b-414b-ba68-9ebcb04d538d", "metadata": {}, "outputs": [], "source": [ "for l in pd_actual_runs.index:\n", " val = pd_actual_runs['value'].loc[l] #:\n", " assert val[-16:-7] == pd_actual_runs['period'].loc[l]\n", " assert pd_actual_runs['gcm'].loc[l] in val\n", " if pd_actual_runs['ssp'].loc[l] == 'hist':\n", " ssp_test = 'ssp126'\n", " else:\n", " ssp_test = pd_actual_runs['ssp'].loc[l]\n", " assert val[-23:-17] == ssp_test\n", " a = d_reg_num_name[pd_actual_runs['rgi_reg'].loc[l]].split()\n", " assert a[0] in val\n", " if len(a)>1:\n", " assert a[1] in val\n", "\n" ] } ], "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.10.8" } }, "nbformat": 4, "nbformat_minor": 5 }