{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Code for Fig. 4, fig. S4, and Table 1 of\n", "#### Yeager et al., 2021: An Outsized Role for the Labrador Sea in the Multidecadal Variability of the Atlantic Overturning Circulation, *Science Advances*." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import xarray as xr \n", "import numpy as np \n", "import cftime\n", "import copy\n", "import scipy.stats\n", "from scipy import signal,stats\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def open_POPdataset(x):\n", " ds = xr.open_dataset(x,decode_times=False)\n", " attrs=ds.time.attrs.copy()\n", " ds = ds.assign_coords(time=ds.time.values - 15)\n", " ds.time.attrs = attrs\n", " ds = xr.decode_cf(ds)\n", " return ds" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "datadir = '/glade/scratch/yeager/YeagerEA_ScienceAdvances_2021/'\n", "f2_hr = f'{datadir}/B.E.13.B1850C5.ne120_t12.sehires38.003.sunway_02.pop.h.020001_050012.MOCsig.nc'\n", "f3_hr = f'{datadir}/B.E.13.B1850C5.ne120_t12.sehires38.003.sunway_02.pop.h.020001_050012.WMF.nc'\n", "ds2_hr = open_POPdataset(f2_hr) \n", "ds3_hr = open_POPdataset(f3_hr) " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Add combined regions to WMF datasets\n", "ds3_hr1 = ds3_hr.isel(wmf_region=[1,2,3,5,6]).sum('wmf_region')\n", "ds3_hr1 = ds3_hr1.assign_coords({'wmf_region':'ALL minus LAB (7)'})\n", "ds3_hr2 = ds3_hr.isel(wmf_region=[1,2,3]).sum('wmf_region')\n", "ds3_hr2 = ds3_hr2.assign_coords({'wmf_region':'IRM+SPG (8)'})\n", "ds3_hr3 = ds3_hr.isel(wmf_region=[1,4]).sum('wmf_region')\n", "ds3_hr3 = ds3_hr3.assign_coords({'wmf_region':'LAB+SPG-west (9)'})\n", "ds3_hr4 = ds3_hr.isel(wmf_region=[2,3]).sum('wmf_region')\n", "ds3_hr4 = ds3_hr4.assign_coords({'wmf_region':'IRM+SPG-east (10)'})\n", "ds3_hr5 = ds3_hr.isel(wmf_region=[2,3,5,6]).sum('wmf_region')\n", "ds3_hr5 = ds3_hr5.assign_coords({'wmf_region':'ALL minus LAB+SPG-west (11)'})\n", "ds3_hr = xr.concat([ds3_hr,ds3_hr1,ds3_hr2,ds3_hr3,ds3_hr4,ds3_hr5],dim='wmf_region')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.DataArray 'wmf_region' (wmf_region: 12)>\n", "array(['All (>0)', 'SPG_west (1)', 'SPG_east (2)', 'Irminger Sea (3)',\n", " 'Labrador Sea (4)', 'Norwegian Sea (5)', 'Arctic (6)',\n", " 'ALL minus LAB (7)', 'IRM+SPG (8)', 'LAB+SPG-west (9)',\n", " 'IRM+SPG-east (10)', 'ALL minus LAB+SPG-west (11)'], dtype=object)\n", "Coordinates:\n", " * wmf_region (wmf_region) object 'All (>0)' ... 'ALL minus LAB+SPG-west (11)'
array(['All (>0)', 'SPG_west (1)', 'SPG_east (2)', 'Irminger Sea (3)',\n", " 'Labrador Sea (4)', 'Norwegian Sea (5)', 'Arctic (6)',\n", " 'ALL minus LAB (7)', 'IRM+SPG (8)', 'LAB+SPG-west (9)',\n", " 'IRM+SPG-east (10)', 'ALL minus LAB+SPG-west (11)'], dtype=object)
array(['All (>0)', 'SPG_west (1)', 'SPG_east (2)', 'Irminger Sea (3)',\n", " 'Labrador Sea (4)', 'Norwegian Sea (5)', 'Arctic (6)',\n", " 'ALL minus LAB (7)', 'IRM+SPG (8)', 'LAB+SPG-west (9)',\n", " 'IRM+SPG-east (10)', 'ALL minus LAB+SPG-west (11)'], dtype=object)
<xarray.DataArray 'wmf_region' (wmf_region: 12)>\n", "array(['All (>0)', 'SPG_west (1)', 'SPG_east (2)', 'Irminger Sea (3)',\n", " 'Labrador Sea (4)', 'Norwegian Sea (5)', 'Arctic (6)',\n", " 'ALL minus LAB (7)', 'IRM+SPG (8)', 'LAB+SPG-west (9)',\n", " 'IRM+SPG-east (10)', 'ALL minus LAB+SPG-west (11)'], dtype=object)\n", "Coordinates:\n", " * wmf_region (wmf_region) object 'All (>0)' ... 'ALL minus LAB+SPG-west (11)'
array(['All (>0)', 'SPG_west (1)', 'SPG_east (2)', 'Irminger Sea (3)',\n", " 'Labrador Sea (4)', 'Norwegian Sea (5)', 'Arctic (6)',\n", " 'ALL minus LAB (7)', 'IRM+SPG (8)', 'LAB+SPG-west (9)',\n", " 'IRM+SPG-east (10)', 'ALL minus LAB+SPG-west (11)'], dtype=object)
array(['All (>0)', 'SPG_west (1)', 'SPG_east (2)', 'Irminger Sea (3)',\n", " 'Labrador Sea (4)', 'Norwegian Sea (5)', 'Arctic (6)',\n", " 'ALL minus LAB (7)', 'IRM+SPG (8)', 'LAB+SPG-west (9)',\n", " 'IRM+SPG-east (10)', 'ALL minus LAB+SPG-west (11)'], dtype=object)
<xarray.DataArray 'wmf_region' (wmf_region: 12)>\n", "array(['All (>0)', 'SPG_west (1)', 'SPG_east (2)', 'Irminger Sea (3)',\n", " 'Labrador Sea (4)', 'Norwegian Sea (5)', 'Arctic (6)',\n", " 'ALL minus LAB (7)', 'IRM+SPG (8)', 'LAB+SPG-west (9)',\n", " 'IRM+SPG-east (10)', 'ALL minus LAB+SPG-west (11)'], dtype=object)\n", "Coordinates:\n", " * wmf_region (wmf_region) object 'All (>0)' ... 'ALL minus LAB+SPG-west (11)'
array(['All (>0)', 'SPG_west (1)', 'SPG_east (2)', 'Irminger Sea (3)',\n", " 'Labrador Sea (4)', 'Norwegian Sea (5)', 'Arctic (6)',\n", " 'ALL minus LAB (7)', 'IRM+SPG (8)', 'LAB+SPG-west (9)',\n", " 'IRM+SPG-east (10)', 'ALL minus LAB+SPG-west (11)'], dtype=object)
array(['All (>0)', 'SPG_west (1)', 'SPG_east (2)', 'Irminger Sea (3)',\n", " 'Labrador Sea (4)', 'Norwegian Sea (5)', 'Arctic (6)',\n", " 'ALL minus LAB (7)', 'IRM+SPG (8)', 'LAB+SPG-west (9)',\n", " 'IRM+SPG-east (10)', 'ALL minus LAB+SPG-west (11)'], dtype=object)