{ "cells": [ { "cell_type": "code", "execution_count": 16, "id": "93c7189b", "metadata": {}, "outputs": [], "source": [ "# Import libraries\n", "import xarray as xr\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib.cm as cm\n", "from matplotlib.colors import ListedColormap\n", "import cartopy.crs as ccrs\n", "import cartopy.feature as cfeature\n", "import netCDF4 as nc\n", "from scipy.io import readsav\n", "from scipy import stats\n", "from glob import glob\n", "import os\n", "from matplotlib.patches import Rectangle\n", "from matplotlib.lines import Line2D\n", "from matplotlib.legend_handler import HandlerTuple\n", "from matplotlib.legend_handler import HandlerBase" ] }, { "cell_type": "code", "execution_count": null, "id": "744f9b38", "metadata": {}, "outputs": [], "source": [ "#Set paths\n", "dir_data = '/Users/jzhang/Documents/Data/'\n", "dir_proj = '/Users/jzhang/Documents/Projects/Albedo_Symmetry_WE/codes/'\n", "dir_fig = '/Users/jzhang/Documents/Projects/Albedo_Symmetry_WE/figs/paper_figs/'\n", "\n", "#Load data\n", "ebaf_01_24 = xr.open_mfdataset(glob(dir_data+'CERES/EBAFed421/EBAF_decomposition*_01-24.nc')) #processed\n", "\n", "ocean = xr.open_dataset(dir_data+'CERES/SYN1deg/CERES_SYN1deg-Month_Terra-Aqua-NOAA20_Ed4.2_Subset_200003-202512.nc').sel(time=slice(np.datetime64('2001-01-01'),np.datetime64('2024-12-31')))\n", "oce_frac = ocean['aux_ocean_mon']/100. " ] }, { "cell_type": "code", "execution_count": null, "id": "ad5df2e1", "metadata": {}, "outputs": [], "source": [ "# area weighted averaging\n", "z_weights = np.genfromtxt(dir_data+'CERES/zone_weights_lou.txt',skip_header=17,skip_footer=1)[:,1]\n", "\n", "def geoavg(data,hemi='both',div=180):\n", "\n", " lon, lat = np.meshgrid(ocean.lon,ocean.lat)\n", " zlat = z_weights[:,np.newaxis]*np.ones(data.shape) #Oblate spheroid weights\n", " \n", " mask = lat[:,0]<1e10\n", " mask2 = lon[0,:]<1e10\n", " \n", " #Hemisphere mask\n", " if hemi == 'NH':\n", " mask = lat[:,0]>0\n", " elif hemi == 'SH':\n", " mask = lat[:,0]<0\n", "\n", " if hemi == 'WH':\n", " mask2 = (lon[0,:]