{ "cells": [ { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import netCDF4 as nc\n", "import matplotlib.pyplot as plt\n", "from salishsea_tools import viz_tools, places,geo_tools, bloomdrivers as bd, evaltools as et\n", "import xarray as xr\n", "import datetime as dt\n", "from scipy.stats import sem\n", "import scipy.stats as stats\n", "\n", "\n", "%matplotlib inline" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "from IPython.display import HTML\n", "\n", "HTML('''\n", "\n", "
''')\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load watermasks for pre- and post-September 2011 HRDPS grid" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "Watermask1 = xr.open_dataset('/ocean/ksuchy/MOAD/NEMO-forcing/grid/GEM_watermask_for_gem_files_pre_22sep11.nc')\n", "Watermask2 = xr.open_dataset('/ocean/ksuchy/MOAD/NEMO-forcing/grid/GEM_watermask_for_gem_files_22sep11_onward.nc')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# get grid corners (use 2015, pre Sept 22, 2011 and post Sept 22 2011 files)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "float32 u_wind(time_counter, y, x)\n", " _FillValue: nan\n", " level: 10 m above surface\n", " long_name: U-Component of Wind\n", " standard_name: x_wind\n", " units: m/s\n", " ioos_category: wind speed and direction\n", "unlimited dimensions: time_counter\n", "current shape = (24, 266, 256)\n", "filling on\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax=plt.subplots(1,4,figsize=(15,3))\n", "with nc.Dataset('/data/eolson/results/MEOPAR/NEMO-forcing-new/grid/mesh_mask201702.nc') as mesh:\n", " navlon=mesh.variables['nav_lon'][:,:]\n", " navlat=mesh.variables['nav_lat'][:,:]\n", " tmask=mesh.variables['tmask'][0,:,:,:]\n", " ax[0].pcolormesh(mesh.variables['tmask'][0,0,450:550,110:350])\n", "with nc.Dataset('/results/forcing/atmospheric/GEM2.5/operational/ops_y2015m03d01.nc') as g:\n", " ops_lon=g.variables['nav_lon'][:,:]\n", " ops_lat=g.variables['nav_lat'][:,:]\n", " ax[1].pcolormesh((g.variables['u_wind'][0,119:140,143:163]**2+\\\n", " g.variables['v_wind'][0,119:140,143:163]**2)**(1/2))\n", " #.pcolormesh(g.variables[])\n", "with nc.Dataset('/results/forcing/atmospheric/GEM2.5/gemlam/gemlam_y2011m09d21.nc') as g: \n", " gl1_lon=g.variables['nav_lon'][:,:]\n", " gl1_lat=g.variables['nav_lat'][:,:]\n", " ax[2].pcolormesh((g.variables['u_wind'][0,119:140,143:163]**2+\\\n", " g.variables['v_wind'][0,119:140,143:163]**2)**(1/2))\n", "with nc.Dataset('/results/forcing/atmospheric/GEM2.5/gemlam/gemlam_y2011m09d22.nc') as g: \n", " gl2_lon=g.variables['nav_lon'][:,:]\n", " gl2_lat=g.variables['nav_lat'][:,:]\n", " ax[3].pcolormesh((g.variables['u_wind'][0,119:140,143:163]**2+\\\n", " g.variables['v_wind'][0,119:140,143:163]**2)**(1/2))\n", " print(g.variables['u_wind'])" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "ll_lon=navlon[450,110]\n", "lr_lon=navlon[450,350]\n", "ul_lon=navlon[550,110]\n", "ur_lon=navlon[550,350]\n", "ll_lat=navlat[450,110]\n", "lr_lat=navlat[450,350]\n", "ul_lat=navlat[550,110]\n", "ur_lat=navlat[550,350]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(130, 118) (144, 160) (150, 111) (163, 153)\n" ] } ], "source": [ "(ll_j_ops,ll_i_ops)=geo_tools.find_closest_model_point(ll_lon,ll_lat,ops_lon-360,ops_lat,grid='GEM2.5')\n", "(lr_j_ops,lr_i_ops)=geo_tools.find_closest_model_point(lr_lon,lr_lat,ops_lon-360,ops_lat,grid='GEM2.5')\n", "(ul_j_ops,ul_i_ops)=geo_tools.find_closest_model_point(ul_lon,ul_lat,ops_lon-360,ops_lat,grid='GEM2.5')\n", "(ur_j_ops,ur_i_ops)=geo_tools.find_closest_model_point(ur_lon,ur_lat,ops_lon-360,ops_lat,grid='GEM2.5')\n", "print((ll_j_ops,ll_i_ops),(lr_j_ops,lr_i_ops),(ul_j_ops,ul_i_ops),(ur_j_ops,ur_i_ops))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(123, 117) (141, 157) (142, 111) (156, 150)\n" ] } ], "source": [ "(ll_j_gl1,ll_i_gl1)=geo_tools.find_closest_model_point(ll_lon,ll_lat,gl1_lon-360,gl1_lat,grid='GEM2.5')\n", "(lr_j_gl1,lr_i_gl1)=geo_tools.find_closest_model_point(lr_lon,lr_lat,gl1_lon-360,gl2_lat,grid='GEM2.5')\n", "(ul_j_gl1,ul_i_gl1)=geo_tools.find_closest_model_point(ul_lon,ul_lat,gl1_lon-360,gl1_lat,grid='GEM2.5')\n", "(ur_j_gl1,ur_i_gl1)=geo_tools.find_closest_model_point(ur_lon,ur_lat,gl1_lon-360,gl1_lat,grid='GEM2.5')\n", "print((ll_j_gl1,ll_i_gl1),(lr_j_gl1,lr_i_gl1),(ul_j_gl1,ul_i_gl1),(ur_j_gl1,ur_i_gl1))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(127, 121) (141, 160) (146, 114) (159, 153)\n" ] } ], "source": [ "(ll_j_gl2,ll_i_gl2)=geo_tools.find_closest_model_point(ll_lon,ll_lat,gl2_lon-360,gl2_lat,grid='GEM2.5')\n", "(lr_j_gl2,lr_i_gl2)=geo_tools.find_closest_model_point(lr_lon,lr_lat,gl2_lon-360,gl2_lat,grid='GEM2.5')\n", "(ul_j_gl2,ul_i_gl2)=geo_tools.find_closest_model_point(ul_lon,ul_lat,gl2_lon-360,gl2_lat,grid='GEM2.5')\n", "(ur_j_gl2,ur_i_gl2)=geo_tools.find_closest_model_point(ur_lon,ur_lat,gl2_lon-360,gl2_lat,grid='GEM2.5')\n", "print((ll_j_gl2,ll_i_gl2),(lr_j_gl2,lr_i_gl2),(ul_j_gl2,ul_i_gl2),(ur_j_gl2,ur_i_gl2))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# ops: use j: 130:163, i: 111:160\n", "# gl1: use j: 123:156, i: 111:157\n", "# gl2: use j: 127:159, i: 114:160" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "def getWindVars(day):\n", " if day>dt.datetime(2014,12,1): #or day.year>2014\n", " opsdir='/results/forcing/atmospheric/GEM2.5/operational/'\n", " nam_fmt='ops'\n", " jlims=(130,163)\n", " ilims=(111,160)\n", " elif day]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax=plt.subplots(1,1,figsize=(4,5))\n", "ax.pcolormesh(navlon[350:850,100:398],navlat[350:850,100:398],tmask[0,350:850,100:398],shading='auto')\n", "cl=ax.contour(navlon[350:850,100:398],navlat[350:850,100:398],tmask[0,350:850,100:398],[.5],colors='w')\n", "plt.plot(cl.allsegs[0][0][:,0],cl.allsegs[0][0][:,1],'r-')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax=plt.subplots(1,1,figsize=(3,3))\n", "lens=list()\n", "modlines=list()\n", "for ii in range(0,len(cl.allsegs[0])):\n", " lens.append(len(cl.allsegs[0][ii][:,1]))\n", " #if np.min(cl.allsegs[0][ii][:,1])<49.2 and np.max(cl.allsegs[0][ii][:,1])>50:\n", " if len(cl.allsegs[0][ii][:,1])>100:\n", " #print(ii)\n", " ax.plot(cl.allsegs[0][ii][:,0],cl.allsegs[0][ii][:,1],'r-')\n", " modlines.append((cl.allsegs[0][ii][:,0],cl.allsegs[0][ii][:,1]))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for (lons,lats) in modlines:\n", " plt.plot(lons,lats,'k-')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "opslines=list()\n", "for (lons,lats) in modlines:\n", " x=np.array([geo_tools.find_closest_model_point(lon,lat,ops_lon-360,ops_lat,grid='GEM2.5') \\\n", " for lat, lon in zip(lats,lons)])\n", " opslines.append((x[:,0],x[:,1]))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "gl1lines=list()\n", "for (lons,lats) in modlines:\n", " x=np.array([geo_tools.find_closest_model_point(lon,lat,gl1_lon-360,gl1_lat,grid='GEM2.5') \\\n", " for lat, lon in zip(lats,lons)])\n", " gl1lines.append((x[:,0],x[:,1]))" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "gl2lines=list()\n", "for (lons,lats) in modlines:\n", " x=np.array([geo_tools.find_closest_model_point(lon,lat,gl2_lon-360,gl2_lat,grid='GEM2.5') \\\n", " for lat, lon in zip(lats,lons)])\n", " gl2lines.append((x[:,0],x[:,1]))" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "# extract march mean wind from one of each type of file:\n", "## ops, 2015\n", "year=2015\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "U3ops=(fu**2+fv**2)**(1/2) ## use 3/2 to get wind speed cubed\n", "U3opsmean=np.mean(U3ops,0)\n", "\n", "## gl1, 2007\n", "year=2007\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "U3gl1=(fu**2+fv**2)**(1/2)\n", "U3gl1mean=np.mean(U3gl1,0)\n", "\n", "## gl2, 2012\n", "year=2012\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "U3gl2=(fu**2+fv**2)**(1/2)\n", "U3gl2mean=np.mean(U3gl2,0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test to make sure the land mask works" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "year=2008\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,2),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1]))for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "test=(fu**2+fv**2)**(1/2)\n", "testmean=np.mean(test,0)\n", "\n", "#\n", "#.where(HRDPS.landmask)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "test2008=np.nanmean(testmean)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(24, 33, 56)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fu.shape" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(24, 266, 256)" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fs[0]['u_wind'].shape" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(266, 256)" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Watermask1.mask.shape" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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Bg0ahMOHD5v+99ZVGSY5daVbbaSmpiIhIcHtXJubm1FaWmr4cxVCYMaMGXjrrbewdetWpKamuj1v5nPzRAgBu91u+nObMGECysvLsW/fPtc2bNgwTJ06Ffv27cO1115r6vO7mN1ux8GDB5GYmGj631uX1WlLMRTWr18vQkJCxO9//3vxr3/9S8yePVtERkaKY8eOdXbXvFZXVyc++ugj8dFHHwkAYvny5eKjjz4Sx48fF0II8fzzz4uYmBjx1ltvifLycnHfffeJxMREUVtb28k9v7z//u//FjExMaKkpEScOnXKtZ07d87VxqznJoQQ8+bNE9u3bxcVFRVi//79Yv78+cJisYgtW7YIIcx9bioXr9YTwrzn98QTT4iSkhJx9OhRsWvXLnHbbbcJm83meu8w63l1ZYZKTkII8etf/1qkpKSI0NBQ8f3vf9+1RNlstm3bJgBI27Rp04QQ55e3Llq0SCQkJAir1SrGjBkjysvLO7fTbaA6JwBizZo1rjZmPTchhHj44Yddf39XX321mDBhgisxCWHuc1O5NDmZ9fzuuecekZiYKEJCQkRSUpKYMmWKOHDggOt5s55XV8ZbZhARkeEY5poTERHRBUxORERkOExORERkOExORERkOExORERkOExORERkOExORERkOExORERkOExORERkOExORERkOExORERkOExORERkOP8f2GJZMOhBBVQAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax=plt.subplots(1,1,figsize=(5,5))\n", "vmin=0\n", "vmax=10\n", "\n", "iax=ax\n", "iax.set_title('2008')\n", "m=iax.pcolormesh(testmean,vmin=vmin, vmax=vmax)\n", "fig.colorbar(m,ax=iax)\n", "#for (jj,ii) in gl1lines:\n", "# iax.plot(ii-96,jj-114,'r-')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## January" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "# extract march mean wind from one of each type of file:\n", "\n", "## gl1, 2007\n", "#year=2007\n", "#day=dt.datetime(year,1,1)\n", "#opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "#flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", "# flen=1,ftype='None',tres=24);\n", "#fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "#fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "#fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "#gl12007=(fu**2+fv**2)**(3/2)\n", "#margl12007mean=np.mean(gl12007,0)\n", "\n", "## gl1, 2008\n", "year=2008\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_gl12008=(fu**2+fv**2)**(1/2)\n", "jan_gl12008mean=np.mean(jan_gl12008,0)\n", "\n", "## gl1, 2007\n", "year=2009\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_gl12009=(fu**2+fv**2)**(1/2)\n", "jan_gl12009mean=np.mean(jan_gl12009,0)\n", "\n", "## gl1, 2007\n", "year=2010\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_gl12010=(fu**2+fv**2)**(1/2)\n", "jan_gl12010mean=np.mean(jan_gl12010,0)\n", "\n", "## gl1, 2007\n", "year=2011\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_gl12011=(fu**2+fv**2)**(1/2)\n", "jan_gl12011mean=np.mean(jan_gl12011,0)\n", "\n", "## gl1, 2007\n", "year=2012\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_gl22012=(fu**2+fv**2)**(1/2)\n", "jan_gl22012mean=np.mean(jan_gl22012,0)\n", "\n", "## gl1, 2007\n", "year=2013\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_gl22013=(fu**2+fv**2)**(1/2)\n", "jan_gl22013mean=np.mean(jan_gl22013,0)\n", "\n", "## gl1, 2007\n", "year=2014\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_gl22014=(fu**2+fv**2)**(1/2)\n", "jan_gl22014mean=np.mean(jan_gl22014,0)\n", "\n", "## gl1, 2007\n", "year=2015\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_ops2015=(fu**2+fv**2)**(1/2)\n", "jan_ops2015mean=np.mean(jan_ops2015,0)\n", "\n", "## ops, 2015\n", "year=2016\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_ops2016=(fu**2+fv**2)**(1/2)\n", "jan_ops2016mean=np.mean(jan_ops2016,0)\n", "\n", "## gl1, 2007\n", "year=2017\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_ops2017=(fu**2+fv**2)**(1/2)\n", "jan_ops2017mean=np.mean(jan_ops2017,0)\n", "\n", "## gl1, 2007\n", "year=2018\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_ops2018=(fu**2+fv**2)**(1/2)\n", "jan_ops2018mean=np.mean(jan_ops2018,0)\n", "\n", "## gl1, 2007\n", "year=2019\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_ops2019=(fu**2+fv**2)**(1/2)\n", "jan_ops2019mean=np.mean(jan_ops2019,0)\n", "\n", "## gl1, 2007\n", "year=2020\n", "day=dt.datetime(year,1,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,1,1),dt.datetime(year,1,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jan_ops2020=(fu**2+fv**2)**(1/2)\n", "jan_ops2020mean=np.mean(jan_ops2020,0)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray (y: 33, x: 49)>\n",
       "dask.array<mean_agg-aggregate, shape=(33, 49), dtype=float32, chunksize=(33, 49), chunktype=numpy.ndarray>\n",
       "Coordinates:\n",
       "  * x        (x) float64 2.775e+05 2.8e+05 2.825e+05 ... 3.95e+05 3.975e+05\n",
       "  * y        (y) float64 3.25e+05 3.275e+05 3.3e+05 ... 4e+05 4.025e+05 4.05e+05
" ], "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " * x (x) float64 2.775e+05 2.8e+05 2.825e+05 ... 3.95e+05 3.975e+05\n", " * y (y) float64 3.25e+05 3.275e+05 3.3e+05 ... 4e+05 4.025e+05 4.05e+05" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "jan_ops2020mean" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "#Jan2007=np.nanmean(jan_gl12007mean)\n", "Jan2008=np.nanmean(jan_gl12008mean)\n", "Jan2009=np.nanmean(jan_gl12009mean)\n", "Jan2010=np.nanmean(jan_gl12010mean)\n", "Jan2011=np.nanmean(jan_gl12011mean)\n", "Jan2012=np.nanmean(jan_gl22012mean)\n", "Jan2013=np.nanmean(jan_gl22013mean)\n", "Jan2014=np.nanmean(jan_gl22014mean)\n", "Jan2015=np.nanmean(jan_ops2015mean)\n", "Jan2016=np.nanmean(jan_ops2016mean)\n", "Jan2017=np.nanmean(jan_ops2017mean)\n", "Jan2018=np.nanmean(jan_ops2018mean)\n", "Jan2019=np.nanmean(jan_ops2019mean)\n", "Jan2020=np.nanmean(jan_ops2020mean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## February" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "# extract feb mean wind from one of each type of file:\n", "\n", "year=2007\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,28),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_gl12007=(fu**2+fv**2)**(1/2)\n", "feb_gl12007mean=np.mean(feb_gl12007,0)\n", "\n", "\n", "year=2008\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,29),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_gl12008=(fu**2+fv**2)**(1/2)\n", "feb_gl12008mean=np.mean(feb_gl12008,0)\n", "\n", "\n", "year=2009\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,28),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_gl12009=(fu**2+fv**2)**(1/2)\n", "feb_gl12009mean=np.mean(feb_gl12009,0)\n", "\n", "\n", "year=2010\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,28),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_gl12010=(fu**2+fv**2)**(1/2)\n", "feb_gl12010mean=np.mean(feb_gl12010,0)\n", "\n", "\n", "year=2011\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,28),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_gl12011=(fu**2+fv**2)**(1/2)\n", "feb_gl12011mean=np.mean(feb_gl12011,0)\n", "\n", "\n", "year=2012\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,29),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_gl22012=(fu**2+fv**2)**(1/2)\n", "feb_gl22012mean=np.mean(feb_gl22012,0)\n", "\n", "\n", "year=2013\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,28),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_gl22013=(fu**2+fv**2)**(1/2)\n", "feb_gl22013mean=np.mean(feb_gl22013,0)\n", "\n", "\n", "year=2014\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,28),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_gl22014=(fu**2+fv**2)**(1/2)\n", "feb_gl22014mean=np.mean(feb_gl22014,0)\n", "\n", "\n", "year=2015\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,28),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_ops2015=(fu**2+fv**2)**(1/2)\n", "feb_ops2015mean=np.mean(feb_ops2015,0)\n", "\n", "\n", "year=2016\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,29),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_ops2016=(fu**2+fv**2)**(1/2)\n", "feb_ops2016mean=np.mean(feb_ops2016,0)\n", "\n", "\n", "year=2017\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,28),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_ops2017=(fu**2+fv**2)**(1/2)\n", "feb_ops2017mean=np.mean(feb_ops2017,0)\n", "\n", "\n", "year=2018\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,28),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_ops2018=(fu**2+fv**2)**(1/2)\n", "feb_ops2018mean=np.mean(feb_ops2018,0)\n", "\n", "\n", "year=2019\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,28),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_ops2019=(fu**2+fv**2)**(1/2)\n", "feb_ops2019mean=np.mean(feb_ops2019,0)\n", "\n", "\n", "year=2020\n", "day=dt.datetime(year,2,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,2,1),dt.datetime(year,2,29),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "feb_ops2020=(fu**2+fv**2)**(1/2)\n", "feb_ops2020mean=np.mean(feb_ops2020,0)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "Feb2007=np.nanmean(feb_gl12007mean)\n", "Feb2008=np.nanmean(feb_gl12008mean)\n", "Feb2009=np.nanmean(feb_gl12009mean)\n", "Feb2010=np.nanmean(feb_gl12010mean)\n", "Feb2011=np.nanmean(feb_gl12011mean)\n", "Feb2012=np.nanmean(feb_gl22012mean)\n", "Feb2013=np.nanmean(feb_gl22013mean)\n", "Feb2014=np.nanmean(feb_gl22014mean)\n", "Feb2015=np.nanmean(feb_ops2015mean)\n", "Feb2016=np.nanmean(feb_ops2016mean)\n", "Feb2017=np.nanmean(feb_ops2017mean)\n", "Feb2018=np.nanmean(feb_ops2018mean)\n", "Feb2019=np.nanmean(feb_ops2019mean)\n", "Feb2020=np.nanmean(feb_ops2020mean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## March" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "# extract march mean wind from one of each type of file:\n", "\n", "## gl1, 2007\n", "year=2007\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_gl12007=(fu**2+fv**2)**(1/2)\n", "mar_gl12007mean=np.mean(mar_gl12007,0)\n", "\n", "## gl1, 2008\n", "year=2008\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_gl12008=(fu**2+fv**2)**(1/2)\n", "mar_gl12008mean=np.mean(mar_gl12008,0)\n", "\n", "## gl1, 2007\n", "year=2009\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_gl12009=(fu**2+fv**2)**(1/2)\n", "mar_gl12009mean=np.mean(mar_gl12009,0)\n", "\n", "## gl1, 2007\n", "year=2010\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_gl12010=(fu**2+fv**2)**(1/2)\n", "mar_gl12010mean=np.mean(mar_gl12010,0)\n", "\n", "## gl1, 2007\n", "year=2011\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_gl12011=(fu**2+fv**2)**(1/2)\n", "mar_gl12011mean=np.mean(mar_gl12011,0)\n", "\n", "## gl1, 2007\n", "year=2012\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_gl22012=(fu**2+fv**2)**(1/2)\n", "mar_gl22012mean=np.mean(mar_gl22012,0)\n", "\n", "## gl1, 2007\n", "year=2013\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_gl22013=(fu**2+fv**2)**(1/2)\n", "mar_gl22013mean=np.mean(mar_gl22013,0)\n", "\n", "## gl1, 2007\n", "year=2014\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_gl22014=(fu**2+fv**2)**(1/2)\n", "mar_gl22014mean=np.mean(mar_gl22014,0)\n", "\n", "## gl1, 2007\n", "year=2015\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_ops2015=(fu**2+fv**2)**(1/2)\n", "mar_ops2015mean=np.mean(mar_ops2015,0)\n", "\n", "## ops, 2015\n", "year=2016\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_ops2016=(fu**2+fv**2)**(1/2)\n", "mar_ops2016mean=np.mean(mar_ops2016,0)\n", "\n", "## gl1, 2007\n", "year=2017\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_ops2017=(fu**2+fv**2)**(1/2)\n", "mar_ops2017mean=np.mean(mar_ops2017,0)\n", "\n", "## gl1, 2007\n", "year=2018\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_ops2018=(fu**2+fv**2)**(1/2)\n", "mar_ops2018mean=np.mean(mar_ops2018,0)\n", "\n", "## gl1, 2007\n", "year=2019\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_ops2019=(fu**2+fv**2)**(1/2)\n", "mar_ops2019mean=np.mean(mar_ops2019,0)\n", "\n", "## gl1, 2007\n", "year=2020\n", "day=dt.datetime(year,3,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,3,1),dt.datetime(year,3,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "mar_ops2020=(fu**2+fv**2)**(1/2)\n", "mar_ops2020mean=np.mean(mar_ops2020,0)\n" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "Mar2007=np.nanmean(mar_gl12007mean)\n", "Mar2008=np.nanmean(mar_gl12008mean)\n", "Mar2009=np.nanmean(mar_gl12009mean)\n", "Mar2010=np.nanmean(mar_gl12010mean)\n", "Mar2011=np.nanmean(mar_gl12011mean)\n", "Mar2012=np.nanmean(mar_gl22012mean)\n", "Mar2013=np.nanmean(mar_gl22013mean)\n", "Mar2014=np.nanmean(mar_gl22014mean)\n", "Mar2015=np.nanmean(mar_ops2015mean)\n", "Mar2016=np.nanmean(mar_ops2016mean)\n", "Mar2017=np.nanmean(mar_ops2017mean)\n", "Mar2018=np.nanmean(mar_ops2018mean)\n", "Mar2019=np.nanmean(mar_ops2019mean)\n", "Mar2020=np.nanmean(mar_ops2020mean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## April" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "# extract feb mean wind from one of each type of file:\n", "\n", "year=2007\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_gl12007=(fu**2+fv**2)**(1/2)\n", "apr_gl12007mean=np.mean(apr_gl12007,0)\n", "\n", "\n", "year=2008\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_gl12008=(fu**2+fv**2)**(1/2)\n", "apr_gl12008mean=np.mean(apr_gl12008,0)\n", "\n", "\n", "year=2009\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_gl12009=(fu**2+fv**2)**(1/2)\n", "apr_gl12009mean=np.mean(apr_gl12009,0)\n", "\n", "\n", "year=2010\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_gl12010=(fu**2+fv**2)**(1/2)\n", "apr_gl12010mean=np.mean(apr_gl12010,0)\n", "\n", "\n", "year=2011\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_gl12011=(fu**2+fv**2)**(1/2)\n", "apr_gl12011mean=np.mean(apr_gl12011,0)\n", "\n", "\n", "year=2012\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_gl22012=(fu**2+fv**2)**(1/2)\n", "apr_gl22012mean=np.mean(apr_gl22012,0)\n", "\n", "\n", "year=2013\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_gl22013=(fu**2+fv**2)**(1/2)\n", "apr_gl22013mean=np.mean(apr_gl22013,0)\n", "\n", "\n", "year=2014\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_gl22014=(fu**2+fv**2)**(1/2)\n", "apr_gl22014mean=np.mean(apr_gl22014,0)\n", "\n", "\n", "year=2015\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_ops2015=(fu**2+fv**2)**(1/2)\n", "apr_ops2015mean=np.mean(apr_ops2015,0)\n", "\n", "\n", "year=2016\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_ops2016=(fu**2+fv**2)**(1/2)\n", "apr_ops2016mean=np.mean(apr_ops2016,0)\n", "\n", "\n", "year=2017\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_ops2017=(fu**2+fv**2)**(1/2)\n", "apr_ops2017mean=np.mean(apr_ops2017,0)\n", "\n", "\n", "year=2018\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_ops2018=(fu**2+fv**2)**(1/2)\n", "apr_ops2018mean=np.mean(apr_ops2018,0)\n", "\n", "\n", "year=2019\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_ops2019=(fu**2+fv**2)**(1/2)\n", "apr_ops2019mean=np.mean(apr_ops2019,0)\n", "\n", "\n", "year=2020\n", "day=dt.datetime(year,4,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,4,1),dt.datetime(year,4,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "apr_ops2020=(fu**2+fv**2)**(1/2)\n", "apr_ops2020mean=np.mean(apr_ops2020,0)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "Apr2007=np.nanmean(apr_gl12007mean)\n", "Apr2008=np.nanmean(apr_gl12008mean)\n", "Apr2009=np.nanmean(apr_gl12009mean)\n", "Apr2010=np.nanmean(apr_gl12010mean)\n", "Apr2011=np.nanmean(apr_gl12011mean)\n", "Apr2012=np.nanmean(apr_gl22012mean)\n", "Apr2013=np.nanmean(apr_gl22013mean)\n", "Apr2014=np.nanmean(apr_gl22014mean)\n", "Apr2015=np.nanmean(apr_ops2015mean)\n", "Apr2016=np.nanmean(apr_ops2016mean)\n", "Apr2017=np.nanmean(apr_ops2017mean)\n", "Apr2018=np.nanmean(apr_ops2018mean)\n", "Apr2019=np.nanmean(apr_ops2019mean)\n", "Apr2020=np.nanmean(apr_ops2020mean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## May" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "# extract feb mean wind from one of each type of file:\n", "\n", "year=2007\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_gl12007=(fu**2+fv**2)**(1/2)\n", "may_gl12007mean=np.mean(may_gl12007,0)\n", "\n", "\n", "year=2008\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_gl12008=(fu**2+fv**2)**(1/2)\n", "may_gl12008mean=np.mean(may_gl12008,0)\n", "\n", "\n", "year=2009\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_gl12009=(fu**2+fv**2)**(1/2)\n", "may_gl12009mean=np.mean(may_gl12009,0)\n", "\n", "\n", "year=2010\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_gl12010=(fu**2+fv**2)**(1/2)\n", "may_gl12010mean=np.mean(may_gl12010,0)\n", "\n", "\n", "year=2011\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_gl12011=(fu**2+fv**2)**(1/2)\n", "may_gl12011mean=np.mean(may_gl12011,0)\n", "\n", "\n", "year=2012\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_gl22012=(fu**2+fv**2)**(1/2)\n", "may_gl22012mean=np.mean(may_gl22012,0)\n", "\n", "\n", "year=2013\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_gl22013=(fu**2+fv**2)**(1/2)\n", "may_gl22013mean=np.mean(may_gl22013,0)\n", "\n", "\n", "year=2014\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_gl22014=(fu**2+fv**2)**(1/2)\n", "may_gl22014mean=np.mean(may_gl22014,0)\n", "\n", "\n", "year=2015\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_ops2015=(fu**2+fv**2)**(1/2)\n", "may_ops2015mean=np.mean(may_ops2015,0)\n", "\n", "\n", "year=2016\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_ops2016=(fu**2+fv**2)**(1/2)\n", "may_ops2016mean=np.mean(may_ops2016,0)\n", "\n", "\n", "year=2017\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_ops2017=(fu**2+fv**2)**(1/2)\n", "may_ops2017mean=np.mean(may_ops2017,0)\n", "\n", "\n", "year=2018\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_ops2018=(fu**2+fv**2)**(1/2)\n", "may_ops2018mean=np.mean(may_ops2018,0)\n", "\n", "\n", "year=2019\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_ops2019=(fu**2+fv**2)**(1/2)\n", "may_ops2019mean=np.mean(may_ops2019,0)\n", "\n", "\n", "year=2020\n", "day=dt.datetime(year,5,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,5,1),dt.datetime(year,5,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "may_ops2020=(fu**2+fv**2)**(1/2)\n", "may_ops2020mean=np.mean(may_ops2020,0)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "May2007=np.nanmean(may_gl12007mean)\n", "May2008=np.nanmean(may_gl12008mean)\n", "May2009=np.nanmean(may_gl12009mean)\n", "May2010=np.nanmean(may_gl12010mean)\n", "May2011=np.nanmean(may_gl12011mean)\n", "May2012=np.nanmean(may_gl22012mean)\n", "May2013=np.nanmean(may_gl22013mean)\n", "May2014=np.nanmean(may_gl22014mean)\n", "May2015=np.nanmean(may_ops2015mean)\n", "May2016=np.nanmean(may_ops2016mean)\n", "May2017=np.nanmean(may_ops2017mean)\n", "May2018=np.nanmean(may_ops2018mean)\n", "May2019=np.nanmean(may_ops2019mean)\n", "May2020=np.nanmean(may_ops2020mean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## June" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "# extract feb mean wind from one of each type of file:\n", "\n", "year=2007\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_gl12007=(fu**2+fv**2)**(1/2)\n", "jun_gl12007mean=np.mean(jun_gl12007,0)\n", "\n", "\n", "year=2008\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_gl12008=(fu**2+fv**2)**(1/2)\n", "jun_gl12008mean=np.mean(jun_gl12008,0)\n", "\n", "\n", "year=2009\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_gl12009=(fu**2+fv**2)**(1/2)\n", "jun_gl12009mean=np.mean(jun_gl12009,0)\n", "\n", "\n", "year=2010\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_gl12010=(fu**2+fv**2)**(1/2)\n", "jun_gl12010mean=np.mean(jun_gl12010,0)\n", "\n", "\n", "year=2011\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_gl12011=(fu**2+fv**2)**(1/2)\n", "jun_gl12011mean=np.mean(jun_gl12011,0)\n", "\n", "\n", "year=2012\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_gl22012=(fu**2+fv**2)**(1/2)\n", "jun_gl22012mean=np.mean(jun_gl22012,0)\n", "\n", "\n", "year=2013\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_gl22013=(fu**2+fv**2)**(1/2)\n", "jun_gl22013mean=np.mean(jun_gl22013,0)\n", "\n", "\n", "year=2014\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_gl22014=(fu**2+fv**2)**(1/2)\n", "jun_gl22014mean=np.mean(jun_gl22014,0)\n", "\n", "\n", "year=2015\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_ops2015=(fu**2+fv**2)**(1/2)\n", "jun_ops2015mean=np.mean(jun_ops2015,0)\n", "\n", "\n", "year=2016\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_ops2016=(fu**2+fv**2)**(1/2)\n", "jun_ops2016mean=np.mean(jun_ops2016,0)\n", "\n", "\n", "year=2017\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_ops2017=(fu**2+fv**2)**(1/2)\n", "jun_ops2017mean=np.mean(jun_ops2017,0)\n", "\n", "\n", "year=2018\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_ops2018=(fu**2+fv**2)**(1/2)\n", "jun_ops2018mean=np.mean(jun_ops2018,0)\n", "\n", "\n", "year=2019\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_ops2019=(fu**2+fv**2)**(1/2)\n", "jun_ops2019mean=np.mean(jun_ops2019,0)\n", "\n", "\n", "year=2020\n", "day=dt.datetime(year,6,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,6,1),dt.datetime(year,6,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jun_ops2020=(fu**2+fv**2)**(1/2)\n", "jun_ops2020mean=np.mean(jun_ops2020,0)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "Jun2007=np.nanmean(jun_gl12007mean)\n", "Jun2008=np.nanmean(jun_gl12008mean)\n", "Jun2009=np.nanmean(jun_gl12009mean)\n", "Jun2010=np.nanmean(jun_gl12010mean)\n", "Jun2011=np.nanmean(jun_gl12011mean)\n", "Jun2012=np.nanmean(jun_gl22012mean)\n", "Jun2013=np.nanmean(jun_gl22013mean)\n", "Jun2014=np.nanmean(jun_gl22014mean)\n", "Jun2015=np.nanmean(jun_ops2015mean)\n", "Jun2016=np.nanmean(jun_ops2016mean)\n", "Jun2017=np.nanmean(jun_ops2017mean)\n", "Jun2018=np.nanmean(jun_ops2018mean)\n", "Jun2019=np.nanmean(jun_ops2019mean)\n", "Jun2020=np.nanmean(jun_ops2020mean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## July" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "# extract feb mean wind from one of each type of file:\n", "\n", "year=2007\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_gl12007=(fu**2+fv**2)**(1/2)\n", "jul_gl12007mean=np.mean(jul_gl12007,0)\n", "\n", "\n", "year=2008\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_gl12008=(fu**2+fv**2)**(1/2)\n", "jul_gl12008mean=np.mean(jul_gl12008,0)\n", "\n", "\n", "year=2009\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_gl12009=(fu**2+fv**2)**(1/2)\n", "jul_gl12009mean=np.mean(jul_gl12009,0)\n", "\n", "\n", "year=2010\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_gl12010=(fu**2+fv**2)**(1/2)\n", "jul_gl12010mean=np.mean(jul_gl12010,0)\n", "\n", "\n", "year=2011\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_gl12011=(fu**2+fv**2)**(1/2)\n", "jul_gl12011mean=np.mean(jul_gl12011,0)\n", "\n", "\n", "year=2012\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_gl22012=(fu**2+fv**2)**(1/2)\n", "jul_gl22012mean=np.mean(jul_gl22012,0)\n", "\n", "\n", "year=2013\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_gl22013=(fu**2+fv**2)**(1/2)\n", "jul_gl22013mean=np.mean(jul_gl22013,0)\n", "\n", "\n", "year=2014\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_gl22014=(fu**2+fv**2)**(1/2)\n", "jul_gl22014mean=np.mean(jul_gl22014,0)\n", "\n", "\n", "year=2015\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_ops2015=(fu**2+fv**2)**(1/2)\n", "jul_ops2015mean=np.mean(jul_ops2015,0)\n", "\n", "\n", "year=2016\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_ops2016=(fu**2+fv**2)**(1/2)\n", "jul_ops2016mean=np.mean(jul_ops2016,0)\n", "\n", "\n", "year=2017\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_ops2017=(fu**2+fv**2)**(1/2)\n", "jul_ops2017mean=np.mean(jul_ops2017,0)\n", "\n", "\n", "year=2018\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_ops2018=(fu**2+fv**2)**(1/2)\n", "jul_ops2018mean=np.mean(jul_ops2018,0)\n", "\n", "\n", "year=2019\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_ops2019=(fu**2+fv**2)**(1/2)\n", "jul_ops2019mean=np.mean(jul_ops2019,0)\n", "\n", "\n", "year=2020\n", "day=dt.datetime(year,7,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,7,1),dt.datetime(year,7,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "jul_ops2020=(fu**2+fv**2)**(1/2)\n", "jul_ops2020mean=np.mean(jul_ops2020,0)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "Jul2007=np.nanmean(jul_gl12007mean)\n", "Jul2008=np.nanmean(jul_gl12008mean)\n", "Jul2009=np.nanmean(jul_gl12009mean)\n", "Jul2010=np.nanmean(jul_gl12010mean)\n", "Jul2011=np.nanmean(jul_gl12011mean)\n", "Jul2012=np.nanmean(jul_gl22012mean)\n", "Jul2013=np.nanmean(jul_gl22013mean)\n", "Jul2014=np.nanmean(jul_gl22014mean)\n", "Jul2015=np.nanmean(jul_ops2015mean)\n", "Jul2016=np.nanmean(jul_ops2016mean)\n", "Jul2017=np.nanmean(jul_ops2017mean)\n", "Jul2018=np.nanmean(jul_ops2018mean)\n", "Jul2019=np.nanmean(jul_ops2019mean)\n", "Jul2020=np.nanmean(jul_ops2020mean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## August" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "# extract feb mean wind from one of each type of file:\n", "\n", "year=2007\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_gl12007=(fu**2+fv**2)**(1/2)\n", "aug_gl12007mean=np.mean(aug_gl12007,0)\n", "\n", "\n", "year=2008\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_gl12008=(fu**2+fv**2)**(1/2)\n", "aug_gl12008mean=np.mean(aug_gl12008,0)\n", "\n", "\n", "year=2009\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_gl12009=(fu**2+fv**2)**(1/2)\n", "aug_gl12009mean=np.mean(aug_gl12009,0)\n", "\n", "\n", "year=2010\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_gl12010=(fu**2+fv**2)**(1/2)\n", "aug_gl12010mean=np.mean(aug_gl12010,0)\n", "\n", "\n", "year=2011\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_gl12011=(fu**2+fv**2)**(1/2)\n", "aug_gl12011mean=np.mean(aug_gl12011,0)\n", "\n", "\n", "year=2012\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_gl22012=(fu**2+fv**2)**(1/2)\n", "aug_gl22012mean=np.mean(aug_gl22012,0)\n", "\n", "\n", "year=2013\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_gl22013=(fu**2+fv**2)**(1/2)\n", "aug_gl22013mean=np.mean(aug_gl22013,0)\n", "\n", "\n", "year=2014\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_gl22014=(fu**2+fv**2)**(1/2)\n", "aug_gl22014mean=np.mean(aug_gl22014,0)\n", "\n", "\n", "year=2015\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_ops2015=(fu**2+fv**2)**(1/2)\n", "aug_ops2015mean=np.mean(aug_ops2015,0)\n", "\n", "\n", "year=2016\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_ops2016=(fu**2+fv**2)**(1/2)\n", "aug_ops2016mean=np.mean(aug_ops2016,0)\n", "\n", "\n", "year=2017\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_ops2017=(fu**2+fv**2)**(1/2)\n", "aug_ops2017mean=np.mean(aug_ops2017,0)\n", "\n", "\n", "year=2018\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_ops2018=(fu**2+fv**2)**(1/2)\n", "aug_ops2018mean=np.mean(aug_ops2018,0)\n", "\n", "\n", "year=2019\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_ops2019=(fu**2+fv**2)**(1/2)\n", "aug_ops2019mean=np.mean(aug_ops2019,0)\n", "\n", "\n", "year=2020\n", "day=dt.datetime(year,8,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,8,1),dt.datetime(year,8,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "aug_ops2020=(fu**2+fv**2)**(1/2)\n", "aug_ops2020mean=np.mean(aug_ops2020,0)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "Aug2007=np.nanmean(aug_gl12007mean)\n", "Aug2008=np.nanmean(aug_gl12008mean)\n", "Aug2009=np.nanmean(aug_gl12009mean)\n", "Aug2010=np.nanmean(aug_gl12010mean)\n", "Aug2011=np.nanmean(aug_gl12011mean)\n", "Aug2012=np.nanmean(aug_gl22012mean)\n", "Aug2013=np.nanmean(aug_gl22013mean)\n", "Aug2014=np.nanmean(aug_gl22014mean)\n", "Aug2015=np.nanmean(aug_ops2015mean)\n", "Aug2016=np.nanmean(aug_ops2016mean)\n", "Aug2017=np.nanmean(aug_ops2017mean)\n", "Aug2018=np.nanmean(aug_ops2018mean)\n", "Aug2019=np.nanmean(aug_ops2019mean)\n", "Aug2020=np.nanmean(aug_ops2020mean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## September" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "# extract feb mean wind from one of each type of file:\n", "\n", "year=2007\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_gl12007=(fu**2+fv**2)**(1/2)\n", "sep_gl12007mean=np.mean(sep_gl12007,0)\n", "\n", "\n", "year=2008\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_gl12008=(fu**2+fv**2)**(1/2)\n", "sep_gl12008mean=np.mean(sep_gl12008,0)\n", "\n", "\n", "year=2009\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_gl12009=(fu**2+fv**2)**(1/2)\n", "sep_gl12009mean=np.mean(sep_gl12009,0)\n", "\n", "\n", "year=2010\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_gl12010=(fu**2+fv**2)**(1/2)\n", "sep_gl12010mean=np.mean(sep_gl12010,0)\n", "\n", "\n", "year=2011\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_gl12011=(fu**2+fv**2)**(1/2)\n", "sep_gl12011mean=np.mean(sep_gl12011,0)\n", "\n", "\n", "year=2012\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_gl22012=(fu**2+fv**2)**(1/2)\n", "sep_gl22012mean=np.mean(sep_gl22012,0)\n", "\n", "\n", "year=2013\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_gl22013=(fu**2+fv**2)**(1/2)\n", "sep_gl22013mean=np.mean(sep_gl22013,0)\n", "\n", "\n", "year=2014\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_gl22014=(fu**2+fv**2)**(1/2)\n", "sep_gl22014mean=np.mean(sep_gl22014,0)\n", "\n", "\n", "year=2015\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_ops2015=(fu**2+fv**2)**(1/2)\n", "sep_ops2015mean=np.mean(sep_ops2015,0)\n", "\n", "\n", "year=2016\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_ops2016=(fu**2+fv**2)**(1/2)\n", "sep_ops2016mean=np.mean(sep_ops2016,0)\n", "\n", "\n", "year=2017\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_ops2017=(fu**2+fv**2)**(1/2)\n", "sep_ops2017mean=np.mean(sep_ops2017,0)\n", "\n", "\n", "year=2018\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_ops2018=(fu**2+fv**2)**(1/2)\n", "sep_ops2018mean=np.mean(sep_ops2018,0)\n", "\n", "\n", "year=2019\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_ops2019=(fu**2+fv**2)**(1/2)\n", "sep_ops2019mean=np.mean(sep_ops2019,0)\n", "\n", "\n", "year=2020\n", "day=dt.datetime(year,9,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,9,1),dt.datetime(year,9,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "sep_ops2020=(fu**2+fv**2)**(1/2)\n", "sep_ops2020mean=np.mean(sep_ops2020,0)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "Sep2007=np.nanmean(sep_gl12007mean)\n", "Sep2008=np.nanmean(sep_gl12008mean)\n", "Sep2009=np.nanmean(sep_gl12009mean)\n", "Sep2010=np.nanmean(sep_gl12010mean)\n", "Sep2011=np.nanmean(sep_gl12011mean)\n", "Sep2012=np.nanmean(sep_gl22012mean)\n", "Sep2013=np.nanmean(sep_gl22013mean)\n", "Sep2014=np.nanmean(sep_gl22014mean)\n", "Sep2015=np.nanmean(sep_ops2015mean)\n", "Sep2016=np.nanmean(sep_ops2016mean)\n", "Sep2017=np.nanmean(sep_ops2017mean)\n", "Sep2018=np.nanmean(sep_ops2018mean)\n", "Sep2019=np.nanmean(sep_ops2019mean)\n", "Sep2020=np.nanmean(sep_ops2020mean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## October" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "# extract feb mean wind from one of each type of file:\n", "\n", "year=2007\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_gl12007=(fu**2+fv**2)**(1/2)\n", "oct_gl12007mean=np.mean(oct_gl12007,0)\n", "\n", "\n", "year=2008\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_gl12008=(fu**2+fv**2)**(1/2)\n", "oct_gl12008mean=np.mean(oct_gl12008,0)\n", "\n", "\n", "year=2009\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_gl12009=(fu**2+fv**2)**(1/2)\n", "oct_gl12009mean=np.mean(oct_gl12009,0)\n", "\n", "\n", "year=2010\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_gl12010=(fu**2+fv**2)**(1/2)\n", "oct_gl12010mean=np.mean(oct_gl12010,0)\n", "\n", "\n", "year=2011\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_gl12011=(fu**2+fv**2)**(1/2)\n", "oct_gl12011mean=np.mean(oct_gl12011,0)\n", "\n", "\n", "year=2012\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_gl22012=(fu**2+fv**2)**(1/2)\n", "oct_gl22012mean=np.mean(oct_gl22012,0)\n", "\n", "\n", "year=2013\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_gl22013=(fu**2+fv**2)**(1/2)\n", "oct_gl22013mean=np.mean(oct_gl22013,0)\n", "\n", "\n", "year=2014\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_gl22014=(fu**2+fv**2)**(1/2)\n", "oct_gl22014mean=np.mean(oct_gl22014,0)\n", "\n", "\n", "year=2015\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_ops2015=(fu**2+fv**2)**(1/2)\n", "oct_ops2015mean=np.mean(oct_ops2015,0)\n", "\n", "\n", "year=2016\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_ops2016=(fu**2+fv**2)**(1/2)\n", "oct_ops2016mean=np.mean(oct_ops2016,0)\n", "\n", "\n", "year=2017\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_ops2017=(fu**2+fv**2)**(1/2)\n", "oct_ops2017mean=np.mean(oct_ops2017,0)\n", "\n", "\n", "year=2018\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_ops2018=(fu**2+fv**2)**(1/2)\n", "oct_ops2018mean=np.mean(oct_ops2018,0)\n", "\n", "\n", "year=2019\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_ops2019=(fu**2+fv**2)**(1/2)\n", "oct_ops2019mean=np.mean(oct_ops2019,0)\n", "\n", "\n", "year=2020\n", "day=dt.datetime(year,10,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,10,1),dt.datetime(year,10,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "oct_ops2020=(fu**2+fv**2)**(1/2)\n", "oct_ops2020mean=np.mean(oct_ops2020,0)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "Oct2007=np.nanmean(oct_gl12007mean)\n", "Oct2008=np.nanmean(oct_gl12008mean)\n", "Oct2009=np.nanmean(oct_gl12009mean)\n", "Oct2010=np.nanmean(oct_gl12010mean)\n", "Oct2011=np.nanmean(oct_gl12011mean)\n", "Oct2012=np.nanmean(oct_gl22012mean)\n", "Oct2013=np.nanmean(oct_gl22013mean)\n", "Oct2014=np.nanmean(oct_gl22014mean)\n", "Oct2015=np.nanmean(oct_ops2015mean)\n", "Oct2016=np.nanmean(oct_ops2016mean)\n", "Oct2017=np.nanmean(oct_ops2017mean)\n", "Oct2018=np.nanmean(oct_ops2018mean)\n", "Oct2019=np.nanmean(oct_ops2019mean)\n", "Oct2020=np.nanmean(oct_ops2020mean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## November" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "# extract feb mean wind from one of each type of file:\n", "\n", "year=2007\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_gl12007=(fu**2+fv**2)**(1/2)\n", "nov_gl12007mean=np.mean(nov_gl12007,0)\n", "\n", "\n", "year=2008\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_gl12008=(fu**2+fv**2)**(1/2)\n", "nov_gl12008mean=np.mean(nov_gl12008,0)\n", "\n", "\n", "year=2009\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_gl12009=(fu**2+fv**2)**(1/2)\n", "nov_gl12009mean=np.mean(nov_gl12009,0)\n", "\n", "\n", "year=2010\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_gl12010=(fu**2+fv**2)**(1/2)\n", "nov_gl12010mean=np.mean(nov_gl12010,0)\n", "\n", "\n", "year=2011\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_gl12011=(fu**2+fv**2)**(1/2)\n", "nov_gl12011mean=np.mean(nov_gl12011,0)\n", "\n", "\n", "year=2012\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_gl22012=(fu**2+fv**2)**(1/2)\n", "nov_gl22012mean=np.mean(nov_gl22012,0)\n", "\n", "\n", "year=2013\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_gl22013=(fu**2+fv**2)**(1/2)\n", "nov_gl22013mean=np.mean(nov_gl22013,0)\n", "\n", "\n", "year=2014\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,18),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_gl22014=(fu**2+fv**2)**(1/2)\n", "nov_gl22014mean=np.mean(nov_gl22014,0)\n", "\n", "\n", "year=2015\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_ops2015=(fu**2+fv**2)**(1/2)\n", "nov_ops2015mean=np.mean(nov_ops2015,0)\n", "\n", "\n", "year=2016\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_ops2016=(fu**2+fv**2)**(1/2)\n", "nov_ops2016mean=np.mean(nov_ops2016,0)\n", "\n", "\n", "year=2017\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_ops2017=(fu**2+fv**2)**(1/2)\n", "nov_ops2017mean=np.mean(nov_ops2017,0)\n", "\n", "\n", "year=2018\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_ops2018=(fu**2+fv**2)**(1/2)\n", "nov_ops2018mean=np.mean(nov_ops2018,0)\n", "\n", "\n", "year=2019\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_ops2019=(fu**2+fv**2)**(1/2)\n", "nov_ops2019mean=np.mean(nov_ops2019,0)\n", "\n", "\n", "year=2020\n", "day=dt.datetime(year,11,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,11,1),dt.datetime(year,11,30),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "nov_ops2020=(fu**2+fv**2)**(1/2)\n", "nov_ops2020mean=np.mean(nov_ops2020,0)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "Nov2007=np.nanmean(nov_gl12007mean)\n", "Nov2008=np.nanmean(nov_gl12008mean)\n", "Nov2009=np.nanmean(nov_gl12009mean)\n", "Nov2010=np.nanmean(nov_gl12010mean)\n", "Nov2011=np.nanmean(nov_gl12011mean)\n", "Nov2012=np.nanmean(nov_gl22012mean)\n", "Nov2013=np.nanmean(nov_gl22013mean)\n", "Nov2014=np.nanmean(nov_gl22014mean)\n", "Nov2015=np.nanmean(nov_ops2015mean)\n", "Nov2016=np.nanmean(nov_ops2016mean)\n", "Nov2017=np.nanmean(nov_ops2017mean)\n", "Nov2018=np.nanmean(nov_ops2018mean)\n", "Nov2019=np.nanmean(nov_ops2019mean)\n", "Nov2020=np.nanmean(nov_ops2020mean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## December" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "# extract feb mean wind from one of each type of file:\n", "\n", "year=2007\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_gl12007=(fu**2+fv**2)**(1/2)\n", "dec_gl12007mean=np.mean(dec_gl12007,0)\n", "\n", "\n", "year=2008\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_gl12008=(fu**2+fv**2)**(1/2)\n", "dec_gl12008mean=np.mean(dec_gl12008,0)\n", "\n", "\n", "year=2009\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_gl12009=(fu**2+fv**2)**(1/2)\n", "dec_gl12009mean=np.mean(dec_gl12009,0)\n", "\n", "\n", "year=2010\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_gl12010=(fu**2+fv**2)**(1/2)\n", "dec_gl12010mean=np.mean(dec_gl12010,0)\n", "\n", "\n", "year=2011\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_gl12011=(fu**2+fv**2)**(1/2)\n", "dec_gl12011mean=np.mean(dec_gl12011,0)\n", "\n", "\n", "year=2012\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_gl22012=(fu**2+fv**2)**(1/2)\n", "dec_gl22012mean=np.mean(dec_gl22012,0)\n", "\n", "\n", "year=2013\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_gl22013=(fu**2+fv**2)**(1/2)\n", "dec_gl22013mean=np.mean(dec_gl22013,0)\n", "\n", "\n", "#year=2014\n", "#day=dt.datetime(year,12,1)\n", "#opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "#flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", "# flen=1,ftype='None',tres=24);\n", "#fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "#fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "#fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "#dec_ops2014=(fu**2+fv**2)**(3/2)\n", "#dec_ops2014mean=np.mean(dec_ops2014,0)\n", "\n", "\n", "year=2015\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_ops2015=(fu**2+fv**2)**(1/2)\n", "dec_ops2015mean=np.mean(dec_ops2015,0)\n", "\n", "\n", "year=2016\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_ops2016=(fu**2+fv**2)**(1/2)\n", "dec_ops2016mean=np.mean(dec_ops2016,0)\n", "\n", "\n", "year=2017\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_ops2017=(fu**2+fv**2)**(1/2)\n", "dec_ops2017mean=np.mean(dec_ops2017,0)\n", "\n", "\n", "year=2018\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_ops2018=(fu**2+fv**2)**(1/2)\n", "dec_ops2018mean=np.mean(dec_ops2018,0)\n", "\n", "\n", "year=2019\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_ops2019=(fu**2+fv**2)**(1/2)\n", "dec_ops2019mean=np.mean(dec_ops2019,0)\n", "\n", "\n", "year=2020\n", "day=dt.datetime(year,12,1)\n", "opsdir, namfmt, jlims, ilims = getWindVars(day)\n", "flist=et.index_model_files(dt.datetime(year,12,1),dt.datetime(year,12,31),opsdir,namfmt,\n", " flen=1,ftype='None',tres=24);\n", "fs=[xr.open_dataset(ii,chunks='auto') for ii in flist['paths']]\n", "fu=xr.concat([ii['u_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "fv=xr.concat([ii['v_wind'].where(Watermask1.mask).isel(x=slice(ilims[0],ilims[1]),y=slice(jlims[0],jlims[1])) for ii in fs],\"time_counter\")\n", "dec_ops2020=(fu**2+fv**2)**(1/2)\n", "dec_ops2020mean=np.mean(dec_ops2020,0)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "Dec2007=np.nanmean(dec_gl12007mean)\n", "Dec2008=np.nanmean(dec_gl12008mean)\n", "Dec2009=np.nanmean(dec_gl12009mean)\n", "Dec2010=np.nanmean(dec_gl12010mean)\n", "Dec2011=np.nanmean(dec_gl12011mean)\n", "Dec2012=np.nanmean(dec_gl22012mean)\n", "Dec2013=np.nanmean(dec_gl22013mean)\n", "#Dec2014=np.nanmean(dec_gl22014mean)\n", "Dec2015=np.nanmean(dec_ops2015mean)\n", "Dec2016=np.nanmean(dec_ops2016mean)\n", "Dec2017=np.nanmean(dec_ops2017mean)\n", "Dec2018=np.nanmean(dec_ops2018mean)\n", "Dec2019=np.nanmean(dec_ops2019mean)\n", "Dec2020=np.nanmean(dec_ops2020mean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot the coldest and warmest years only; Supp Fig. S3" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Text(0, 0, ''),\n", " Text(1, 0, ''),\n", " Text(2, 0, ''),\n", " Text(3, 0, ''),\n", " Text(4, 0, ''),\n", " Text(5, 0, ''),\n", " Text(6, 0, ''),\n", " Text(7, 0, ''),\n", " Text(8, 0, ''),\n", " Text(9, 0, ''),\n", " Text(10, 0, ''),\n", " Text(11, 0, '')]" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABNsAAADOCAYAAAAHQQTqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAADUbklEQVR4nOydd3gUVRfG300hjSQQIAkdpElTepXepasoUgQLoCAKNkRRQOkgYEE/igZpUlSKgEhP6L13Qi8pkJCE9GTv98fLZHY2CSSQzvk9zzzJ3r07OzM75dz3nmJSSikIgiAIgiAIgiAIgiAIgvDE2GT3BgiCIAiCIAiCIAiCIAhCXkHENkEQBEEQBEEQBEEQBEHIIERsEwRBEARBEARBEARBEIQMQsQ2QRAEQRAEQRAEQRAEQcggRGwTBEEQBEEQBEEQBEEQhAxCxDZBEARBEARBEARBEARByCBEbBMEQRAEQRAEQRAEQRCEDELENkEQBEEQBEEQBEEQBEHIIERsEwRBEARBEARBEARBEIQMQsQ2QRAEQRByHdu3b4fJZMKYMWMy7TvGjBkDk8mE7du3Z9p35Bay4ngLgiAIgiDkFURsEwRBEAQh09m5cydMJhM6d+6c4vuDBg2CyWRCzZo1U3z/22+/hclkwpQpUzJzM5+IhIQEzJo1Cw0bNoS7uzvy5cuHokWLon79+hg+fDiOHDmS3ZsoCIIgCIIgZAF22b0BgiAIgiDkferXrw8XFxf4+fkhMTERtra2hvc1z6ljx44hJCQEHh4eyd4HgBYtWgAA6tWrhzNnzqBw4cJZsv2PIjExER06dMDmzZtRrFgx9OjRA0WKFMGtW7dw9uxZ/PDDD3BxcUlVTBQEQRAEQRDyDiK2CYIgCIKQ6djb26Nx48bYuHEjDh8+jLp16ya9d/v2bZw/fx4vvfQS/v77b/j6+qJ79+5J78fFxWHPnj1wc3NDrVq1AADOzs549tlns3w/UmPJkiXYvHkz2rVrh3/++Qf29vaG9wMCAnDr1q1s2jpBEARBEAQhK5EwUkEQBEEQsgTNK806B5r2+uOPP0b+/PmTvb9v3z5ER0ejadOmSR5xqeUQK1OmDMqUKYPIyEh89NFHKF68OBwcHPDcc8/hzz//THG7rl+/jtdffx0eHh7Inz8/mjVrBj8/v3Tt2549ewAA7777bjKhDQC8vb2ThEKN5s2bw2QyISYmBp999hlKliwJR0dHVK9eHb/99luq37V69Wq0atUKBQsWhKOjI6pVq4Zp06YhMTHxiftHR0fj888/T9qWatWqYe7cuek5FIIgCIIgCE894tkmCIIgCEKWoIlt27Ztw6effprUvm3bNri6uqJevXpo3Lgxtm3bZvic9lr7/KOIj49H27ZtERISgpdeeglRUVFYunQpXn31VWzYsAFt27ZN6nv79m00bNgQN2/eRLt27VCrVi2cOXMGbdq0SfP3AUgKe7148WKaP6PRo0cPHD9+HD169EB8fDyWL1+Ot99+G4GBgRg5cqSh7xdffIGJEyeiRIkSePnll+Hm5gY/Pz98+umn2LdvH1asWPHY/c1mM7p06YLNmzejevXq6NWrF+7evYvhw4en61gIgiAIgiA89ShBEARBEIQsICEhQbm6uipXV1cVHx+f1F6hQgXVvn17pZRSEyZMUCaTSQUHBye936JFCwVAHT58OKlt27ZtCoAaPXq04TtKly6tAKiuXbuq2NjYpPbNmzcrAKpdu3aG/v369VMA1Lhx4wzts2fPVgAUALVt27ZH7tvBgweVra2tcnBwUEOGDFHr169XAQEBD/1Ms2bNFABVpUoVFR4entR++/ZtVbRoUWVnZ6f8/f2T2jdu3KgAqA4dOqjIyMikdrPZrN59910FQP3555+P3d/Hx0cBUO3bt1cJCQlJ7cePH1f58uVL8XgLgiAIgiAIyZEwUkEQBEEQsgRbW1s0adIEEREROHToEADg1q1buHDhApo1awYAaNasGZRS8PX1BcB8bXv37kXBggXx/PPPp/m7ZsyYgXz58iW9btWqFUqXLo0DBw4ktcXFxWHZsmXw9PTExx9/bPj8O++8g4oVK6b5+2rXrg0fHx/kz58fs2bNwosvvghvb2+ULFkSb775ZtL+psSXX34JV1fXpNfe3t746KOPkJCQgCVLliS1//TTTwCA2bNnw9nZOandZDJh0qRJMJlM+OOPPx67/4IFCwAA48ePNxSwqF69Ovr27ZvmYyEIgiAIgvC0I2GkgiAIgiBkGS1atMD69euxbds21K9fPyk/W/PmzQEAdevWhbOzM7Zt24aXX34Ze/fuRXR0NNq3bw8bm7TNERYoUABly5ZN1l6iRImk3GoAcO7cOcTExKBly5ZwdHQ09LWxsUGjRo1w/vz5NO9b37590aNHD2zatAk7d+7EoUOHsHv3bsyfPx8LFizArFmz8O677yb7XJMmTVJtO3r0aFLb3r174eLigl9//TXF73dycsLZs2cfu/+xY8fg7OycLLectj2prUcQBEEQBEEwImKbIAiCIAhZRsuWLQGwwMHnn3+Obdu2wcXFBXXq1AHAqqUNGzZMEuHSm68NANzd3VNst7Ozg9lsTnodFhYGAPD09Eyxv5eXV5q/U8PR0RGdO3dG586dAQAxMTGYNm0avvrqK3z44Yfo1q0bvL29DZ9J6fu179a2EQBCQkKQkJCAsWPHpvr9kZGRj90/LCwMJUuWTLHf4xwLQRAEQRCEpxUJIxUEQRAEIcuoUaMGChYsiJ07dyIhIQHbt29H48aNYWenz/81b94cp06dQlBQUJLolhkJ+jVRLigoKMX3AwMDn/g7HB0dMWrUKDRt2hRxcXHYtWtXsj4pfb/23ZbCoZubGwoVKgSlVKrL5cuXH7u/u7t7ph4LQRAEQRCEpwUR2wRBEARByDJsbGzQtGlTREZGYtWqVbh48WJSvjYN7fXGjRuxd+9eFClSBFWrVs3wbalUqRIcHR1x8OBBxMTEGN4zm83YvXt3hn2Xi4tLqu/t2LEj1bYaNWoktdWvXx93797FhQsX0vSd6e3//PPPIyoqCocPH07TNgqCIAiCIAgpI2KbIAiCIAhZiualpoU3avnaNOrVqwdHR0dMnjwZMTExaN68OUwmU4ZvR758+fDqq68iKCgI3333neG9efPmpStf29KlS7F161YopZK9t3v3bmzfvh12dnZo0KBBsvfHjx+PiIiIpNeBgYGYPn067Ozs0KtXr6T2Dz74AADw1ltv4e7du8nWExAQgDNnzjx2f60IwpdffonExMSk9hMnTmDhwoWp77wgCIIgCIJgQHK2CYIgCIKQpWhi28mTJ+Hs7Iy6desa3ndwcECDBg0yNYRUY9KkSdiyZQtGjRqFnTt3ombNmjhz5gzWr1+Ptm3bYuPGjWlaz969e/H999+jePHiaNq0KUqVKoW4uDicPn0amzZtgtlsxqRJk1C8ePFkn33mmWdQrVo1vPzyy4iPj8fy5csRFBSE8ePH45lnnknq1759e3z11Vf49ttvUb58ebRv3x6lS5fG3bt3cfHiRezYsQPjxo1D5cqVH6t/v379sGTJEmzYsAE1a9ZEhw4dEBISgj/++ANt27bF2rVrM+CIC4IgCIIg5H1EbBMEQRAEIUupXr06ChcujDt37qBRo0awt7dP1qdZs2ZZIrYVLVoUu3fvxmeffYb//vsPfn5+qF27NjZt2oStW7emWWz7+OOPUa5cOWzcuBEHDhzAmjVrEB8fD29vb7z88st49913k4pDWLN8+XJ8/fXX+OOPPxAcHIwKFSpgwoQJePvtt5P1/eabb9C0aVP88MMP2LJlC+7du4dChQqhbNmyGDNmDHr37v3Y/W1sbLB69WqMHTsWixcvxvfff49y5cph+vTpqFixoohtgiAIgiAIacSkUop3EARBEARBEDKV5s2bw9fXN8XQU0EQBEEQBCH3IjnbBEEQBEEQBEEQBEEQBCGDELFNEARBEARBEARBEARBEDIIEdsEQRAEQRAEQRAEQRAEIYOQnG2CIAiCIAiCIAiCIAiCkEGIZ5sgCIIgCIIgCIIgCIIgZBAitgmCIAiCIAiCIAiCIAjZzsSJE1G3bl24urrC09MT3bp1w7lz5wx9lFIYM2YMihUrBicnJzRv3hynTp0y9ImNjcXQoUNRuHBhuLi4oEuXLrhx44ahz/nz59G1a1cULlwYbm5uaNy4MbZt25Yh+5Gnw0jNZjNu3boFV1dXmEym7N4cQRAEQRAEQRAEQRCEDEEphYiICBQrVgw2NnnDl6p9+/bo2bMn6tati4SEBHz55Zc4ceIETp8+DRcXFwDA5MmTMX78eMyfPx8VK1bEuHHj4Ofnh3PnzsHV1RUA8N577+Gff/7B/PnzUahQIXz88ccICQnBoUOHYGtrCwCoUKECKlasiIkTJ8LJyQkzZ87E/Pnz4e/vD29v7yfbEZWHuX79ugIgiyyyyCKLLLLIIossssgiiyyyyJInl+vXr2e3/JJpBAUFKQDK19dXKaWU2WxW3t7eatKkSUl9YmJilLu7u/rf//6nlFLq3r17yt7eXi1dujSpz82bN5WNjY3asGGDUkqp4OBgBUD5+fkl9QkPD1cA1ObNm594u+2Qh9EUzevXr8PNzS2bt0YQBEEQBEEQBEEQBCFjCA8PR8mSJZO0j4ehFBAVlQUblQLOzsDjBhuGhYUBADw8PAAAly9fRkBAANq2bZvUx8HBAc2aNcPu3bsxaNAgHDp0CPHx8YY+xYoVQ7Vq1bB79260a9cOhQoVQuXKlbFgwQLUqlULDg4OmD17Nry8vFC7du3H39kH5GmxTQsddXNzE7FNEARBEARBEARBEIQ8R1rSZkVFAfnzZ8HGpMD9+8CDCNB0oZTCRx99hBdeeAHVqlUDAAQEBAAAvLy8DH29vLxw9erVpD758uVDwYIFk/XRPm8ymbBp0yZ07doVrq6usLGxgZeXFzZs2IACBQqkf2OtyBtBvYIgCIIgCIIgCIIgCEKe4f3338fx48fxxx9/JHvPWmBUSj1SdLTso5TC4MGD4enpiR07dmD//v3o2rUrOnXqhNu3bz/xtudpzzZBEARBEARBEARBEISnHWdnephl13enl6FDh2LNmjXw8/NDiRIlktq1wgUBAQEoWrRoUntQUFCSt5u3tzfi4uIQGhpq8G4LCgpCo0aNAABbt27F2rVrERoamhQJ+fPPP2PTpk34/fff8fnnn6d/oy0QzzZBEARBEARBEARBEIQ8jMnEUM7sWNKTr00phffffx9///03tm7dirJlyxreL1u2LLy9vbFp06aktri4OPj6+iYJabVr14a9vb2hz+3bt3Hy5MmkPlEPEthZV3G1sbGB2WxO17FNCfFsEwRBEARBEARBEARBELKdIUOGYMmSJVi9ejVcXV2Tcqy5u7vDyckJJpMJw4YNw4QJE1ChQgVUqFABEyZMgLOzM3r16pXU9+2338bHH3+MQoUKwcPDA5988gmqV6+O1q1bAwAaNmyIggULol+/fvj666/h5OSEuXPn4vLly+jYseMT74eIbYIgCIIgCIIgCIIgCEK288svvwAAmjdvbmj38fFB//79AQCfffYZoqOjMXjwYISGhqJ+/frYuHGjoSrrjBkzYGdnh1dffRXR0dFo1aoV5s+fD1tbWwBA4cKFsWHDBnz55Zdo2bIl4uPjUbVqVaxevRrPP//8E++HSSmlnngtOZTw8HC4u7sjLCxMqpEKgiAIgiAIgiAIgpBnEM0j5yI52wRBEARBEARBEARBeCo4fBjIuy5HQk5BxDZBEARBEARBEARBEPIsCQnAihVAo0ZA7drA5s3ZvUVCXkfENkEQBEEQBEEQBEEQ8hz37gHTpgHlygGvvgrs2QPkywecOpXdWybkdaRAgiAIgiAIgiAIgiAIeYaoKGDECMDHB4iMZFuRIsB773Hx9s7e7RPyPiK2CYIgCIIgCIIgCIKQZ3ByArZto9BWvTowbBjQqxfg6JjdWyY8LYjYJgiCIAiCIAiCIAhCriQ2FvjjD+D334G1awEXF8BkAqZPB2xtgZYt+VoQshIR2wRBEARBEARBEARByFUEBQG//AL8/DP/B4AFCxgmCgBt22bftgmCiG2CIAiCIAiCIAiCIOQKjh8HZs4EFi8G4uLYVqIEMHQo8Npr2bppgpCEiG2CIAiCIAiCIAiCIOR4bt4EatQAlOLr+vWB4cOBl14C7O2zddMEwYCIbYIgCIIgCIIgCIIg5Dju3wd27AA6dODr4sWBbt0orA0fDjRokK2bJwipYpPdGyAIgiAIgiAIgiAIgqBx7Rrw6acMD+3UCbh6VX/vzz+BZctEaMurTJw4EXXr1oWrqys8PT3RrVs3nDt3ztBHKYUxY8agWLFicHJyQvPmzXHq1ClDnzlz5qB58+Zwc3ODyWTCvXv3kn1XaGgo+vbtC3d3d7i7u6Nv374p9nscRGwTBEEQBEEQBEEQBCHb2bOHedeeeQaYNg0IC+P/N27ofWxExcjT+Pr6YsiQIdi7dy82bdqEhIQEtG3bFpGRkUl9pkyZgunTp+Onn37CgQMH4O3tjTZt2iAiIiKpT1RUFNq3b48vvvgi1e/q1asXjh49ig0bNmDDhg04evQo+vbtmyH7YVJKi3bOe4SHh8Pd3R1hYWFwc3PL7s0RBEEQBEEQBEEQBMGKc+eAfv2Affv0tpYtgWHDgI4dRWBLjadB8wgODoanpyd8fX3RtGlTKKVQrFgxDBs2DCNGjAAAxMbGwsvLC5MnT8agQYMMn9++fTtatGiB0NBQFChQIKn9zJkzqFKlCvbu3Yv69esDAPbu3YuGDRvi7NmzqFSp0hNtt5yygiAIgiAIgiAIgiBkKZZuP0WLAqdPA/nyAW++CRw9CmzZAnTuLEJbRhMZmfoSE5P2vtHRaev7pISFhQEAPDw8AACXL19GQEAA2rZtm9THwcEBzZo1w+7du9O83j179sDd3T1JaAOABg0awN3dPV3rSQ0pkCAIgiAIgiAIgiAIQpZw7hzwww/AiROAry9gMgFubsDy5UDNmoCXV3ZvYd4mf/7U33vxRWDdOv21pycQFZVy32bNgO3b9ddlygB37iTv9ySxlEopfPTRR3jhhRdQrVo1AEBAQAAAwMvqRPHy8sJVy+R+jyAgIACenp7J2j09PZO+40kQsU0QBEEQBEEQBEEQhExDKXqqzZxpFHP27wc0x6L27bNl04QczPvvv4/jx49j586dyd4zmUyG10qpZG2PIqX+j7OelMjRYtvOnTsxYcIE7NmzBzExMShRogTeeOMNfPXVV9m9aYIgCIIgCIIgCIIgPIToaGDJEopsJ0+yzWRihdHhw4F69bJ1855K7t9P/T1bW+ProKDU+1qH91658tiblCJDhw7FmjVr4OfnhxIlSiS1e3t7A6BnWtGiRZPag4KCknm7PQxvb28EBgYmaw8ODk7XelIjx4ptS5YsQd++ffHqq69iwYIFyJ8/P/z9/XHr1q3s3jRBEARBEARBEARBEB7B5s3AO+/wfxcX5mP74AOgQoXs3a6nGReX7O/7MJRSGDp0KFauXInt27ejbNmyhvfLli0Lb29vbNq0CTVr1gQAxMXFwdfXF5MnT07z9zRs2BBhYWHYv38/6j1Qffft24ewsDA0atToifcjR4ptN2/exMCBAzFo0CD8/PPPSe0tWrTIxq0SBEEQBEEQBEEQBCE1jh4Frl4Funbl644dWVW0fXuKbgULZuvmCbmAIUOGYMmSJVi9ejVcXV2T8qe5u7vDyckJJpMJw4YNw4QJE1ChQgVUqFABEyZMgLOzM3r16pW0noCAAAQEBODixYsAgBMnTsDV1RWlSpWCh4cHKleujPbt22PAgAGYPXs2AGDgwIHo1KnTE1ciBQCTUk+Sri5zGDt2LMaMGYMrV66gdOnSj72ePFMG9+JFoEQJwNExu7dEEARBEARBEARBEJJITATWrmWo6PbtTKp/9aoMX7OCPKN5WJBavjQfHx/0798fAL3fxo4di9mzZyM0NBT169fHrFmzkoooAMCYMWMwduzYh64nJCQEH3zwAdasWQMA6NKlC3766ScUKFDgyfcjJ4ptrVq1wtGjR7FkyRKMGDECJ0+ehIeHB1566SVMmTIlzSdRnjjx7t1jSZYCBYBVq4AnEB8FQRAEQRAEQRAEISOIiADmzwe+/x7w92ebrS3QoweFN6kqmvnkCc0jj5Jjw0ijoqLQo0cPjBw5EjNnzsSBAwcwevRonDx5Ejt27EhR7YyNjUVsbGzS6/Dw8Kzc7MzhwgVmMLSxoeAmCIIgCIIgCIIgCNnIn38yLDQsjK8LFgQGDgSGDAFKlszebROEnECOFNvMZjNiYmIwevRofP755wCA5s2bI1++fBg2bBi2bNmC1q1bJ/vcxIkTU3QTzNXUrcvA95AQwN1db09MTF4qRBAEQRAEQRAEQRAyGKWAmBjAyYmvK1em0FaxIjBsGPDGGxmXIF8Q8gI2j+6S9RQqVAgA0K5dO0N7hw4dAACHDx9O8XMjR45EWFhY0nL9+vXM3dCsonhxoHp1/fW//wJ16gDnzmXfNgmCIAiCIAiCIAh5mvh44I8/gPr1gUGD9PaqVYE9e4AzZ4D33hOhTRCsyZFi23PPPZdiu5ZezsYm5c12cHCAm5ubYclzmM3AJ5/Q223OnOzeGkEQBEEQBEEQBCGPERICTJoElC0L9OoFHDjAFOL37+t9GjRgtiNBEJKTI8NIX375ZcyZMwf//vsvatasmdS+fv16AECDBg2ya9OyHxsbYNMmYPx4YMKE7N4aQUiGUsCtW8C1a8D168a/oaFA48ZAly6MkJaHsyAIgiAIgiDkHM6dY3GD338HoqPZ5uXFXGyDBgH582fr5glCriFHViMFWHJ148aNGDVqFBo0aICDBw9i7NixaN26Nf755580reOpqcyhFDB2LNCzJ/Dss9m9NUIeRikumkh25AiwdClQqhQfwACQkAA4ONAJ82F4eQGdOwNduwKtWun5HwRBEARBEARByB4mTQJGjuT/NWoAw4cDr71G+17IeTw1mkcuJMeKbdHR0Rg7diyWLFmC27dvo1ixYujduzdGjx4NhzRe6U/NibdwITNSursDly4BHh7ZvUVCLiU6Ork3mvXfJUsokAHAsmXUeF94AdixQ19PuXKs4VGqFKsRlSzJ/x0cgI0bmXYwIkLv7+TEz9eunbX7KwiCIAiCIAhPK9HRwOLFQOnSQJs2bAsJoQfb++8DTZsCJlP2bqPwcJ4azSMXkmPFtozgqTnxbt8GevcGWrcGvvgiu7dGyKEkJgLh4SzLrTF8OHD5si6m3bnz6PX8+CMfvgBw9izwyy+s3/HOO3ofpR7+YI6LA3x9gTVruISE8Ls1Hf1//wPu3QNef50Pf0EQBEEQBEEQMobbt4Gff6bNfecO0KgRsGtXdm+V8Dg8NZpHLkTEtlzAmjWAtzcLkKaa4yoxkeqG1iEoCLh7lzWZhTyPUhSsLL3QmjdnlSCA59BLLwENGxo90EqWBG7cMK7LxYVeaJpXmvXfkiUBR8eM3fZr14yi2rPPMl/EsmXAq6+y7f59fq9djsw0KQiCIAiCIAg5myNHgBkzmAYmPp5tpUsDQ4cCw4YBtrbZunnCY5BXNI+8iAxbczhKAYMHAzdvUnDr1InJ5Vu1ApydLTpa3hnNZqBvX2DnTvoFd+uW1ZstZDBRUSmHdVr+HxVl/MyPP+piW5Ei1GNv3TL20RwhLcW0AgWy1l3cZDIKbYmJfNivXQu0a6e3z5wJTJ8OdOzIa6BdO0CeJ4IgCIIgCILwaD78EPjhB/1148a0ubt1k8lsQcgMxLMthxMWBgwcmDzHlaMj4+r79QNeftnqQ+HhbNy1C9i/H6hWLUu3WXh8rl3jTJO9PUM8NUqVoqD2KDw9ddGsf3+KUgAQG0sXcW/v3Dtj1aYNsHmz/treHmjRgvvYuTP3WxAEQRAEQRAEDglNJsDVla9XrAB69WLUyLBhQN262bp5QgaRFzQPayZOnIi///4bZ8+ehZOTExo1aoTJkyejUqVKSX2UUhg7dizmzJmD0NBQ1K9fH7NmzUJVzdsEwJw5c7BkyRIcPnwYERERCA0NRYECBQzfNX78eKxbtw5Hjx5Fvnz5cO/evQzbDxHbcglajqt//mFI4NWrbB8+nN4+Wp8zZ4DnngNM5kTg+HGgZk19JdHRUvIxi9HCO1MqNKD9//nn9F4EgL17GepZqpT+GwOceTp+/OHhnSVKZGx4Z04jMRHYvZvn/+rVwIULxvdr1KDw1qULUKuWJHMVBEEQBEEQnj4uX2aEy6+/sqro55+zPSEBCAwEihfP3u0TMpa8pHlotG/fHj179kTdunWRkJCAL7/8EidOnMDp06fh4uICAJg8eTLGjx+P+fPno2LFihg3bhz8/Pxw7tw5uD5QmGfOnImYmBgAwMiRI1MU20aPHo0CBQrgxo0b+PXXX0VsSyt58cQDKOCcPEnRoV075nID6PXTpg3Fl86dKTo0a/Yg6by/P0tGTphAlydRIjKEuDggXz799Q8/AMeOGUW16OiHr+PTT4EpU/h/UBDw0UfAM88A33yj94mOppAmP5vOuXN6gYXduxk9rVG8OK+BDz6QtIWCIAiCIAhC3kYpBjXNmAGsWqXbxa1aGSNDBCvOnmU+m1zskJJXNQ9LgoOD4enpCV9fXzRt2hRKKRQrVgzDhg3DiBEjAACxsbHw8vLC5MmTMWjQIMPnt2/fjhYtWqQotmnMnz8fw4YNy1CxTaKzczizZtH195VX9BxtJhOrP1avbux7+TLvE9eu8XOzZgH58wPt2wNjI2ahSkAApzjeeCP3xhJmIQkJzHGmCWcVKwK1a/O948eBli1ZTMDSA23ZMgo/1liGd1r+LVUKKFfO2G/RouSfz8X3/0yjUiUKlZ9+CgQHA+vXU3j77z/mOPzf/1ikV+PmTQrPhQtn3zZnJNHRwNGjwL59jBYvUUIXbZVimMALLwBvvmmV31EQBEEQBEHIMyxbBkybBhw8qLe1bctQUcv8x8IDlAK2b2d42Nq1wOzZzNv0FBEZmf7PODjouf0SEpimyMbGOE5Nbb0PnNEem7CwMACAh4cHAODy5csICAhA27ZtLbbPAc2aNcPu3buTiW3ZhYhtOZiYGOCrr4DQUHro9OkDDBgAPP98yv0HDGCfLVsYbvrPPyzr/OefwF+YhuvDi6H4Rz0BW1uJKH2AUsDFi8C2bfxr6ZF265bRW+qTT3SxrXBhFnu9d4/hjZp22b8/0KHD0xXemRMoUoT5C/v143WzbRtFt4YN9T7jx/NZOmkSBbrcyMKFFHP376fgm5Cgv1ehgi627drF3H9LlwKjRzNMecgQwMsre7ZbEARBEARBeDhXrjBtkK8vbbl8+YDy5blUqKD/X6IERQ6NtWsptDk4sEbesGF6kTTBgvh4YPlyimyHD7PNZGIepqeM/PnT/5nly4EePfj/ypXM/desGXVLjTJlmCfcmieJpVRK4aOPPsILL7yAag9y0QcEBAAAvKwGN15eXrhq6QmTzYjYloOJjwc+/hiYN483X81brW5dCms9e+oJLzWcnFixtFMn4JdfgEOHKLodOGCDYt99AjwIQxw4ECj73/9QrYYdvL54G41fMD1VVWjWraOL9aZNRs80a+zt+UArVYo3Dw1vbz2HmqWT4IABmbXFQlpxdKTg2aGDsf3aNYqnlsbH4cMUpLp2BRo0yDkOnzdvUlC7dYsimca0aTzvNDw9gfr1gXr1+FejZk3gp59oS1y6BHz7LYW4fv0YpmyRW1QQBEEQBEHIYpSijebrS7HC15e2qjUnTyZvs7HhuKRaNYpvWmG0999nDuOcYs/mGO7dA+bMYb6fmzfZ5uTEgzZsGMOXhBzL+++/j+PHj2Pnzp3J3jNZ5VhSSiVry04kZ1suwGymt9rcuRSI4uPZnj8/BbeBA5m3La3nldkMNPc6g813nkc+xKMD1mNfwQ7o2JF5rtq1A9zdM213spyYGHoDtWihH6PevYElS/i/vT3QqBEFCuswTy8v48yRkLu5epVCqYMDX3/+OTB5Mv8vXJgidZcuzH34ODM+j0N4OGcj9+/XQ0Jv3eJ7Dg58X8sL+N13QECALq6VLPnw6z4xkTNPU6dyvRo7djDEVBAEQRAEQch8lGJxL0txTdN9NOzs6FTRrBnQtCltvIsX+bm9eym8RUU9/Hvs7Zn72dITTvOMK1UKT5VzBS5fBmbOZBolLb7RywsYOhQYNCjP5JZ5HM0jt4SRDh06FKtWrYKfnx/Kli2b1H7p0iWUK1cOhw8fRk2LgpBdu3ZFgQIF8PvvvxvWIznbhFSxseHgv00bJtBfsIDC2/nz9HqbN4+hpQMGUERK5fwxrG/thUo4N+QbRO86jAMR7REawlxhixYxVNIy5j83k5hIQeLOHXoEaXnuevbkvbZNG6BJk6wTVoTspXRp4+sWLYAbN+jpeOcOMH8+FwcHJpTt0oUCXEZVbYqLo6FUs6Yukr35JvD338Z+NjY8V+vVAyIigEKF2P7xx+n7Pltb5nt8+WWGI0ydCpw+bQyvPX+eeQNlFlQQBEEQBCFjUIq59zVhzdeXE6aW2Ntz8rRZMy6NGhlFiagoertt2qRHOppMHL+0b0979eJFffH3p6157hwXa+zsgLJlk4elli9PTzl7+8w6GlnMnj2coV65Us8JVK0aDenXX9dn3Z9injSHmp1dysLtk65XQymFoUOHYuXKldi+fbtBaAOAsmXLwtvbG5s2bUoS2+Li4uDr64vJmidFDkA823IpSgF+fhTd/vyTyjJAZblHDwpvjRunwdtNKSSaTdizB1i7KgFRS9fAvX93fDuOH4yM5M2/XTt6vdWrlzM9va5f54No0yZ6Bfn66u916MAKob/9xgeTIFgTH08xas0aYPVquvVbUqcOhbcuXYDnnkubF6lSNHr279eXw4d5rV6+rIclT57MkG8tHLRePaBWrYx7WFkTGamvOzaWRpeTE8NL+/fPvO8VBEEQBEHIq5jNnNDUxDU/PzpJWOLgwLQlmrjWoIGxiFVCgi5gKEV96PRpvnZ1Bd5+m05ZzzyT8jYkJnISWRPfLlwwCnExMalvv60tbVNrb7jy5WkralEWORYtnGP6dIptGm3bUmRr0ybtYWC5jLyoeQwePBhLlizB6tWrUcki/427uzucHrjSTZ48GRMnToSPjw8qVKiACRMmYPv27Th37hxcH+TaCggIQEBAAA4ePIgBAwbAz88Prq6uKFWqVFKxhWvXriEkJARr1qzB1KlTsWPHDgBA+fLlkf8JPXJEbMsDhDzwSps71xjXX7ky8M47LD6aJi/ZL74AJk5E4jsDYTt3NgCGrXbvrnfx8qKnT+fOQOvW2TcwDwvjw0wT2M6fN75//TpzrQEM03d3z7P3VyGDUYqGzZo1XPbtMyb1nDqVxTJS+px2js2dC4wYweIm1hQsSE+25s352mzOPgH76FF68IWE8LWHB4spvP++FFMQBEEQBEFIDbMZOHHCKK7dvWvs4+hIbzVNXKtfn21KAYGBjLo5cYJ/jx+n99rt27QVAWDMGOD331ko7+23gScZzprNdEiwFOAsBbno6NQ/a2PDENSUQlPLls3mQnAREYCPD8NFL19mW758DPf66CMqlhpKAX/9xUTG//6rh47kcvKi5pFa3jUfHx/0798fAL3fxo4di9mzZyM0NBT169fHrFmzkoooAMCYMWMwduzYh66nf//+ycJOAWDbtm1org3YHnc/RGzLOyhFYWDuXCZ912L68+WjYDZgAMPmUh3YT5sGjBwJLF7M8iKgULVuHUWHDRuYP0rD0ZF5zyzFuMwiPp77polr+/dzAkPDxoYeQVq4bYMGecgVWshWAgL0a2DTJub/q1iRXmo+PmyLjeVl07o1P/Pnn/QwdXBgyKiWY61ePYZs5iThNzKSobNaMQWA2/3GG9TfLQuDCIIgCIIgPI0kJnKSUgsJ3bEj+aSqszMjizRxrW5dilz29rrH2syZwIQJQHBwyt+zfTs/C3As5+CQ+ak+lKLIZ+0Np71+WH4vk4kpe1IKTS1XzpjPK0O5cQP48Udg9mx6YQAUz957j9XFvL2N/XfsAD77jMnvAI55J0zIpI3LWp42zSM3IWJbHiU8HPjjDxZe0SobA7zpvfMOw8Ws70EAONq29E0OCeH0ismEuDjO2qxZwwqnV67wBly+PLuuW8fvSk+o3aMICwP69OGD5/5943sVKujiWvPmj85VJwhPwtmznAg7dAg4dcoo9gLA+PEUp+Li6BmXmMi8azne7f4BiYn0ZJ06lcI2QKPy+eezc6sEQRAEQRCynoQEjms0cW3nTl3T0cifnwWnmjVjDugiReidZumtduEC7ao6dfiZX35hFIGNDcdQzz2nL9Wrc5IzJ6Xs0bzwUgpNvXCBjmUPo0SJ5GGpmhD3WBFSR44wH9uyZfyRAM6CDx/OmWLLuFyAP8jIkcwTA/D9Tz9laOmDUMPcztOseeR0RGx7Cjh8mN5uixfrN0Q7O4aCDhjAUPYUZ0wiIzklU706V2BxDLWkn5Ur6927d+dgHeAMR5cu/I7mzdOWhzI0lB694eHAu+/q31OiBN2eCxdmyFubNvQgsk52LwhPilIMQdZyrDVpwnMY4LO9Vi29b9GigJZCoEcPisJubsB//zE3YNWqep63nJrrMCWUYv66LVuA0aP19smTqcO/9JIUUxAEQRAEIW8RH88JVS0sdNeu5EKSmxttw3r1KLA1bswx1ZIlHLukJjzNnw/068f/AwLolFWlSnJdKLehFD30LD3hNBHuwoXk4qQ1RYumHJparpyVDmY2A+vXU2Tbvl1vb9aMolnHjskNbaWYF+V//+PnbW3pcTJ6NL84DyGaR85FxLaniMhIYPly6maWeSNLlQLeeotLyZIWH/jvPyZoK1KELi6eng9d/+LFwIoVwMaNxrj//PmBF1/kg8hykB4VRW81bbU7drDMdeHCnEHR7pnr1gHFitHDJrcIFkLuIDaW3pqauLZvH889jbfeYrVwgEbY119Tf65XT88JaM3MmczpZun5puU67NqVgnFuM65u3+ZMa1wcc3N89BGrqEoxBUEQBEEQciOxscCBA7rn2u7dycMl3d2ZDqR4cUYqBAbSa+36dY5rXn+d/TZtovNCvnwU0apXN3qseXnlrBQiWYFSDJBKLTRVyxecGl5eQJWy0ehnWoCOF2ag8B2WV1W2tjC99ho92TR3wdR47z2KbV27AhMnGr1E8hCieeRcRGx7Sjl5Epg3D1iwQM83YGNDj5wBAzhBYG8PxrUnJNBHOo1ERwNbt+rhprdvc+bH15dedps2UZi7cIETDD//zM/Fx9MLrnFjTjrIQD7vceMGDZbsMDhiY1mVNj6e5xjAnIRaEloNOzsaRvXq8Xro2jX936V5aa5Zo3trajg50TuzSxcKcLmhEEFoKEXEWbP05L9STEEQBEEQhNxCTAwnVTVxbc+e5EUBChbkWKRZM06Mvv8+JxpTYsIERicCFOmuXGE0o+SMThshIayQmpIYZwoOxBDMwnv4BUVwBwAQBjfMwUD8gA8QW6RkstDUCmXiUXn3PLi0a6IXRQgMZBW9Jk2ycU8zH9E8ci4ZJraZzWYsWrQIb7zxRkasLkOQE+/RxMSwMuKcOXzwaBQtSs+Vt9+2Ki+9YwdH3LNnc7rnEVy8CPz2Gx9ox48nn8VwcuKkQ+fO1PO05KFC7iYxETh3jq7yLVvq7TVr0i38xx8zNxeY2aznyNC81o4epdDWrJnRA719ewpHWhGDGjUyNpmrZa7D1auBa9f090wmfucHH+izozmZqCi9mIK/P9scHFgQolOnbN00QRAEQRCEJKKjOf7QxLW9eznxaomTEyNwoqMZbTN2LKMYABa2fOYZvq/lU9M81apVk1zRmcKpU8CMGVCLFsH04Me6V6A01lcYBh+bt3HiiqshAoUodMdKTMRIVMJ5bLR/EV/XWpcsNLV8edr7edHDUDSPnEuGiW2xsbFwdnZGonXW8GxETrz0cf48vd3mzzdWyGndmt5u3TrGI1+1ipy6+fhjVi+1IjSUXm1a1VCtuqGGmxtFDa30dHy8/l7BgkCHDsx5kMcnIPIct27Rdb5wYb7286OoVbw4vdkAupP37MlQ5k2b9MqdGUF4uLEcesWKPL+sKVyY4t+yZRn33elBKYYfrFnD5cABtn/3HUMzAV5Dx47R+y6nzo4mJlI4nDqV23rtmv7bh4Xxt8iLxowgCIIgCDmTyEiGglqKa1r+fI3Chemhn9Lo18aGRSx/+IGvlaLgltMKFuQ5lGKi4O++AzZs0Nvr1+d4s3t3gzdGRITuARe9ZRcarfwU5YOYHykIRTAWo/EzBgNIbogWKJBy1dRnn6UQl1sRzSPnki6x7Ztvvkn1vfj4eEyYMEHEtjxAXByFgLlzKYpoZ0jhwsCotvvx9o0xyL9uOad6LFi2DOjVi15FGnZ2QIMGetXQunX1+2VEBPO7/fMPsHatHp42Zw7FPYCecGFhzBMl5Ayioow5x955h3nNpkxhcR+As4PFi3Pm78MP6WHm58eiGqVLM0y4UyfOKB4/nr6KRPfvM4GtZZ41rbCBRseOFH1r16a4q3mtlSmTs0Sgmzd57rdvrxf8mD+fXqXWHng5lStXeFw1mjblzPEnn0gxBUEQBEEQMoeICBYx8PWlVnP4cPJK8QDHEJ9/zvDQMmUYYeHmxggLS2+1KlUyNrJBeASxscDSpQyXOH6cbSYTxbWPPwYaNkzdaD93jjG8K1fytbMz8NFHiBz8KfyD3VIMTdUm/1Ni8GAGbuVWRPPIuaQraG/cuHHo3r17ij9iThLZhCcjXz7glVe4XLlCIeW33+i9NGxJPQzDejxbl/2GDgXesfUBundHjRoFYDYz96QmrjVrlnpVZVdX4OWXuSQm0tX7n3+M4WiLFzPErlo1vbppbqrsmJcIDwcaNaIHZGioLo5VrMjf4/ZtekT6+dHwKV2av+nu3cb1nDoFvPoqDZ2uXVmHw86ORYYeFlo6aRLPh9OnjYIuwGdxUJBebMPHh56SOdUzTKN4cWDQIGPb/fsUtps319siInjMOnbkNZCTKvFaCm3XrtFbLyaG2yvFFARBEARByAjCwjgJuWoVJ1vPnUtZXLMkXz5O+g8cqLfdupV3wwlzBSEhLFrw008cPAA0Et96izP05co9eh3r11Nos7FhzqMxY4BixeAC4LmiFE+tiYpixJVlkQbt/4oVM3IHBUEnXZ5ttWvXxjfffIOOHTsmey8mJgbOzs4wW4+CsxFReTOGmzcpiDg5sfLO+vW62PGa7Z9YmtgDccXLwv7McdwKz4/ixTPuuz/9FJgxI3llx44dKb61b8+cUULGsnYtxa26dXn8NYoXp5GyezcnnG7fZgGA3bu5nDmTfF2VKlF0bdaMuS/WrKFoZpm7zNaWrvtt21JYOnCAy7//6iLNBx8w1xvAqrmax1q9evRgS03UzY0kJlKw0vb9r78ofms8/zzP/y5dgFq1cpb4HBTE2UHLYgoFC+rFFLy9s3f7BEEQBEHI+Zw5w6iZrVs5UZtS9cqyZWlfbthAW7JmTd1TrXp1hgvm9InXp4aLF1lty8eHyhcAFCtGA3/gwOQVyyy5f58hLFo10dhYGpXDh9Ml8TGIiGCocfnyOS/yJb2I5pFzSZfY9r///Q/FihVDly5dkr2XmJiIcePGYfTo0Rm6gU9CXjnx+vZl4s4xY/TiKkpl3k0hIoKeSZs2AZs305MIAFas4ID/xg1g8mQKJs+EHsRyvIoV6IGV9SdjwADgtdeSRZg+ESEhfIhaV3bMlw+4c0cXWWJiAEfHjPvep4WpUzlTOH06hTFAF3dq1qRbvsY//9Db8dgxniMXLyZfX7VqurjWtGnKlSrNZrr+z5wJrFuXPGGthp+fnr/vyBEKdPXqsYDH08T168x1t2YNsHOn0bOvWDF6u3Xpwnx0OeUaSKmYwpIluaMQhCAIgiAIWUNUFMW0S5do22s5144eTbm/vT01l7VrOfkKyBggx6IUDdfp05nsV5Mdnn+eoaKvvcYfPTUSEhhiNXo0xbgTJx67mt6tWxw/aOPnoUPpXDdxIsOMczN5RfPIi2RYgYScSF448ZSiq/O9exQ4NLfYP/4Ahg0DevTgjULjxg16jqTnPpSQQC8iraiBdUJRkwmoUwf44gugWze93Wxm/8U/h2HFOmfEJHLqqHj+MPR42Yze7xdE7doZKwrGxbEg6j//cJJj3jz9vbp1eby0cNMaNXL3LEVGExDAGcKoKL1UOUBBbMcOTjT178+24GAKm0WLUujRDJ+rV43rNJl4nDVxrUkTekDeusVEtZGR/J20/4ODGTZcqhQ//8MP9BhPjdq1mb+vR4/cnbg0I7l7l96la9ZQhL5/X3/PxYXegV278lpNQ8HgTEcrprB4MVNzaDPMa9YwUW2TJnKdCoIgCMLTwJUrFNGOH+fY49AhPZIwJfLlA0qU4DikfXugRQum0sjLdkNAAO2mjRs5puvd++Hpy3IkCQksVT99ul4NDABefJEiW4sWD98hpWgojhjBeGGA4aX//Ze2MFMLEhPp/Hb+PAVdLQ/40qUcDw0dqhcpy63kBc3DmokTJ+Lvv//G2bNn4eTkhEaNGmHy5MmopHmGAFBKYezYsZgzZw5CQ0NRv359zJo1C1WrVk3qM2fOHCxZsgSHDx9GREQEQkNDUcCilPCVK1fw7bffYuvWrQgICECxYsXQp08ffPnll8j3MCE4rag8TFhYmAKgwsLCsntTHpvERKXWr1dqxgyloqL09tGjlQKUevttY//ChZWyt1fq5Em97fJlpXbtUuruXb3twgWlfvpJqW7dlHJ357osl2eeUWrQIKVWrDB+LjUCApSaPFmp8uXMagVeVpdRWtXBflWjhlKzZil1797jH4O0EBSklI2NcR9KlFDqvfeU+vdfpWJiMvf7cxoXLijl46PU0aN625EjPC7u7jyvwsKUOn1aqXHjlBo6VKnZs5X67jul+vRRqlYtpTw9k58XgFJubkoVLapUqVJcChdWatUq/XuWLk35c9oyf75xm/r0UeqHH5Tat0+pwEClvv1WKQ8P42fs7ZXq0oXnY3R01hzD3EBMjFIbNig1eDDPd8tj1qFDdm9d6sTFKVWyJLezbl2lli9XKj4+u7dKEARBEISMICREKV9fpX77TW+7fVupqlUfbiM++yxt92XLlLp5M/u2P6vx91dq2jSlGjdWymRKflzKlVMqIiK7tzINhIVxMFGqlL7xDg5KDRjAQUda2LNHqRde0D9fuDAHCrGxj/zo3r20f/v2NbY3aMBx4urVepvZnI79yuHkBc3Dmnbt2ikfHx918uRJdfToUdWxY0dVqlQpdf/+/aQ+kyZNUq6uruqvv/5SJ06cUK+99poqWrSoCg8PT+ozY8YMNXHiRDVx4kQFQIWGhhq+599//1X9+/dX//33n/L391erV69Wnp6e6uOPP86Q/Xhise3rr7/OiO3IFPLiiacRHq7UgQPG+1Z4uFJOTrwvWd6Qx41j2xtv6G0vv2y8iRcsqNQrr1Bw8fd//O0yBwSqqGLlVLyNvWpkty9p/U5OSvXvT9Evs25ugYF8qHfrppSzs3H/rG+6uYk7dyhK7dxJYeWvv5RasECpX35RaupUngfr17Pv+vVKvfSSUsWKcb+9vJSqUIHimKsrn13ffkvh9uefH27waCLXCy8o1bXrw/v9/ru+vevWKZU/v1Le3jQOnn9eqUaNlGrblueYtq2P4tIlpaZM4eetxb633lJqyxalEhIy9ljnZsxmpQ4fphBfpYrRwL1xQ6levZRauzbbNs9AaCjFfAcH/XctW5a2lMUzVBAEQRCEHM6FC0otXqzUiBFKvfhi8sm//v2VqlgxZfuxTBk6Dvz5JyfOnxbMZqWOHVNqzJjkdq42EfnNNxy/uLjQFrdk9WqOe3IMV68q9dFHHGxoO1GkCHcwPRt68KD+eUdHpb74IlWPjU2blPrkE46DNPbu5UcLFTKONy9c4Dg5r5KXNQ+NoKAgBUD5+voqpZQym83K29tbTZo0KalPTEyMcnd3V//73/+SfX7btm0pim0pMWXKFFW2bNkM2e4nDiN1dnZGlJbkMIeRF10qH4XZzIIGWg4Ds5lJH69fp9futGlsnzWLeSUBlstu1oyJRf/+m4nuO3akh+9jERYG7NqFu/VfxMKFwNy5wOnTCgDdhatUYWhg375AoUJPsrepEx3NhKr//MNl2jQ9V9SpU6wAqYWbPvvs47lma1eO9tnbt3mcUwqfjIwE3nkHKFKEfZcvBxYt0vtY/92xgy7zADBlCr2oH0VQED22Bw9Ovc+0adxerUx6ZKTxfRsbpkTw9gbefZcFfpyc6Hq9fj1z8bm4JP9bsiSri2YWPXsyBDZfPoYSaxQvzt+1Tx+GWOcqF/tMRLNUtMIJM2cyh2zjxkydYdkvO49ZasUU/vc/VjMVBCFzSExkyog1a/iMjIriNffWW3wmCoIgWBMdzTy++/cD772n50gbOJC2/qMwmZiqq3lzPfVIZo0DcjIRESxuZZn32NaWaV26d2caEG0cB9BWv32bifwB5qsuWpQ23OXLxr5ZzoEDwHffcQCiVbOrXJlxmb17cxDxKOLj9RwjSgFt2jDfzDffACVKQClWDj1+3FgsrFcvplUaOxb4+mu2xcUBv/wCvPACj/HTMi54HM1DGwM6O+vHKS6OP4ednbEAodbXyUkfW8THs7+trTFfYmp9n7RQycWLF1GhQgWcOHEC1apVw6VLl1CuXDkcPnwYNWvWTOrXtWtXFChQAL///rvh89u3b0eLFi2ShZGmxKhRo7BhwwYcPHjwyTYaePIwUkdHxyeX/DKJp0Hl1UhMVOrQIaUmTVLq3XeN7zVvzqH3okV62+3bSr3+ulKtWxv7vvkm+44dq7dFRtL99o03jB68afVQM1+/oSIq1Vbfvrg7yfNO8yp+/XWltm7NXFfexERjiNqECclds4cNo5fY6NH0gNaYN0+pdu3o1l2jhu4l5uZGd+Tz5/W+I0c+3Pvr0CG978SJD++7fTtD7RISlJo7l15iRYro3tRt2ijVvTtDMMuVU6p6daWOH2f48KxZ9DRbulSp6dN5PjRqxJkx6+9xcaHH2fjxSu3YkXPDbUNDOXu1ezfDEgYOTB7+XLUqj+vVq9m9tTmPY8eU+vBDekRq3LnD2ef336fHaWJitm2eioykp2W5cvwtLWcps3O7BCGvER6uVL9+fI6k9Ozp3z+7t1AQhJxAYiKjZ+bPZ1hnrVpK2dkZbdpLl5iypFEjo6e6ttjYKFWnjlIff6zUmjUMLX3aiItTauNG2uaW1KjBY9a5MyMRgoOtPvjPPzT2hw41tu/Zo879dUK9UCda1aplfGvWLH5Xpkd9JCQotXKlMdQTUKpVK4a3pNVwu3+f4VelStEofUBsZLzlSxUYqH+F5Tm0bBmjJDZvzpjdys08juahHVNLj1ItGu6dd4x9tYixy5f1thkz2Narl7GvZl9YprSaMyfNm5UiZrNZde7cWb1g4eK5a9cuBUDdtIo3HzBggGrbtm2ydaTVs+3ixYvKzc1NzZ0798k2+gFPLLY5OTllxHZkCnldbLtyhULMq6/SXdbyfmd54Zw8yZxqaeHvv5X64AMKGhpari8PD2Pfd99lbjfLAXx8PHMsGMSzfv24gnr11L1Qs/r5Z6Vq1jRub/nyFArTup1Pwo0bHNi3b69UvnzJjYOLF/W+I0Y8XBQ7ckTvO2MGnxdVqtD9u3lzpTp1Uuq11+gib7neI0f42y1ZQgNkyxbmLDt5kjeyLl0Yert3r/6ZjRv5nU2bGvdHExJjYpTy82OYaOvWyUNptRDMjh0ZnrlvH42A3MoPP3Afa9ZMbuQ1bcqQ6KfRsEsrc+YYj1mpUkp9+ilDUbMrj0VCAsV3S957j9fR9u15K7+GIGQF164ZByJms55moEABGslLl/LZ36ULJ100Dh/mhM7WrSJ6C0JeJzDQmMZh0qSU7d78+Tnp7OWV/D1bW6Xq1VPqs8+ouWR2vubcwIkTuoOBZRjj6dMWKX/i4nijtTxgCxbwgy+9ZFxhmTJs37VL//zOnSq2z5vqPbs5CuDv89FHSh3ddV+ZEzPQcLp/nwm/y5fXf3R7e3pjWA6IHkV8PAdBRYvq65k6VSlF293RMfnET/Xq1PbOncu43clL5HWxbfDgwap06dLq+vXrSW2a2Hbr1i1D33feeUe1a9cu2TrSIrbdvHlTlS9fXr1tnRT/CRCxLRcRGkqD+L336GGV0gOwc2elvv8+Y0WGkBAmprfMAaUUBQ1rj7mTJ9lWsqRFx7AwFdz1LXV69XlDkYeDBzkjkT+/vg92dswnt2FD1hj34eHMgTZgAPMivPuuUpbX7MGD9BL76y9u044dHICcP09R8UnFqpMnmd/COpl9p048Hj/+qLdFR9MjUSMykiLd118r1axZyrOKHh7MYTdjBrc7L+U4a9+e+/jTT7w25s1TqkULY2LZfPm4/3/+KYUVrImLozHct6/xGgSUqlSJXp5nzmTvNkZEGEXjunU5kynFFAQhZcxmPre+/pqeE5o3tOW9f8UKpbZte/Tza8gQ/dorU4apd65cydTNFwQhC4iKokf79OmcENb0m+XLOSH977+0i21tGQFha5uy8GZnR6+2kSNpI+flnFiP4u5djhe6dWNeYQ2zmSLRgAFGG95Ao0Y8oEuW6G137ig1cyZnxi1XVrcujXvLMI4fflAKUIefedlQYOwSyqhIk4v6bchB/d596hQVrV270r5zt24xd5rlygsUUOrzz3nCpBWzmR4GVaokree6fVl1ddKSpEHfunVJ/hkGZMLn4TyO5nH/PhfLiezYWLZZRzppfS1/h7g4tlmPr1Lr+7i8//77qkSJEurSpUuGdn9/fwVAHT582NDepUsX9YZlovoHPEpsu3nzpqpYsaLq27evSszAE07EthxOZKRSo0bpVVSsZ5AaNeKgeMeOrPdSCgigt4ll3st//+V21q1r7NuyJbc5qRLl8uUqeNVO9dNP/My8eUrVr2/cv9KlmRw0PffxnMzy5VT///lHb/P310Uhyxvb8eNKnT1rvFGFh9OYGTmSv7u9fXLDx9NTqR49KECdOJG3H06JicmrWB4/zuM7ZYpSzz1nPDbu7vQwFC+N5ERFUZB85RXOKFoetxo1OMOdXYPsc+cogltul1ZMIVdU5hKELMDPj5NXmteatphMfF5YTfymiQMHuE43N+P6WrXiJFtu9owWhKeRgweVql3bGA5quVg//y0XJyeGhPbvz6qZmzdLQaObNxm62bq1UZB0dU0lLUt4OD24XnnFqHB8/jlnRVJI6p4mDh6kS9Ly5So2lsUTXn0lUcWA4TslcTUp6mPXa99zI195xbiO1q25WIbhbN1Kl2fLE+aZZ+gJkA4DLDBQqR9nJij/sq0M3gC/VJqh8iHGEGJ7/z4neiWSIX3kBc3DGrPZrIYMGaKKFSumzlvmbbJ439vbW02ePDmpLTY29rEKJNy4cUNVqFBB9ezZUyVksGfKE4ttkrMtc0lMNIaIVqrEHEurVuVc9+yYmOSGfffunBDZs0fxLursrBJtbFVD7FI1a+r9jh9XqmFDo5eWjQ09vVavzh0eLVFRFBWHDzc+LD74gPvzwQd6m9nMkNa9e5N7nYWGcgLok08oXqY0s1i8OAW82bMpzj3NDyezmbn1AB4PpXg+jRhBT0vr4/bpp8xlJhgJC1Nq4UJ6XFob5CNHZt92BQZyYsHyfjh6dPZtjyBkJwEBxsGcZc5QFxdGHs2fnzHV/SIjKa61shgnFS2aO57HgvC0ERTEScdRo5jya/p0Cuc+PgwNS01Ms5zIr1KFKWq++YapuS5cyFuREU/C+fNKTZ5MJwjrY1etmlJffcWISrNZcUbCckAUFaWSklcfPaq3R0RkygG+dytSrZhwXrVqnpAU9dEdf6l1po7Kp/o0tXr1g46JifoM/tWr9IJo3dq4c40bM7wqIYExqqNGGb0tEhKUMptVRASF2NOn9bdOn+Yq5toOUmYHBxrmoaFq40auMlm+OiHd5AXNw5r33ntPubu7q+3bt6vbt28nLVEWYXKTJk1S7u7u6u+//1YnTpxQr7/+uipatKgKt3CzvX37tjpy5IiaO3euAqD8/PzUkSNH1N27d5VSeuhoy5Yt1Y0bNwzflRE8sdjWqlWrjNiOTCGvnHjff6/Ur7/mjcTvZrPizE7v3iqkdmvVrXOC+uQTY5/SpXlTHjVKD1W1nC368ksmZU1aXzYSFEThc8sWvS0mRs8F5++vt2/fznxqlnnYLAkOZrjqhx/Sm8gyHNLSo6dfP4b0+vtn//7nJCIjeWxcXJJ7QyYm8vgPGEDPd2vjSAorpMydOxQutfDcFSv09/z9mXLjwbMqy4iMVOqXX/i7WT4Hjx0zGneCkJcwm5l2YMIETkiZTJyM0Th0iCkm/v03c0PmL19mOOn06XpbQgLHZVOnZk3eVUEQdO7fZ6qQV19l0aNHiWmWS5kynMz+/HOlFi/mczSnFsrKLsxmimdffUW7w/oYNmhA8S2Z482aNQypsM4dNWYMPcMyYiYkHVy7xu203If27R+8mZCg1L//KvObbylVubLRlTlfPqV69tRXlJCgz8Rev67bYd9/r5SLi9pS7QNOhg4OonfBpEnKvHad6tX1vvpuRKCKOCXGdmaQVzQPSwCkuPj4+CT1MZvNavTo0crb21s5ODiopk2bqhMnThjWM3r06Ieux8fHJ9XvyghMD3YmT/I4ZXCFLEIpICZGLwltNgMnTkA99zymTwfOngUmTWJJ8HPngHffBbZv1z9uMrEy9NmzgJsbsHQpULUq3wsP5+rd3TN2k+/fBw4eBOrUAfLnZ9sPPwAffgh07AisXav3HTSIfT78kNWrUyIgAPD15eLnB5w6lbxPxYosj960Kf9ma3nvXEJQEODpqb+eMIEl0vv1Ywnq2Fhg/Xpg0SL+ZnFxet+mTYE+fVhavGDBrN/2nMytW4CHh17ee+xYYMyY5Od+VqGUsaR769bAli1Ap07AJ5/wt3xaSr4LeZP4eGDHDmDNGuCff4BLl4zvjx0LfP31k31HbCxw/Tpw7x5gZwfY2vKvtli/tm6zsQE2bABefJHrs7XlPeHNN/nX3v7Jtk8QBGI2A+fPA3v30s595hng5Eng2DFg2TI+E1OjSBGgenWgWjX9b5UqtJ+FhxMcDHh78/gDvO81bw507w507QoULw7+MKtXAy1bArVrs+PZs0DlykCJErx556Cb4fHjtIEbNwa6NgoGfvkFiT/Ogu2dIACAcnWF6Z13gA8+AMqU4c7b2PDDsbHAd9/BfO0Gqm39AWcu2OHaNaDkD58C06bhbOv3sfpAMXwYMwmOseE0xJTig6ZECa5j0SJg/nwexCFD9A07fZoHu2BBMeDSiWgeORcR24ScwaRJwKhRwOTJwMcfJ3vb3x/Ytg24cgXYtw/YvNn4/nvvAcOGUZz68Uc+H954A/j9d73P9u28z5ctywHBw0hIAG7fNopbFSsCFy4AGzdS6AOAAweAt98G2rUDpk59+DqvXzeKa+fPJ+9TtaourjVtSpFIeHwuXqRBGR/P379ZM+P79+4Bf/3F576lmJsvHweKvXvzryYwCTo+PsD33wMffcRrDQCuXaPQ1bMnB99ZddxiY4HXXwdWrdIHHHXrclteeonGsSDkBixF5HPngGef1d9zcABatQI6d6aorI1bHsa9e7wur17VF8vXAQFPvs22ttxms1kfkAIcm7m4AAUKcF7tUcJdetpy4rpsbfXxqCA8KcHBtDc3bKCtefmycXIwJRwdKaTVqGEU1iwnIIXUuXyZw5HQUGD5cr29Qwce2+7dee/1cEswGhZvvknxaPhwYPp0tinFGfpatR496MgOzp4FZswAFiyg8wOA6yiBf8p+iMFHBiR5LNy7x67jxlEHmzdPX0WdOsDhw5wM6tjsPvDTT1Dffw+T9mB57jnA2ZlG2v79+jH7lMKc4XglJvIgJyQYhblNmzhwatZMH3wByWdcn3JE88i5ZIjYtnXrVty9exc9evQAAAQGBuLNN9/E4cOH0bZtW8yZMweO2TBalRMvl6AUFSsfH2DuXOCddx75kUuXeMOfN48GiUazZoCrKz1tRozgQxPgvdvZmaLL1au6t9nevXyI1K/PCSgA2L2bXjKlSwNnzujr7tUL2LUL+O47ej49apcuX9bFNV9fCoWWmEzA889zm5s1A154gbOPQsYRGwv89BNw6BCwZIneHhdHQc2S69eBP/6g8HbihN7u7s7fu08fCqAymDJiae9Mm0YbCuB12L07RbBWrbJmUvfCBdqOPj5JtiPKlOF94LXXMv/7BeFx8PfnYGXNGsDLi/chjSZNgAoVgC5dOM5wcdHfM5spllkLaJavw8Mf/f3OzvQiT0zkkpBgXLQ24dGYTA8X5AoW5CSatzf/Wv9ftKjuOS88PQQHcxI5MpLeaidO0G5MTEy5v40NJ2etvdVKlRIbJT3cvw/cuUM7AaCdXrYsj2FAgG6TJ9k5iYk0BjdsoBeWNiO+Zg0waxbQvz+NnpyKUpxZnj7dGJJQuzbihn6M1favwP+aPUJDuRvFitHp4LnnqBt6evK4WE4IFS0KuO3fTOHs5Em+Ubo0MH48V5LSCXnyJHDkCL0Y6tdn2507HIiFhtJ41wTK1IS5QoX4wNy1CyhcmO0nTvDhV7Wq/qM+JYjmkXPJELHthRdeQJs2bTB69GgAQL9+/fD333+jTZs22LBhA0aOHImvvvrqiTc2vciJl4vQHgDNm+t38QSrmaMUSEgA1q2jRvfvv/qseoECQI8e9HCrVg0IDATatgVu3KBRo937hw3TvXO++45twcF8oBQoANy8yYEIwHu/g0Pqm3/uHD3WNHHt5k1jH1tbTnBp4lrjxhKqmB1ER9Nw6NyZYViursn7HD8OLF5Mge7GDb29RAmKrr17cx2CkVOnOLm7bBnFS41ChShYvv46xYPMHgwEBwM//0yh9c4dblO/fpn7nYKQVhIT6aGthYeePq2/lz8/cPcuJwO0EM+UPNKuXuV78fGP/r7ChTn2KV2ag3Htf+11oUKPdhBQis9XawEuJVEuIYH3WT8/Tmh9+KH+3syZQFgYBfiqVbnOR60rJ7ZlZkyIi0vKQpy1KFeokAgruY24OF7vmzfTTjxxglEUD/NYc3VlyGidOoxSrFGDAnwOikrMVdy9y/vu33/Tc7B1a6PuNG4cUK8e0KK5gr3/Wc7ud+yod6hfn15av/1Gj7bcQHw8XfW++44iFwBlMiGyZWccafExmnzRJOkh8MorjPiYMIHCo6V26ODAaIG+fTn5kzREmz6dUUkFCzJKafDgxw9tiIkxfnbVKv5Q7doxbhdgXpPixTmwshTmPvmE+2g5qEtMBNq3Z/+fftJnM+7e5T7nkZBV0TxyLhkitnl6euLXX39F586dkZCQAA8PD0yaNAmDBw/GtGnT8Ntvv+G0pTWZRciJl4uJjaUi1akT8MUXabIor1+nR8uvv3JQotGwITBgAPDqqxTOLO+pP//MB+477zD0TePCBaBcudS/1mymsKCJa35+FPQssbdnKJsmrjVqlLKwI2Qtf/xBwaxECQqkmpiaEmYzcyYtWgSsWMFBokb16hTdevWSXHrWmM3Anj081itWMI+eRrFi9DLr2ZPXR2baONHRFEz79tU9GefModDx8ccMMRaErKZDBzpGaNjYAOXLcyzg6AiEhKQ9xNPWlvcySxHN+v+H3eOykqgoOiLcv8/XpUpRBO/fn2JCbsJaJEyLSBcfz9/29m0uAQH6/9pr7dikBTs7Hs+UhDjL115eqU8UCpmD2czohhMn6MSjeaudOZO6UGtjwwiHOnVoX1SuzMliS29W4fG4cYOazd9/01639BisUoUTrMkiPXft4g9SuDAvTq3D9u28Uderl/PV7nv3aPT88IPuAeDkBPTvj8DXh8G7aUXY2LCbNj5ZvJjjmtde46SIvz/bFi3i2AgAyuAyKhUMRqW+9dCnD1CneixMU6cA77+fNV4ECQl0QwwMpOeCxtSpNDzfe48DP+DRwtynnwJTpmT+NmcyonnkXDJEbHN0dMSmTZvQpEkT7Nu3D40aNcLVq1dRokQJ+Pn54cUXX8T99FgQGYSceLmYJUuoZHh40EpJR/KyxEROgsydy9krLfzFzY3CyIAB9DBLD4mJTEKriWs7dnBSxBIHB6BBA11ca9Ag5wxyBCP//cfzwnKyct8+2k6piT8xMSyssHhx8sIKzZrphRUKFMjUTc91JCTQNv3jD86WWgqWzzxD2+ill7JmWxIT6RFw+TJfd+xIe6tZs0eLfomJFPQvXuRy6RI/4+FB2zKlv66ueWLCVHgMzGbmslm+nF4sXbtSdL56lfmXLAXoh+HsnLqIVro0xevckpNQKYb0//YbH/GW94LmzelprjkuPK3cv5+6EGf5v2X6jLTg4fFobzlvb9pJcs9KO0rx99BEtaNHeX37+z/c69TGhhEUlSszPUXXrvRYk2OfcZw7B6xcyWX/fuN7zz1Hu6N7dwqbpm1bgdmz6Xr//vvsFB/PG+3zzzOvWW5KfHf5Mt2If/2VsckAAuGFPXWGotuGd+kWC+YELVSI+a3Ll3/4KpUCjmy+i7DPxqHx0VnwRzlUxwkkwg4VK9IG7t07B06chIfTjTw0FBg6VG9/5x0en+nTGaKayxHNI+eSIWJbqVKlMGbMGLz11lsYP348fv31V1x6UDZr3bp16NOnD0JDQ594Y9OLnHi5nN9/54ySpSKSTgICGEI2bx6NH41atSi69eqVcjWm+HgOlDRxbedO48AA4CCoUSNdXKtXT2aPcyubN9MlvkMHCmmPmqwMDdULK/j66u358tEZUyuskOXng9nMiljXrzNu2jK7eg4gNpZC59Kl3MyoKGPBkevX2edRRt+TsGcP03+sXKl7GNSpQ9GtSxdO/mqCmuVy6VLaQvYssbWl8JaaGPewv1KUI2cTG0sPauvQzlOneL7cu5e29ViGeKYkqKUlxDM3Eh1NTxMfH95/lWJ14wfZSGA2c7/z4r5nBPHxdOp4lCh3+3b67ltOTmkT5YoUyZk53zOTe/d0LzXNU+3kSXorPowWLWhbVK/OHLD58lHskTDQjCckhNrJypXG8HyTifZ69+5A924Kz8SdZU4vJyd2+PlnVsVs3JgGv0Z8fO76ofbswfH+36Hq+ZWwxYO8OtWq4XCLj9Hwx9dRq4ED9uzRu1sWGX0o0dH0jps4MWkwFFyzDb4qswgLNngiOlrv+uWXDMXNFcTEcCY1D7iPiuaRc8kQsW3gwIFYs2YNevfujfnz56Nfv36Y/iCJ4XfffYdFixbhyIMY8axETrw8xuHDTND2xRfptvLMZnrXzJ1LN3LNK8nZma7S77zDPlpI6K5dSZNBSbi50aO8aVOKa7Vr565nsJA6s2YxxcO77zKHX3q4dk0vrKDlhgXo4fbKKxTeMr2wglK0LkePNm5EpUpAt25ccljIQ2QkPQW7d9c9czSv/s8/p02XGcTGMvrA15eT1Xv36iElWoX61MiXj7O25cvrYeYhIRRfLf+GhPB7ngQnp8cT6QoUePoGwZnBvXsp50rT/k9rFU8HBwoUNWowR5mloJaTQjyzk2vXOLf2xhs8LgCf019+yZRIfftKZe7HRSnej9IiyqWlmIaGrS0dfR6VV87bO/dNHERHM9zTWlSzzN9qifVzw82N9mHz5kxj0qCBpBDJLBITee5qhSsjIigEx8bSrmjVijZG1648FwEw8d22bfR26tyZbTduAP/7H19rCftzOEFBTNMRHpqIkc+upPG0d2/S+9ertEPJGR8BbdrgfqQJ165x/jVdZmBiIrBwIfDVV/oF8PzzDLts2xYAj/nKlbSBt2zh/126sOvly/T07NxZ1zWFzEE0j5xLhohtd+7cQZ8+fbB7927Uq1cPy5cvh4eHBwCgdu3aaNCgAWbNmvXEG5te5MTLQ0RHc1rQ359Z7b/++rFXdecOnx1z5xqrjVpTsCBFEk1cq1FDBrF5mUuXKFQ8uHXh1i2eJx9+mPbBQmqFFUqWZJLZPn14GmcoiYlUgTUjS7P0d+40ujQULUqLs1s3TrVbl2PNAbz5Jo/5n39yMwF6CW3aROEyrdV6o6P5e6bkoXbtml5IJSUcHSmmlSjBie8aNfhaa0vrPSA6OrkIl5a/oaEP37604O6efpGuYEHmDX4aPIksq3imJqilRXhwcKD4Wro0j+OSJWyrX5+Di169GOYppJ+XX6bgBvCa69CB94dOnXLkrStPEBWVuhBn+TooKH0FIgoUeHReOW9v9svK+09CAk1K67xqFy8++h7csiXPx2rV+MyYM4fXff36vB88DffR7GbnToaClijBuXiNSZNoc3VsEYUCW/5i7PrMmXqH99/nAGDKFBp4uYCoKIbCFivGAp4AcHJPBOY08sFw00yUVQ9yY+TLhxvNeuN0+49Qs2+1NNtMqbJlCytIADyo48dzBjkVxe7WLXpra/for76il9vLL9OuEzIP0TxyLhkitj2M8PBwODo6Il82WEdy4uUxFi4EJk9mwrQMSMCpFD3Y5s1jXp38+fWQ0KZNaUTlIEcgIYt56y2GOPXowfMjPZjN9JBctIgGhnVhhT59KL5lWGGFwYN1ZVCrCBUWxhK9q1bRhSwiQu9fsCDVwBzoVhMURLFIC8H9+mvg22854G7dmoUVunfna3//lAW11DwQNPLn1wU0bSlZkp5HRYvyuv/wQ0509+5Nj7usKqZgNvOnSkmEe5RQZ/kTPw52do/nTVewYM4KoY+JYUiydYin9jq9VTxLlaJnSkgIE0SfP8/nR7t2xkIHvr4cbOc2T56cSHg477s+PsDu3Xp74cK8JqdOFc/y7CIhgffpR4lyt2+nz8PX0ZGi26NEOU/P9OUpVIrPhJSKFaS2fW5uKQvulSrxGu/TR09/IGQ+ERE0Y9zcKLwDzFuoibQXLwIFCyi6zGvVJu/d4wxdQgI7lCvH9qAg2j5av2xEKc6Xauez2cxq7nfuMNWN9izR0ot9/jkwccgN4McfoWbPhumBcak8CsE0+D2Gwia58D0moaH6GEspKmUNGzLfWTofbt9/z7DeyZP1InRXrzKapE8fhlMLGYNoHjmXTBfbshM58fIgiYlG15ItW+ir/4QuZ5IfRrBmyRIaNsuXMwzkcYmJYfTz4sX8q4Uwm0wUdnv3TmdhBV9fKlAzZwI1a7ItOJgrLFw45c/ExjKOetUqJkurUMGYbO6zz+ii07NnjqrwEBZGY+333+mplh7c3XUhrUIFo7Dm6fnwa10pVorfuFFve/FFFq1KSzGF7CI+nuOL9HrThYQYC348Ds7O6RfpPDz4O6VnUkMpnhcpeaRpr9NTxTO1wgOlSjHs5fPPmZ/RMucnwLyfr7wCjByZvuMkpJ+zZ5l7dcECCjh16xoTnsfEiMCZE1GK96O0iHJpzXEI8P7r6Zm6KOfmRkHcMgQ0NU9VGxuuT3MQHz2aE62urnxu1Kqle6zVrZs1hRYFEhzMSM+VK+ndHhfHiXBL0+XgQUY12m/+l0JTrVpGF6p336Vd9N57rEiZycTEUMuzt9dD3xMTgW++YVG1KVP0Oc5p0+j59dZbFJ8AXjNOTnq6Cy2s3scHWDriCKYW/Q7PnV6mV36rWJHJ/d9448knT69eBUaNoqp54YIe5vGEmM1cNEFxwgSmCAAotmmTz1oosPB4iOaRcxGxTci9bNzIEXGzZnQvyEmuFUKewDo37uzZNPQmTeJgPL2EhtIO1Eqra2iFFfr0oajz0FO5d28qgd2763FW6cFs5rSpVllLmx42m43WXWRkliSNDQlJ2Tvt4sW0VdyzsaFXWsOGTCFSuTIFtYxILL97N9OgWBZTqF2b9qgW5poXUIphr+kJdbX8/0msCJOJ+m5qYpyzM0NTLAW1tHjwpVbFU3udUhXPe/cYjd2+vd7WujXndPLlY/6fzp15rWaYV6qQZhISWGDF3j4pXRBCQzlP0K4dw/pat5Z0D7mR6GgWfHiUKBcY+Hhh9nZ2FM+uX2fFV2scHfn8nTtXb1Mq506s5FWuXdMriO7YYfytK1RgpMG4YXdg+nc9FdBKlfjmgQPMS1u4ME+WDLwJXLtGwd/bW/fESkjg+XLnDucwNSe50aMprL33HmsuAEYB7fJlpqcAWG/gww+BV1+lN5tGjx78+913QKkSZmD9eqhp38Hku13v1KwZoxg6dnzyEJzQUCpgP/ygz7otWkRbMxPYsoXiovXkc4sWPKYvvcRJOCF95EXNY+LEifj7779x9uxZODk5oVGjRpg8eTIqadc9AKUUxo4dizlz5iA0NBT169fHrFmzULVq1aQ+c+bMwZIlS3D48GFEREQgNDQUBawcC8qUKYOrV68a2kaMGIFJkyY98X6I2CbkXv76C+jfn3fnX37J7q0R8jixsRyoBwbSJrGsIP44XLtGzWzRIlYw1ChQgMZW796sQm9z+CANSM1CO3+eXm1ffJExU4EhIRxhnD3L6VONjh3pTqYVWKhb97GMOqUomqUmqD2qULWXl9ErrVw5Gmb799PIvXxZ71ugAA21Tz6h6JZRXLzIUAgfH85cf/YZwyIAHrYtW7idnp5cvLyyPv9QdmE202vkcbzprIvQpIciRVL2SNMWD4+0Hf9Ll4B//uHi68tB1K1bulfCpk0U99q2zRFRR4IVS5YYx4QlSgD9+tE0yMyqxkL2kJhIgSMlUe7GDT4P7tyhOB4TQ2cmHx86AOXLx/vE9et6OKi2SHXQ7OPMGYprf//N9GqW1Kr1oIJod6ZyMJlAdWrFCs56ffstO5rNVG9atEh2o1ZKnzvUngkHDrAyedWqnEQBKPzUrUsPtNOn6SEJsEry2LF0krMcajg58Ry7dAkoW5ZtP/5I+6NfP+bx0xg5kufX++/r85whIXx2FiliNa8ZHc2H0X//8cGkuVXb2rKi20cfcdbvSYmJAX76iXnYNNfSli3pfpcR638EISGcfF60iMKqhqMjCyz06cNJFMnRmTbyoubRvn179OzZE3Xr1kVCQgK+/PJLnDhxAqdPn4bLg4tm8uTJGD9+PObPn4+KFSti3Lhx8PPzw7lz5+D6oDLNzJkzERMTAwAYOXJkqmLb22+/jQEDBiS15c+fH/kzwPATsU3I3Vy4QBcDLYYkJoZTmOlJ6CEIaeTwYRpTc+bohnlQEL2oHnciVSljYYWbN9leHccx1elrtItejdDOfVFwzYKM2Ym0EBtLC9DSheghBRaU4qDHUkS7cEH//1GeSMWLJ8+hpglrD6viphSN5j/+4Mzw7dts37NHD/2NiKAhmxH5F4ODOVv99tu6zjlvHnOrWGNvT6N67lw9x8ypU4zQ0IQ5S4HuaRzoxcU9Oh/d/fs89TKyiufZswxJ/OcfY/FegCLt/Pl0khByPkoBR45QUFm82CjeN2lCD4oML0ojZCvR0cbKhv37M0uClVMCAE56XL1K/cXGBjh2jPcPCQfNfi5coKfwuXN6m8nE67Z7d6Bbx3iU+ekTRq7s3Zv0o5l/X4iEyd/hVrf3UHr8oCQBbd06Lk2b6vnBYmJ4DsTGMv3AowQ0Z2e9wJImoM2fD8yYwYm80aP1vvPm8Tzs1En3xEpM1EOT04xSPAgbNnDx9eWGa7i5AQMHAh98kHEu1dHRjJfW8nNUr06RrV27bJklvHKF9u/ChXw+axQqRH3xgw90J0YhZZ4GzSM4OBienp7w9fVF06ZNoZRCsWLFMGzYMIwYMQIAEBsbCy8vL0yePBmDBg0yfH779u1o0aJFqmLbsGHDMGzYsAzfbhHbhLzF229zdP/HH1IGTsh0lKI3f3g4B+9Pmuw1MRE4uOA0bL4dg7qXV7ANNliAN/B99V/Rq48NevXKotwWYWE0/FatogVroZjFObrhdJkXscWtG/6K7IBjl90QFZX6qkwm2ogpCWrPPJMx0aqJiaxO9u+/wMSJur04cCB3Y8YM5vnNaDZsoKAWFESvx6AgY0GMzZv1mfO5c7k9KVGwIM+hTp34+vhxHnprjzlPTwqQT4PXXEYRGcnzQzMDFi0C+vbl/7a2HNx16cKBn3hD5V5iYpjjyceHTiE2NvRi0rwUQ0J4ncm1k3PRvJCCg+nEfewYf0OA3kZnzvB5W78+hdRnn+Xcz/btD1+vycTrX1vc3fkctQzfW7CA50iXLnwuARRvAwL0z1h6RwlpJyGBRaMiIjhnB1AA8/Sk7tOyJVC7VDBqul/Cy1PqJx3j0OJVUfDWaWzotwTt578OAIiOUnB2YYd793Sha+xYimgDBzLlh4YmoFnWSFi1isOENm1YfEBj+3Y+X6tVy+TMNOHhwNatusBmrRSXKMF8Bu3acXnYrOPjMnAgZ//GjeMDMQfE32uTJ4sWUXwLDGT7li08R4DkqbsFki7NQyk81GjPTJydH/smevHiRVSoUAEnTpxAtWrVcOnSJZQrVw6HDx9GTS2HNYCuXbuiQIEC+P333w2ff5TYFhsbi7i4OJQsWRI9evTAp59+miEFPkVsE/IO167xCRkZyRFuixbZvUVCHsffn972cXEcGDyRCHbhAq3FJUuSkmBdb/QaJjuNwRy/Z5OqJ2qFFfr0oXiUkfUMEhN5GVmHel49H4sS/tvRMX4VumI1iuF20mfiYI+taIk1pm7YUboPilXMn0xQK1s2exKYK8XvvnrVaKxduULjOyNDTS2JjaXoFhTEPDPa42fzZs6SWwpzwcE87oBxG+fMAawm5ZJwdASWLtUHLUeOsJBHSsJc4cK51DANCeFObt3KA6jtlPVSqFCKbos3bwJr11J82bKF0Uaffsr37t5lLu0uXeh1KF4ueY8bNyi+ax4uAPO5Xb/O3G5vvCHzcZmNJpw5OurBBocPM2Ts7l2GewYHM2w7IIBi6d27aa9gumkTf1M/P17nP/3E+527O8eR4eGc+NDur9aUKWNMQ1C3LhPur13LLAoABbh+/fQ+NjbUPdzdk4t32v8eHszyoHH8OPetfPkMyzmf41CKXshK6c+76Gg+x+7cYRGDHj14DN56i7/VO+9QR6paFXA8uBP2rZviBkrAPfQq3AtwML68519YvMwOpd5sjR9/02flChfmebVnj+7s5evLe32DBsx9q3HjBu2kbBVKzWYqx5q4tnu3XuQAYKRA06YU2Nq3t4iZzSCOHWMs67Rpemn10FAeREs30RxEQgIf/2vWMHWL9pgfPpyH75tveP4IJF2ah2XV3qzm/v3HmmFXSqFr164IDQ3Fjgdxx7t370bjxo1x8+ZNFLN4oA8cOBBXr17Ff//9Z1jHw8S2GTNmoFatWihYsCD279+PkSNHomvXrpg3b17699GKDBPbVq1ahcWLF+Pq1atJcbFJX2Iy4dixY4+97nnz5mHAgAFwcXHB/ZQym6aCiG1PIRcu8IlrOVX1qP6rV/MJXbo0Z3pq1crcbRTyFHfuMH+YpXG3ejW9ZdJkWF+5QqthwQJ9VNC9O4W3B/FPWm6LxYs5sNBwcNALK3TokLaZ2Ph4ik/WoZ4XL3LgoYl6KWFnB5Qra8aLRQ6gQ+wq1L6xCh6B9PlXDg4w3bmjP8DDwnJEltvoaHq5dO6si07DhrHK6fPPczDes6eeEi+rMZv5+wYFMbxJO3zbt1N31YQ5TZzT8pxt3arPJ8yezXCYlDCZmN6ye3e+3r+f55FlKKvl/9lqdycksPDN/Pm8iNJSItXWFihSBMrLCxHOXrgc5YVjAV44HuiFQHghCJ4IhBfqdfLCnJVFJMXAU8q9e7y+NAddGxuOad98k/cGqa/0cDTh7M4dLppYZvl/4cJ8lGmULcvH2+HDLJx9+TILaS9a9Ojvs7Xl4zBfPurpffpwcqRKFUbc2dnx/qd5LaZWUV4r/hIeri9hYfxrY6NPWAAMEbxwgUJZtWpsmz+fKbLCw1MX7awpWJD3dI02bTjRYplzfu1aOhNZi3bWwp11W8uWuugQH8/jkJUCUkwM9+XYMb2iJMBjNGMGhZC6dZmDrVYtvVrz9esUwdq2BeqZDiDut4VwatEQA7bSWw3R0YjOXxg3nSvCbe9GeFYtAoBC5alT/O1r1Mi6/cwQ7tyhIrxhA40QzU1Lo0IF3XutefPMKUh17RpLni5cyIvhcQtr5RDMZoqrt24ZRfHQUN7Dn7Qga24mr4ttQ4YMwbp167Bz506UeODZoIltt27dQlHtYQBgwIABuH79OjZs2GBYx8PENmv++usvvPLKK7hz5w4KFSqU7u21JEPEtqlTp2LEiBEoUqQIypcvn6LL3bZt2x5r3Tdv3kTVqlXh4uKCsLAwEduE9HHnDjOSTpumux0dPszkqqtXMybBmjp1OHLt2TNLqjEKeYuLFzkgyJ+fhmKq3m43bjAx7a+/6gpXx44crTxE8L16leEPqRVW6NOH+aauXEm5IMGVKw8fNOTLx1ALzSutQgX9/5IlU9Aqzp7ltaTVtdeoVYujnEWLsiTZbnp45x3g99+NE8sNGrD8fI8e+gAuJxIZSdHNy0s3LHfu5C3N0mMuKIi3P6WAbdtoywPA//7HSmmpsWIF8Mor/H/PHobkpZRjzsuLg8qMyIWH06c5ql24kC4uGs89x4QtgK44Wi6WI9q0YDJx5J6Sh5z14ukpmZnzGPfv8/z28TEm5Pbw4G13yJDs27bsZPNmXk6WuacWLwZ++80oqD3K46xyZSa4P3eOl/Tw4bwPbdxIwalfP84pWWNry+fkrFkUuQoX5qPDxSXnON1oUVcpiXbW/9vasmK5Ru/ewK5dnBTRPHEWLqR3ZXowmfjs1sS1V15hOOQvv+h5Q48epQiWmnBn+dryfyenlEU7s5kCtXZe3L3LdK5K0Xu4WDGeOwMH0gPJxkavIFqjBucLi9kHY8SkgihQ2A4mE3DviykoMHEEYlu2h8OWf/UvCwnJ3a5/CQmczfrvPwpsBw4YS3W7uFAt1QQ2LaY1M7h3j/k0vv9ev3B79qTNqcVI51ICAzn5PHCgnuv2iy+YT/nll2kDt2iRSz36n4C8HEY6dOhQrFq1Cn5+fiirJVMEMjSM1JqbN2+iRIkS2Lt3L+rXr5+u7bUmQ8S2smXLolWrVpg9ezZsM/js7ty5M0wmEzw8PPDnn3+K2Cakj549mZSjcWNa1yYT87r99hvft7PjKLRDB8YP/PWX7k3h5sa79qBBT56MS3hqOHSICZuLF6e9lSI//siYNs0IatOGoz0tq38a0AorLFpE8U0rrJAWnJxSzp9Wvjy3+4lv48HBXFFiIsWTIpylxubNNEhbtMh2V5KQEF7uS5dSjNKehDY2vCX07EnDLbfb/nfvcqCkhfHu3csBmrUwFxjI03H7doYpA48W5pYvpzgJUPCbPTt1Yc7Li4ZxfDy9I2IDQmGzfCmcls+H0/H9+koLF8btVr1xrEZ/lO1eIykpcnw8B7JmM/PyrVkDBF6Pw46/g5PEt9nfBMIxPBC1SwShnGsgnMIshLngYOPAJy0UKJA2YS7bXQKF9HLhAvXd33/nvXP+fD1cMDyc59sTTmZnCVr4XkqeZim13bnDPGdbtujrKF6cniKHDunzPFOmAA/yTRtwcKAYpi2JiRzXR0bSu+TuXeNldugQvdpMJo77Fy7UPdQqV+byzDNPX4GY+/d53lmKdA8T8LR73+7d+jratqXj1IIFeg7Kf/5heHx6CQ/X04KNHctHdZ06tC1atuR89W+/0SxeuJDXRp06DCTZtcv4mz/7LIsJdO8O1BnXTY/l11yxz50Dpk5lB801Kbdy86Yurm3apFf11KheXQ8Nbdw4a+yeOXPoUqhNRjVrxuNdt27mf3c20bw5z0WNokU5edqnD0XfpyHPYl7UPJRSGDp0KFauXInt27ejQoUKyd4vVqwYhg8fjs8++wwAEBcXB09Pz3QXSLBm7dq16Ny5M65evYpSpUo90X5kiNjm5uaGVatWoaWWbCaDWLRoEQYPHozTp09j1KhRIrYJ6eeVV+jPvmCB7r//33+0Grp1o8hmecEFB9PqnjOHbkAavr7MpyAIaSAhgTZX4cJ8HRPDmedPPmHoIjZu5Mxm06ZMJvWE51ZiIk/RxYs54xceTs86S680y6Vo0SwwPsLCOMvbpo3e1rQpRW9XV8bdatdgNoeb3r5Nj5elS+nNpWFnx5+pZ0+OC/KSo2t8PAd80dE8P6Oi9IFyQgLbTp3iT6hVBo2I4KA4MJDn95AhXMfAgQwrGjw49e9zcABUfAJamjehP+ajG1bBAZzYSIAtAut0RFi3/rDr2hFffZsPy5czLOnDDzk2+/lnatTWDB3KuZCSJfUlxVzSiYlUGlLykNNUR8v/Ld0e04Kra+p55ayX/PmfDus/F5CYyDHyCy/oUTXTp3Os2qUL80u1bZs1XhLWoZo2NkYn548+okP099/r3rdffEEHlvRQqZKx4t+rr/Ianz5dn1c8dYpeUnZ2vNaDgqgrnD9P80kLu//mG2OFRoATFJqgNmJE5jrwJKG5YIWFcdagTJk8r+BFRfG3cXPTz91r1yiUWYp0KQl3lm1KMT3F+vUU7caM4fPwww95rpUpQ1Fam4RJiYa14/DBc9vR0uMoPKd9pr/Rvz8/PGWKnjQzNxMbS3VRy7124oTx/QIFeMPQChsUL5712/jddzQ2q1YFJk+mrZXHnzdKUYhetIj+FZZVqatUoejWqxezBeVV8qLmMXjwYCxZsgSrV69GJYtytO7u7nB6MME5efJkTJw4ET4+PqhQoQImTJiA7du349y5c3B9YAwGBAQgICAABw8exIABA+Dn5wdXV1eUKlUKHh4e2LNnD/bu3YsWLVrA3d0dBw4cwPDhw1GnTh2sXr36ifcjQ8S2Dh06oFOnThiSgT74QUFBqFKlCr755hsMHjwY/fv3f6TYFhsbi1gLP/fw8HCULFkyT514wkO4coWzZ2+9pT9YXn2VVsO33wKjRrFt2zY9Ji41zGb2+9//aHGePatb2+vWMRmJlmRUEB5GSAh2v/IdVm4rgOWlPoW/P2Bnq6hi1KuX4UZQbCwN6MKFc5h9pRSVkb//prqlYW/PqfNu3Ti6zeas5Veu0Fj74w8KSBqnTmX8JW9dVevSJY4Xy5fXhb3z5xn5HhOjC2Pa39TaPDyM4VqdOtHDZNEivTLqr7+mPbWlhosLxTWADsBdu3K84eND75WNGylWrlxp/NyzOIP+mI++WGgornEc1eGDN7EEvRAEr6T211+nQ+S779LheOrU9G1ngQK68LZkia7lXrrE07BEiUc4GJjNtNZTE+asBbq0ZnTXcHJKHrKamjBXoEAOu5DzPr168frXKFaMXm/9+wMVKz7eOjXx6mE5z+7cMaYpbNSI43qNkiUpth04QK8igNfGZ5/xfC5ShB5HmteZ5f+Wrz09jekNzGZeF9q9aNUqejKdPm0ctGr8849eNdnPjxM8lt5qRYqk85RNSNDVH+sltXbrxaJaNgCGgFevTrVSW6pXFw/UB9y6xfNaE3h796YD2oQJ1IguX+bvGRBAh6yLFzn5oYLvwP7ObVyKLwm4uaFTFxt06waUtLutP7tv3dLVYH9/npxZUkI9k/D3173Xtm7VE6cCPNHr1tW91+rWzfq8oFu38uLV1NCYGI57Xn/9qcxRGhdH7/fFi3lOWz6emzal8PbKKxaFkeLjeQ/K5feGvCi2mVJ5kPj4+KB///4A6N02duxYzJ49G6Ghoahfvz5mzZqFalriTQBjxozB2LFjU13P4cOHMXjwYJw9exaxsbEoXbo0evbsic8++wzOGZAIMEPEtnPnzqF79+6YNGkS2rdvnyFlUl955RXcvn0bO3fuhMlkSpPYltrBzEsnnmCBViN61SrmjDp+nO2nT+tlBo8e5U20dm0+FC9fptFlY0NXIIuLMVXi4vTcPfHxtHgDAzl9qI1cBSE1VqwAXn0VUfZuWPvjFbw6SC99aHlqPTWYzRwtrlrFxdLFAgDq16fw1q0b41GykTNn6O124oQxp/DAgfQq+PFH3WD7+28OQq3Fr4cJYzVqUEzSeOYZ3qL27uVhAPRJ6vRQrJgxrLhhQ65z5UoeVoCGaJ8+vBU6OXFxdNSLk1n+1f53caFIp7F8OcXJDh2SankgKIg6cv74UJTctRTeG+bD5ZQeJmr2KITgtr2xtWR/nHGogcAgkyGUNSiIHhYvvMD+K1cybZuW6qZWLYqU169zuXZN///6dY67NWxtaWhrIsLrr/P3nDYN+Phjtl28yEpnlp5xJUvyGKZpnKIUBYFHCXPakt48KfnypS7GWbenUplVSD/HjlFEXrSIYphGixY8h4KDKUQEBtKryDJ0r2FD5tbcs0f3pPj8czqZpAUtVLN2bZo2Gj//zHP/lVd0LUMb96clDU58PHWDM2f05fRp3oJXrdKdkJcs0QMBTCbel7SQz8qV6biT5LATF5d+Ycy6r6V48aTY2/PCjY5O/p6tLRUkTXyrWZM34RRdYfMmISHUg65fB0LuKuQ3MQnov78H4axvINrVDEKVwkF6fgGzmbNPGo0b04WofHkqF7/+ytmgSZOoKJcuzf9zc+qVyEjmU9C81yyjXADea9u14wOpTRs9hCGrOXGCrqP//svz+tixp1JcexhhYUwXsmgRf1JN8ahkfwn7Xp4Cd//DHDvOmPHwnBm5gLwotuUVMkRsS0xMxPDhwzFr1iyYTKZkKqDJZEKYpQX8CP766y/06tULR44cQZUHrgTi2SYAoGHn60sLdM0aWgwaNjYcoU2dSo+hlLhyhUmG7Ow4JZveMIPAQN3d4tIl/fObN7PU2eNOewt5h/v3OYrR8mOYzVQ1Xn2VrkAPRkRbt7IS3tSpfCtDCAmhYWgycTCRGzLEagUWVq2iImRJpUosOVW+fLZsGsCf7/ZtDq5r1ODP6+nJsVzt2oyMee01FvwaNy59665aFTh5Un9dvz4H6atW6en7/vqLicMfJoJZt7m7M9+cxunTHGiXLcuQI4BzEEplcKSVFpM3fz53Qnse29oyN0///vz7CIVZKV04iI3lktZHeESELrzduaOLBgA9llat4uZp19yqVXqlVktsbCi4WYtwJUvyVl+z5mNeXpGRaRfmwsPTt+4HlVkfWfjBy4v9ZGCWjDNnOEenCWm3b3MsdukSfw6TKXnqvwYNjOHnpUtTBLYUzRctYvilp2dyrzPr/x8jf7SB6GiGXhctyp8a4GRAz57GatMOiIE7wuCOMHzzURh6dqD4FXolDJePhaGYcxgK5wuHXeRDRLOYmMffUGu0m1dqi5bV/2GLoyN/oMuXKQJZLsHByb/TZGK+BUsPuJo1c3eyTgA4dw6391/H8jPVYVvMC++/D2DbNqjp03FsUxAKxAaipEMQbGNTECUtsbNjCdkePTj59fLLjCAJC+M9JCAA+Oknxpxa8swzdL+sXZtLrVoWrkQ5DKX4kNTENT8/o4upnR1FRs177bnnsndS4/p1/ia//85tt7OjUDRhQvZVmMzJbN4MLF+Ou1Wa4Ne4vli4EPC+fxGbruj5v252eQ/FV/+cjRv55IjYlnPJELHt448/xowZM1CjRg1Urlw5Rc82Hx+fNK3r/v37KF++PPr06YNRWtgfGLe7Zs0a3LhxA/b29nBJQ/IcOfHyCOHhnLlZvZouD5bCrbMzZ5i6duUgLi0zTLGxXIenJ18rRSNMe50WoqN1l+PERI5ir1+n+8WgQXQfeepclp5yoqJYFmzyZBpily49tA55587Ukd5/P+VcVKmiCWoXLiT/a1mdsVAhGoYdO/IayQ2Dh9u3KaKvWkWD3smJ16Z2Lf31F43JFi0y5frau5c6euPGHG8BHKPVrs3bQ2Agxbe9e+ndduoUvU3ee4+p6P75h+KpgwMwd64ugq1YwQF7z54Mv9Iqv+3fz3xGmuNtruXMGRr+CxcyhEijWjUqyr1766P+bEYp/oaaUHb8OD15LL3jbtx4eMo2a4+5ceMY7jtwoO6Rp3kvPlEUaExMyjnlMqMya8GCVF7Tu9jZZfxnbG2f+IKwjATWhDMXF6MH2gsvUJPZuZOPcCDtOdA8PHjI/P2p8Xz6KatLlizJ0E8nJ2oTGRCBkpwHleSiA8Jw7kAYbpwMw+2zYbhzORzh18IQfycMbghDt+ZheK40RbGw62G4eCgMBUxh8LANQ35zOOzNcY/+rrTi4pJ+Ycy6X2baTFr5zCNHjALcjRsp9y9d2ijA1aoFeHtn3valhlYBIygIyVyALRcAtxdvhbPzg7D5Jk2AnTvxClbgZKVX6ED+5596RRtLtLD2IkXo5Ve2rF7dZuFCHict55pSFKKWLWNkR/HinDFat465Cg4dou2TEtrDrnZtKtTZmQf53j2KMBs2METU+jwoXVoX11q2TPtsT2Zy7x7ty5kzdZH71VdZYTQbJyRzBDEx9PTTzsFRo3S34smT6Vrcowfd8QHcvaNQaOZXwHPPIbZabczZ/AyGfpCbjTDRPHIyGSK2FSpUCAMHDsTE9GZpTYErV64YyrqmRNeuXbFq1apHrktOvDzAgAEcxFlOx3p6Uqno2hVo3frJ4+x/+YXZkNevZ5IUgOLFtGk0QCxDk2fO5A39rbc4IgdoiHTpYozb8vTkQNPJiTN+WnzGzZvABx/QMLVMqjRzpu7qpLlZ3LnDbLX29hQgNL7/nq/79dNrx0dE6FWdtm7VPRZ+/JEjyT59mM0coKHUqBGNpu3b9RCKn39mjrqePTni0KhenSNPPz+9quScOTS+Xn7ZGBtTrRrFUT8/PYOyjw/X16ULyxVq/PADjeuXXkqf0JnTiI3l8ZgwgaM6gIbPqlV0XUqF6Gj+lAMG6FXvgoLYXtotlOLZowS1lChalMKfpShtY8PfvGNHJsutXj3nqzvh4TTitWtSKXog+PtTvXrllXStztJbKiiInmghIVyVxhtvcGwxYQJvCQAPY6FCPJ1PndJzfZ09S6Gmdm09AfiZM1yHoyPFN41u3ThX8MsvdIwF+FNWrEjt0DLd0Dff8LIcMkT3TouNZQpJL68cVFkrNJQDrvnzgX379HYPD4pr/fvrZQhzGWYzx7Mphalev87391sUUNUiqyyrs65cyVubi0vq3nHa/xlSeCMujsJ0akUfLJc7d7gTOZlHCHQxZntExdsjzmyPmER7RCfaIzqebffj7HE/1h7xyg7xsE9aPDzt8WpvfR0zZtkj+J49Bg2xR+nybNt3yA6+u+3hUsAe+Qvaw9XDHm6F7OFemEtBT3sUKGIPe2d7bPa1x8iv7REeze9JgD0aNbPHa33s0aGLPRxdUxAPzWaKJ2kMuVRhYYi/E47Y4DCYQ8PgHB8G+8gwTvJlFK6uaRPGUhPR3Nxyr5dkUJAuwGl//f1T7lu0qO75pglwpUo92T1u924qvk2b6nmE169nlQJNSEspJNaKBBt72JtjMWeOCQMGAHjnHSTu2Ycp+b9Fgf7dMGgQYHP9Kj2PLctEe3ryBhQczFDEsDDe27Wb0m+/cbJb80pOCyEhPI6HDnH26tAh7qMlDRsaS6vOm0eRr3FjvXR2RmI2c5s077W9e43XkKMjS1pq4aGVKuW8Z5dlqdkmTTizp7nOPk1ER9P4OnRIP89OnjTOkC1dypADgH1WrNB/XyuCgjjEzI5aFhmJaB45lwx5OiYmJqKNZcW5J8Db2xvbtm1L1j5p0iT4+vri33//ReHsio8XMg+lOJJdu5bJdLTYJhcX3gUrVqS41q0bHy4ZFR5nNvOmHBZmFMsCAigMVahgFNu0JKlNmuhim8nEz3p50bVh3jx66Gzdyvf9/Tnz1Lkzjey//05effHIET5ImzTR22Ji+F3WcV5nz3Ldln0TEvTRvaV+fvUqjQrLvkrx4QQYjY3AQAqJln0BKgiJiUbBMzSU+xUYaOx7/ToHEZZ9IyN5PK0zLY8dS6OsUSNdbFu1igZEx45Gwe/GDfbJSd6CcXEUEseN02dFS5eme/8bbzxy8OEUE4rPW14A/ruYJKxFbLyIAsEXAKRBUCtfnuenVnK0QgWqPvnz83zYvZuzzevW8drauZPLyJE06l98kce5VatMcr94QtzcdKEN4PXQpg2v2fbt9faJEwFfX6iu3XCnURdciilmsD/HjmUY5kcfcXIT4CU1Zw7/j4zUxxWNG1P4sqye5+5O2876Mnz22eQp5SpXZjo6a776ihq2ltQc4OlTq1byuYJDhyisaXYiQMGnQ4eUhbkdO1gFVNPoY2KodXt5MdolQ8cLiYn0BvDxSR4m+uKL+oDsodUHcj42NrzEihZNPSOBJSNG8DZZu7be9sDZBJGRvGVbpya0pGBBXpJly1Kk036zM2f03OKPvPXly8fRQlpGDClVZg0L4307tSUh4eHvP8lnUuJh7wFwfLCkiyAAM/SXw7V/Zult9R8saaH1g8WA74NlgFW7JhRGRyePQ30IJgD5HizWKBsbhCk3xDi4I9HFHaaC7nAo4g6XYu5w8HSHyT0N3mWurk93nj9PT71ypMa9e4wltvSAO3uWdp32TNXw8KD4Vq0aL2AvL/7Od+6k7IlmY2PMHfD557yJL1umi20xMckfJC4ugKcnzIU9cSXaE5civdDyNU/YeFM4W7LBEzYLFC5ceHDzmDcPtgBGWq6jdGlWxdm/nxOrzzyjFw4rXJh2QFQUbzzaw+qtt7ikBw8PToS3trg6NAFOE9+ef15/7/59RoSYzcbiCrt28RlTqxZdhNNLUBCr9mjea3fuGN9/9lnde61p05yVID8mhnZhfLxekrhTJ/5+Xbrw/5wmBmYW+/bp582hQ7RnU5psKFRI95zU8nYDujCeCrl5rl/IHWSIZ9urr76KGjVq4AvLwXEGk5acbdaIypvDsXQ1SUzkAzY42Fh44MoVPnQyM1G6Jpo0bqwXTLh2jW2FCjHOT2PZMrrId+yoJ4ANCqKXWv78dFuJj6doOG4cjQuNokXp8eHuzv/fflt/z9eXD9Z69fT1RkVxNsbWlp5pGgcOsG/16npW8rg4eruZTBx1a8bzyZMUxcqX172szGYaHwDFC01F8Pfn7GOJEsbj7evLvw0a6IPomzcp5Hl6Gt3XDx3i+qtX12cn79xh/wIFdLfuxERg+HD+vosX695148ZRmXjzTc6oahQuTGPtxAl9P7SZrRo19Ji/rCAhgQl4xo7l9gMc4I4aRaPUclQcGpqyd9rFi8as2ynxKEHNmsBAGu2tWiXPjXLlCmfL162jUGuZZ8fBgWGZHTtyeYRncbajFI6fMGHXLtpTzYfX5MDoAXtRH7W/6Qb7Ht2AZ5/FmDH8qQYM0AU2gKdayZL0RMpJWuPBgwxJrFdPv7ROnuQtwNnZ6AzQpQs1+tmzqfMD/GylSrykLFN+ffMNxy6DB3PeAuBpsHMno6MeWivm7Fl6GC9YkOPDRHMS0dHU4VPyjtO85izF01KleFvVSMljbt8+Oitbe8cVLZozUzSePcvLU9P0tJDOpCVAwZyQmOR/ZocE1KsRjw3/6GJc+1bxCLgRj9/nxuP5Kmzb8l88/vsnHoXduRR0TUDB/PEomD8e7s5cXB3jYaeyTkBU8fEwPUQgtMRsa4cYB3dE2LjDpqA7ijxDYSzK3h2//qVlUuMSDnc4F3WHxzPuaNTeHS/1fyCi5c//9Ay4sxrrUtF//klbqFAhXryHHyRWT6+HqJ0dBSTNRvvkE14gn36qC34BAbTzPD0R7uiJALMnKtbkjFBCAgMM7t1jnkAtt6eWjk4LPkji3j26SjdsqN+jtXDSKlUoXGhcvMibSlZPat66xQiQmzeND7iOHWm3AHwYakJKnToUT6wnrePjObmsea9Z2t8AH4qtWlFca9dOj77Ibo4e5e+tzcqcPUtbXCnazf7+uSMNyJMSE8Pf7PZtY9LZ8uWTe5sWKaKfD1pOwCf1Ms3liOaRc8kQse3EiRN47bXXMGjQIHTs2BEeKdwUUmpLDyK25REiIznTtGoVHzBHjuhGx5AhHGl88YXRoyU3c/kykzf9+qvu6mAycRbvl1+yd9tyIpcu8WFbrJh+DkRFUWyLjqb3hXYtpybMde1Kw2TyZH3KKjqaBuSTjEYTEym2jh1LRQOg8frhh/QGvHbtyQS18uWhylfA6fgKqNpFF9RWrqSNaDlJDICGqa8v3Zh8fXXXmb/+YvwawPeWLGEZxiZNeK1FRdF1Spuhv3bNuN7KlXXhrXHjDM6g/2jMZv2WEBcHDBtGO2v1al2/1YoRDBoE/O/DM8Dq1VCrVsFkGc4IAJUqIaxVdwTU74aiXerCrUDe8uDYv5+nYoMGujB34gS1LxcXY9J2LUfgnDkUHgGeMpUrc8xy757e99tvgWO+9/BVxWV4/sh8Q+GKBHcP2PXtRS+2WrWeauM2IwgL08W3uDhdCAWoge/dy8tVG1T/8EPyXOQAb23WBR00Ma506Sefj1CK54ilaObkZMyB1qIFb3vbtunn49df83x6FAUK8HaqCb8//aS/t2sX5wQqV86gkNvMRCkkxiXC/2w8KpZ9IMLFxaNJwwQE3ohHrMkRdxLcEQ0n0G+NDvsrVyZ9HP36cc5Dq/5ZsWLOcrrJlShFZdvSyyy1/4OCaC/cvq1/vnlzPmf/+INuykBSpfEkbGz4PSkNq+ztOVH23HPMAVanDk/0h3gBr1rFbAkNGnBSRGPcOG5e794pOLImJBi96h/kbsOvv+oeanfv0j5q1SrFsLocw7vv0iNNm9S0pnx5Cob58vH3O3rUOHsB8Manea81bJjl9gwAioCXLulC2rlztP+13/6ttzi5b427Oye+J0zgOZOXuH+fv5erq+7leOwYJ8/d3DhRbTk2vHJFF9Vq16ZTgNgeBkTzyLlkiNhm8+CCMD3kxE/MyPwSaUROvBxCYCDdL1avpteapVfNvn1pi9PJ7cTFcf9nz2bid8ukUHFxNO5KlMjebczJpFTEYuFCeph17Up3HYAPcM1L7t49feZz/HjmQBk2jGGqGsuX87jXqfPw2dy9e1nKUMs74uDAbYmMTFsONQtBLelv+fKPrBwVHs7uQUEcjHXrBo48+/VLOa/Mc89xdKvNCr79ti5EFivG2MSePVkpVSurd+qU7vW2a5fRPd/NDWjblsJbhw4Z4r2kFG39ixdpM2m27+zZ/Im6d2f6QK2vuzvt59On9ciA1asZrf3ii8Zq7QnXbsFu/YMCC1u3GsPQihbVQ9EzqcBCTmbPHgpzjRrxnALomNGrFy+ZPXuQFCbq+9Z81L+1Eo7Qw0QjmnRA/+39scOtE4LC9AHiuHH87HvvMbIF4C1+3z4KJ5UqZe1+5jW0sbs27ti1Sy/EbVnQ4WEmlrXH3AcfUOT77DPdUfj8ec59WXqdWXuhWRboA3j9Hjyov65Qgde1n5+ejeCPP3htWxZE9fY2/u/pmesjjx9KUBBvodqxcnHRhbTKlWkCac78whOyZAkH7W+8oZ/cS5ZQ0NDC3tOCjQ2fH9qFN24cwysHDdIT+2vFijw96Wnj4kKx6+xZYwhqSiIQQFGsWjWgVi0cs62Fvy7VRJP3n0ebblSUr16l81XVqrw2H6oTBQTw2X7uHG8I2sTi119TFBwxghMkuZG7d/UQ1P37+cCxTmGi4ezM53z79rwJeXgk94DLCpYv53l39ixtNeuKOydP6ufnvHmcJNVyU2iLp2feEJQiIngCa2Gghw7xPFWK56QmNMbH02CoWpW2fXb8brkY0TxyLhkito0ZM+ahQhsAjB49+km/Jt3IiZeNnDvHEfHq1XwwWp5mZcvyYdi1K8uB5dbEuo/LhQs0ALSs+MuX0/NowADm0RAen6goCi03bnAkqTFwID0Mx46l8QkYhTktn9yFCwyV27OH72l5M9LpoZYeQS1FlAIuXEDUf3449bMvVke0wujL/WlsX77MXCs2Npy1bdaMxr9mWFri68v9+esvY8GEZ56hYf7118ZRbmgoPU/XrWNSZMscJyYTRUnN661WrUfm+tG8XDw9dY8dpXhotVxWmhjj48PxUJs23ASNH3/kGKZrV/2SSRNhYdyHVasoJloOdnbtMhZeyAsG7ZNw7hwLHSxcaMhdGVuhKhwGMUz0aIA3evWi/mrh6IZOnXi6zJunR8afPk17uWBBoxY9fjw/++67eq5tLT2Rt7cuAgrpIzGRY+3UQlWLF9c9pwCKb9ev87fQ8htq4daPwt1dF8qqVjU6aO/aRQ27cuXHu+3ldS5fpgZSosTTnSbtsYiLo3eLvz8fLNoSGckwSQ3NA23xYs4kAFSntQdQ/vx6YQDLJaW2woUz5tlgNnO7H4hviQcPw3zwMOzDk0/UmU02sHm2UlKeqaASteDZtoYxZ9mlS3yuFS1K2xGgmFOoEGfoDh3Sc1RZh8PmNh7YQkmhodu3GwtGmEx80JjNnGBdvVp3t121irN3XbqwXSMq6vFzRyQm8qZqGfKpLX5+ukEzYQLw5Zf655yddRGtUiUaO3lxgj0szCisHT7MmZyUpIbixRnOPGNG8veEdCOaR84lQ8S2nIqceFnM3r18uK1enTwbdO3auldJtWoyuLXk44+B6dMZG/fNN2xLSKDQkR2l5vMiiYnMCxITQ4Ps4kUaAosWUYRxcnq0oAawX48eNJgqVKAR6+FBN/jHSeCroRRnzX199dBQixAWc+eusFmzil3NCmObbEaRjvUw4BP3tDloxcYyHOOPPzjwiIri9p87p1+Ld+8a1azERKogWrjpkSPGTfb2hqlDB6ombdpgxHg3nDhBrzQtFcq8edSQ27XT0wQC1AiDgznh3rAh24KCaMOWK5c85dwTo5XzXLVKT7arDUCGDqUx/8UXusfC08C9exT65883xpt6eHCQmsYw0Z07eRo1baqLZYcPcwxYsKBRmNNS8KRVmDtwgMKcVg/DbOYlnJNy7OVGli6lbjFwoK7PL1vGQiLWXmeWHmleXplTKDBPsmwZD/JbbwFFikApIPyXRcg/dyZsW7cweliL4E9iY3URzVpUu3o19fxoUVF6nO2PP7J/nz704AY4sXb3Lr3PsvnmERdHHS8sTOHy9msoE8IqqCFbDsPu+GG43b+d8gfLlNFzlQUEMJ68SRPaChrr1+uTfbn5fIqI4PNaE9isK5kWK6aHhrZqpd/E7t7l76udC1Om0KPvrbcYRgvQe8rdnfH1ljngatbUU5QAPGfOn+fx1Np//pn2umV0jiWWQt+RI5x90MS14sXznsJ+7x5nQjWXy9Gj9TGMNdrx1sJAa9eWPK8ZjGgeORiVhwkLC1MAVFhYWHZvSt4kIcH4unp1LeJFKXt7pdq2VWrWLKWuX8+e7ctNnD6tVECA/nrNGqXs7JR6+WWlNm5UKjEx+7YttxEaqtT+/UotWaLU2LFK9e2rVIMGShUqpJ+fqS3e3ko9+6xSJhNff/KJUkeOKHXgAF+7uxu/a8AAto8erbdFRio1dKhS332X/BrRSExU6vZt/XVUlFL58hm3JV8+pZo0UWrUKKX8/JK6rl/Ptx0dlbp27TGOz/37Sv3xB4+PRnQ0961OHW73g2v27l0eyrAwpdTNm0rNm6duNeiuIkz5jdtqb6/2uLRUw/Gd8ptzRimzWSml1L59SnXooNS33xo3IT7+MbY7M0hMVMrLi/vw3396+5UrSp09m33blVkkJHA/X3+dJ5D2+9naKtWxo1IrVigVE5NpX+/rq9ScOUqdO6e3HTyoVPnyStWta+zbvj037ddf9bazZ9lWqZKx79GjSh07xstIEDKNHTuUWryYN0aNv/9Wqlw5pXr1Smry81PqXuFneLLu3JnUrRv+ZtuLLyb1nTtXqZvF66iYZyrzYtC4f59LXmXbNqUmTuQDRmPNmoc/n52dlXruOaVeekmpzz5TavZspbZsUSouLtt242GcPq3U228r9e67xvbmzZUqVkypzZtT+NCtW0qtW8eHZvfuxvu09eLurlSXLrQ/Vq/mc/vBszdXYTbzBj55slItWnD8YGVfqJYtlZoyRanjx9O3j8HBRkPpxInUj2eBArQH3N31tvXr9c8uXarbZtWqKfXKK7TPFi3itRsZmWGHJMdhvW+NG/NY7N6tt/36K9tKleK5O26cUv/+q1RgYNZu61OKaB45FxHbhPQTHk5jp0gR4w148mSlevbkQP7evezbvrzAJ58YjYBy5Xh8g4Kye8tyBqkJaoULp01Qa9JEqTffVGrCBKWWL6cRFRGhr3/8eKU++kg3EuLjlbp4Uak9e4zb8eGHtJrnz9fbTp9OLszFxyvVuzf71qpFo65GDaViY2lkhoVRnG7ZkvuzfTsFsBRISOAA7bvvjO2WWm16CV65QyXa2OrHyGRSqmlTNdb7Z1UYQWrDBr3vli1K5UOM6ld8k1LDhilVoULyY/zMMxQcN2xIdT9yDGfO8NqKjdXbPv6Y+/Hss0p9/rlSe/fmbsH77FmlRo5Uqnhx4+9UpYpSU6dygJfD2LZNqV9+MQpzmtD8/PPGvu3asX3ePL3t1i2O5VevzoqtFXIt/v5UgS3txE2bqIgMGWLsW64cT7QdO5RSSp0/r9T/2q9kW716Sd2aNFFqOoapS03eoDigKAi7IkyNqPi3QWV5oWGCioYD13HxolKKkxTD3OaxzULE27NHqaPzj6iwS3cy+CBkMHfvcicWL1bqm2+UeuMNDs4t77FvvMH9mzBBbzt9ms/N2rWVeu01pb78UikfHx7vW7dytJAUH0/d4dIlve3gQe6iq6tRDwwJSWFXAgOVev993swsGTyYYtO771Js6tlTqYoVU7dvihThOkaO5OSJv3/OPG5379Lu6t9fqaJFU7YhBg+mAGtpmz0O0dG8Dpcv5/no60vbZPx4TjA+zF4sWpTXYEAAxzUXL6Y+iZpXuHOHk3ITJ1JQLFuWtqslL76YfDYsLIzippAt5EXNY8KECapOnToqf/78qkiRIqpr167qrNVEuNlsVqNHj1ZFixZVjo6OqlmzZurkyZOGPrNnz1bNmjVTrq6uCoAKDQ1N9l3nzp1TXbp0UYUKFVKurq6qUaNGauvWrRmyHyK2CY/m0iXj7I7ZrFSZMrzR/vNP9m3X42A2G62ey5eVGj5cqR49lBo4UKnvv6chnBMMu+PHaXy5uRln+Hr25Eg0u7cvswkNpUdZRglqR44kN9r27dNH6lu2ZMx2X7um1IgRSn36KWfe27VTKn/+5Nvo7q7UoUO6NW4p5vz5p1I//phm76qLFzkB/uabyR2TrO3CyZOV6tTJqBtu2qRUEQSqsV6zlHrhBcN2xsNWHRj6e1Lf8HBqTwbd9/x5pWbMUKp16+Sz0s7OnH2fPTv3eLkOGJB8P4oW5YBnwwbjoDGncu8ej3nDhsb9KFiQIsKBA7nyHnLnDk83S15+WSkPD2rUGpowV62ase+IEUq99ZZShw9n/rYK2UR0NO0WS1fHPXuU6tNHqa+/NvYtX54nygPvYbNZqbAFq9hm4W45ZIhSKxz7qICqLZJunocPK+WBO6qTux9tiQeMGsV7rOUkRUICbxvWt44Z083q4x5X1dU5G5Ju1itWKPUNRnEbhg5N6tuooVlFwIXtD54Np04p9fGLp9XSt/4zeEvfv5+Jl7fZTPFh505ONI0aRbukbl3eX1J7LlteuD4+/D0s1XCzOVfek5TisxegPqiRmMi5mn//tfLmjoxkxMKuXXpbRASjGQCjYhcYmLKHY1gYz9nvv1eqXz9Gltjapnzc3d0pHn/0Eb2wTp/OesEoIYGGw5gxtONsbIzb6ORE7+off1TqwoUn+66zZ2nXd+hAoUiLVNCWH3/U+x46RFfpdu04DujeXalmzZQqUULvb2dnvJd8+y0FOIuIg1xLcLAuPL70klKlS6d+/VrO6Pr782Es5BjyoubRrl075ePjo06ePKmOHj2qOnbsqEqVKqXuW9wTJ02apFxdXdVff/2lTpw4oV577TVVtGhRFR4entRnxowZauLEiWrixImpim3ly5dXL774ojp27Jg6f/68Gjx4sHJ2dla3LaOQHhMR24TkmM2ckhs1Sg8NLVDAKFKtW8c+OdEwun+fYtTvv/Oh+M479BqqVIkPdMuZ1OPHU3+wFCyo1LRpet+4OBqzWb3P9+9z9qhePeP2Vaqk1PTpxpCW3IaloPbNNxTUGjZ8MkHN4gabKkeOKNW5s9GYmj798fcjOpoj/QkTjKJZnz76d7i68jccNYpeefHxnLEvVIihMZa0bZt81vDCBQ5m3nzT2DcwUP00LVoB/Jh2eh44QLupenVj944duer//U9vu3qVnx027EHDtWtKTZ2qzLVrs/OZM3rn3bt5rFMLmQgPZ8zU22+nPGP9/PNKffEFBxo5eYb43j166b72Gn87y31wdWX7N9/QM+ynn2h8agQG8re1Fkvv38/cGNqEBA7ievUyhh/Z2GRJmGh2Y3lr3rePl9/nnxv7aE4hltr6xo28nbzxhrGvv3/abidCFhETY7x+TpzgDzxzprGf5m3r66u3rV6dTEA7eFCpq9U6qJhSFZJOiEOHlPLGLTXIbYlhRqJfP358/Hh9leHhvJX9+mvGmgURERTyjmwKNghob3YOVtdtS6lEO/ske2zFCqXGYyQ3ziJesVFDsxppN0UdGvV30jV/7Rq9otOlEZw8yQ9ZKtkPs5u0pVgxpZo2pbKtPZ/zQMRDQgJ1nKpVjVqDjw9NRkuxLYm4OOOzbuJEHqNu3Yz9pk5V6q+/Hj98OCqKN75ffuGEUe3aydNTWE6CNWpEFfnXX2kTZfQk0q1bFGN79uRsiPU2VK1KL/JNm9LuAR8Xx+fqqlVKTZpEe6hhQ6UWLND77N6d/LsKFKDI17+/MWXEwwgKolJqaSwpxXsIoNSyZcbv7NWLdqSvb85+cFy4wHOvZMnUr99y5ZR69VXOzm7enLvHGU8JT4PmERQUpAAo3wfPdrPZrLy9vdWkSZOS+sTExCh3d3f1P+vrVim1bdu2FMW24OBgBUD5WTwcw8PDFQC1OcV4//QhYptAYmP5ABo82DijA3C2rHlzpW7cyO6tpDhz7Bhdy3/6id5Dr71mfNA+yhC0TKAREcGQzRkzaDV37UpDXZt1++knva+Wt8vDgyLPoEFK/fADjfSAgKwR4Q4f5vdaeko5OHBUeeVK5n//ozCbaWRcu8aB0I4dSq1dy9nUWbN0D7X0CGovvPB4glpKnDxJNxhLEaJ/f6NQkhbu36eBOGoUzwVLg/ZB2JBSin2+/54xRA8TlqwFkEmTOMNqmc/m33+5fmv17EFyqwujF+qa2NWr6s4nE9Vr+EM5Olrof3fuqH+W3le//GxOe0oyC48NpRTDCgCeg71707s1NSPdbOY5++23NHStZ5gLFeI6rPMg5TRiYnj8Bw3iOZnSubpypd5/0SK2tWplXE+BAmy3t6fHqpcXZ96rVOHA6IUXqHp27coByltvGUfGV65QWFixwrjeFSuoBnh6Grfp2WcZepQDw0Szi+XLeRuyTCMzaxYPV5cuxr7PPst2y0gCf39GP506lTXb+9Rx6RJ/EMtnulL6ZJOl6KPl+KpTx9i3aVNldnRM8poKDFTq635X1JKaUwzXqTYXMnGi/tHQULaVKGG8LZ88SRMgR5iTFl42584p5dtxsgot+iyP2wNqFgtQClBmkymp/4oVSvXAMuVTYhSFxPh4pfz91ZTW/6lZVWepwN7DeRFcu6bCwvhTJHzxFQ/IwIH699+/T7uwTBne4wYNolC0ciWf+3kkd5XZzMe5pYeiUvSWBXgf0LDWgZPo14/PSsv7+L59FDo+/DATttqK2FjaH7/9xkiJRo0otKX0DMuXj8+hAQMo2O3dm75EmLGxnOgeMYKTatbrd3en/TB37qMTzoaEGN3nT53iDVnz/rNekmYKFS/i4cPp2e3rm/H2+aZNtGksx0SagKotJhMnxHv3zl4Bbs0a2hPff6+33bxp3NYKFWhvTJnC8UwKXj9CzuexNA8tN2hKi7UA/rC+1veJ1Po9IRcuXFAA1IkTJ5RSSvn7+ysA6rBVqEKXLl3UG9azpyp1sc1sNqvKlSurd955R92/f1/Fx8erqVOnKi8vrxS94NKLiG1PM5rnRs+exlBFQCkXF7oU//571rkKx8fzAawlIbZMvHn+fPJtTE1ACwuj+0Lr1hysjh3LacctWzijkxbPjqgoGiiW7qMrViQXCywXy4dZUFDminDh4TQkatbUB++Wo8fH/c64OLqVX7jAkcXmzQxp/PVXJgn7+mulPviABmTXrhRha9Sg0V2wYPLQgLQsGS2opcTZs0wKr/1+JhNnIS0TQqWVn39O2eDz9qbwaym2ZSRBQRzMrFplbK9Vi99v6arzQJiLqFDD6IzZvDn7/vGH3vf0af6Wn35qXO+uXfz9rfMEjh2rh5FrS8GC9CB91AxQUBAH0a+9pgtPlsJn48Y8B44dy5les0pRudy7V6mvvuKgpE8fCriHDul9/vqLBmz//sbPOjik//rw8dE/v3atLi7cu8dqA40aPXodTk6cJChenNv13HPGPIP+/hTBrd3AlizhAP6333jOrF5NN7AdO+gWdPo0xdiAAN53H5aoPCGB9xXLJPBKcST7+ef0ltYID+dAxcvLeL+eNYveEOPGGdfxxhs81pbPqn37eM/atMnYd9s2DnwtBIGIoCh1eGuoOrJPF43NZn3eyVJv/uUXtnXqZFztF19wszIg4iDvERTEQZ9lOgql6F3h6Wn0QPvnHx7g2rWNfZs1S3bvunfwggrqOdQgMo0bp1T54lFqymT9/nH3rn4pWNr7P/3ESLPFi41flRcKbUSfu6rCu/RWCR068fm3dq06+95MdcO5vD7RkZpwsWmTWr6c/3727CoepAcTjzNnPqih458LQukfA8vHzqZNuvBq2b58Oc1BwxgsNJQeUCNGGFf42mtcieU9K7vDZRMSeO9evJieZS1aGIsCWC62tlQX33iDP76fn9E2u3SJN8WuXVNOl1GnDicld+5MrkYmJvLZs24dBamBA+kNqU0affKJ3jcwUF+nszPtnl69aI8sW5aU7zDbOHSIAly3bskdFiwFuGef1QU46xzAj8utW7xvjhnDiI3Tp/X3fviB392xo/EzP/7IZ2Ee8DYVyGNpHg+zGy0K+SilUhfpAT6fLUnNmeIJMJvNqnPnzuqFF15Iatu1a5cCoG7evGnoO2DAANW2bdtk60hNbFNKqRs3bqjatWsrk8mkbG1tVbFixdSRI0eeaJs17LKw8KmQU0hIADp1ArZuZRlsDS8voHNnoFs3ltN2dMzY742MZGl3rUx3UBDLaF+9Cly7Bty4ASQm6v3ffRdo2FDftvBw/l+oEFC6NFCqlP63fn39c25uwLlzT7atTk7A888b2155hftw7hxw6pS+nD7NMvUVK+p9t2wBXn+d/3t4AFWr6kuVKix77e7++Nvn6goMHAgMGAAcPAgcPsyy9vfvsxz366/zOPToAeTLB4SFsf3ePf3/lP5GRT3+Nllibw8UKMB9tPxbsCBQtixL01eoAJQrx33JLC5dYinyhQsBs5ltr7wCjBnD3yI1QkKAHTsAPz/A15frePFFvleuHK+hkiWBZs30pXx5wGTKvH0pUoTXpjUHD3J7XVz0Nk9PoH9/5C9eHPm9Lfpq15B2DQK8/lavBmrUMK73iy+470uXAq+9pn/Xzz8D1asDf/zB95YtAwICgHnzgN27eU0AQEwM2z08eC5q+9C3L5eEBPZftw5Yvx44eRLYtYvLF1/w+L74ItCxI9CypXH/shMbG95vLO851rz0EhdrQkKA6Gh9iYpK/bX2f+3a+ucLFwaaN+e909ubx1jDyYnXutnMzyUk6O9p67Tk3j39/9u3eY2ULw9MnKi3T54MHDuWlqOi8/nnvEcvXMhjsGwZt3v1al7zADBuHO+Zzs7A/v3AgQPAzp3AhQvcDwcH/R6+YQNQpw5QrBhw8ybPr8BA/fuUAhYs4P+W2751KzByJPDmm0Dr1np7ly5ARAS/q3x5AED+Zb+i5tChvF8uXw6Al/J177pIdAiDKWoNgGcBAJWub8Y2j18QH1MfwGcAHhzyKT8iMSESMc37At7FAQCrfrqBnbOOoUaHougzvVbSJkRdCoBzfhveD+3t03d8cwqRkcD58zzP6tbV24cMAfbtA378UX9+79/P416rFtChg9733j2eyzdv6m3ly/M+V6VKUtOZM8CJzgtR6lNnNHiR9667d4HCdcoD+AFRvwFOD/rGxQEXbzrhor++Sg8PYNQo3lIsGTKEizVOTsnbcjy3bvG4u7oCrVvDsWIpOC76hc/dZ9cCACpZ9r97l38dHRHl7g3nwCtQ+V1hmjIZqFQJ4RuBn2w/QIu7x4AZI4H27QEA30014/pNE154IR9KPMNVrFoFDB/O2/WsWfpX7NwJ5M8PPPtsxpuTDyUhgfdpG5s0f2ThQp6yffsCQ4eyrXFjXqLVqvHRqZlsPXqAx/teHFCgDBujomizmkzAiBH8IMBn2eefA889p39ZZtoJacHWFqhcmUuvXmxTCrh8mbbk4cPAkSPAoUNAcDCfzSdP6vdZgPdyk4n3AEuKFAHateP50ub/7Z15eBXV/cbfm4UskARBsgGBCCFhEVlUFlkUhWJx/WkVEQRXVEAp1loFWUSjVEXbSquoCC5gqwWhilgskICKyiYoCYgmFAshLCEbkHV+f7yczJ17E5aQnffzPPPcZO65c2fOnTlzzjvv93sGsy+Sl8dy//gH/zft8b597E9VRGamc7srVwLx8UDLlmf029YIPXpwMWRmsv42bmS/aeNGjnFSU7m89x7HWZ9/bn/m9dd5sfTqxXu5J5bF827jRv5GZvv79jnL3Xgjf1sAGDIEmD0b6NvXWWb8+Ko5biFqiPHjx2Pr1q1Yt26d13sujzbVsiyvdSfDsiw8+OCDCA8Px9q1axEUFIQ33ngD11xzDb799ltERUWd1b5LbGvoWBZvkps3A3fcwXV+fhxsFBWxYb/+ei69ep39DezYMeDjj20BzSy7d3Ogef/9wN/+xrIBAcC77zo/7+fHHnFMjD0wAzhYT0nhe7U56A4KoijhKUwcO8YOjKGkhIOGn36yhZu1a+33P/qIdQ4AW7awV5qQALRqxTrIzj65KOb+av4eN84pVgIUMSpDkybli2XlrSvvNSiodjuUpaXAgw8Cb75piw7XXkvRzPO3A3g9fPYZxaXkZGDbNl47htWrbbFtwAB2Stu2re6jOD1cLoob7vToAbz1lnfZDRs4SHbvyHXqBLz6Kn9zdy64ADh4EHC/yRw8SKEjOhro3ZvLiy9SEPruO2eH7osv2KkODWW9XnQR9/WJJ1i/EyeyszlgAAcj77xDcXTXLorVe/YAr73GJSAAuOIKCm/DhlGwrY8EB3M5U378EViwgIOdPXvs9R07UkwaOdL5OwFs392FvOxsDrAbNeL/cXHAV18BW7ey3Xn+eQ7UDxzg9o4d46ApLo4Dyc2b2amPiOBveuyYLe67ExjIbWzdymstJYViW2gotx8Wxnbpyy+dn1u3josnRmAeNYrX75VXch8++ojH364d8PLL3B/3BxidOgG3324LPoYOHThydj/fjWjpqQjs2gXfI0cAt9viFa13AYcXAyF2+1BUBExr/DzCsveg2PcqABTbjq9YgxdSRyE1fzAw+98A2Kzsbj8IHa0UZL6/CuG3XgEA2Pfmcpz/+zuBvpfB/1+L7S+cMAFIT+cDAiO87twJzJ/Ph01jx9plV63i79yrF69RgL/d3r083kh35b0cLIvnSF6es317+mkO6iZPpvAJAGvW8KFd9+4c+BlSUlg2Lc2u+zZt+LkuXZzf99JLsCzA1Z4D7sJC4A9zE7CrZAn+8SRgfo333gOeeaY17r8f6D2M65o1488dGMgmyezumDHU89yffQHAzJknP/Q6T3Y2+xO7dtnLhAmsfwD49FPgnnt4zRoxIySE94Zjx9gfad+e14v5u317IDoawfv3A8uWwVVaCjzwAADg7rsB669fwLVpE3D8t2W78dhVG3HXe4PgM3kAsPITAGy289MzkXWgGdyHFbfdRn3h66+BSy/lurVreer268emy1BQwGa+0nWzcqX9cMzcv3182J+aPp3COwCkpqL4yiHIL/RHyHl+8GnkD/j5YfAhf7T/xQ8b8+8AJrAOgrIzcHDAAyzzgB+FcT8/9qm/+cYploSG8h7XogXw5z+zL2TK+/vzOjT3x+Ji4N//tt/zfG3WzFaGLYvCTXllq7KP5XLxnn/BBXwgab57715bgDPLL7/wngSw39u3L8W1oUPZJs+bB6xfzx86NZXlDTfeaJ+f0dG8N0RFsf8bH8/XhARewO4PYl0u50OTuk54OBsi94cLRoAz4pt7f+nQIT5AB4CsLLuPtno1FyOsuT9oMvj4sM569uTSr5/9Xnw8FyHKIy+v4vfcx7SAU/z2xFM7SE+v9C6Vx4QJE7Bs2TIkJyejVatWZesjT/RpMjIyHIJYZmYmIiIiTnv7q1atwscff4ysrCyEnjAH/PWvf8XKlSuxYMEC/OEPfzir/ZfY1tDZvZtP1Hx92TE2jpbZs9kZON1G+PhxDvLcRTTzd//+7MwA7C3fckvF2zlwwP47LIwD9eho26UWGel9gRsSEk5vX2uDwEB2pg4cYMcvNpYdrsxMDox27WJdZWRQsJg9m66R7GzWa25u1e2Lry8FSX9/jkCMCLZpEwdcfftyIFqRkBYayo5cfcbHh3VbXMzBx1NP2b19gE6Ko0dtQXffvhOPq91ISKBjbcAAuokMgYF1R2g7U1wub1EtJsY5YDfMm+e9rl8/isPGJQjwfBs9mo4jd5vIvykuICeHA8KEBGD4cApp33xDQcewcyfw8MOs17Q0Dg5XrwYeeoj/FxTQ4bRiBQeYxm4wYwb3yd+f5UpK2HGvKy64syEnh06A+fMpXBqaNqUb4ZZb2CkvKHAKbXPmUDgePRq46SZez2lpFL6Cgym2GhIT+TT9qaeAJ5/kuqws+7f7/HO70//YY2y37rmH4gvA+h4xgvuUmMjzq1EjtmlXXsm2/c47eb74+trOyvff5/3oZI4+8/eRI+y4XXABzw9zjtx4I7/r6FGeOwDrq6CAA74rrqCbypMNG7zXPfIIzyv38xqgeJWfz3uToX9/ujvd1gUEAAFjbwMyM+HX0u7gDbwuDIdTLsZ5Pe37bEYG4LL4Pc1a2haqpGXZGH44Ezs2HylzIFkWkPlBEiL2b0PhAw+jTCLfuZMuvksucV67U6ZQQF28mPUD8Fq74gpefykpdtnrrqO4OXeuPbj+9FOK2d26UVw1rF7Nurj5Zltsa9mS9+vzz3fW2ZQpwKRJDkdmbpsu+On1b9G5M2B8fG++Ccyc2Q3XXktHEcDL+PXX2f9PT7dv+T160CRjzBoAT7WMDG99NDa2nmrxRug0QpqnsHbwoPdnLrvMFts6deL54OnY3rGD1+fJhJmoqHLvAa4336Sw5CZYjxuUAizIA4ptF/zo0cA9865HkyUbgeUfAb/+NSwLiG9xGHF5u9G6eTwAPmT49lveWo4edYpt7drxkl+zhsZpgDrNpk08JEegwS+/8N5u7sOpqd73b4DXc2EhSkutMr3cyj8Kv717EAYAblUaeWLpcuUge2VODnyWflRxvbkPKLOzbRewu1vJcM89triSl8frrCKGD6dzHOBxViSS+/ryYcSHH9rr2rbluWREOXeBrndv9ksNt93G9rI8Ia9DB17HLVty2bmT51efPvxMRgbb8+Ji/nhPPMFtlpYCv/ud03UNUIRMSHD+kC4XxaO65lKrLsoT4Aw5OWyTs7J4vRqeeooXhcHHx46OMctFFzWMPo+oec7kvKmusifBsixMmDABS5YswZo1axDrcXOPjY1FZGQkVq5cie4n7oWFhYVISkrCrFmzTvt7jp6I6vLxaIt8fHxQ6tkvrAT1fEQtysjP5wBr6VLegM1AuW1b3iAjItiIG7HNPQTKdPLcBbSWLe0OuLt/vjzce7thYewVn3++M8yzTRs+qfPczqRJZ33oVUJREY/zTN1k7q+errKTkZx8+mX79bPrbt8+dk7atGFnqGNHp6AWFsYBtWfHevdujkCM07FnT7oMr7rKW3ypj2RmUrx88EE7LOHppyn+9OvHTvHbb/Opd1ISBzJuIWOIi2OoYqdOFNj69+c1I5w0aeIdXg0whsiT6dPZ9ixcSCdTaqotyrdu7Ww3GjWiIBAezv+Dgugk/OMf+Vs9/zw78Z98QoEgK4sWiUGDKCYNGUJ7xaZNdM7efz+3k5bGENiYGOeA5PPPeS316VMWSojSUi41JTSnpLCtjY+3B43//S+dJTt3UhD2DP0cM4bHFxjI4738cl7vJswXoKPsX/9i3d90E9eZdvfoUT4QMQJaz568dkwdAKzPt9/2HqA/8wzw3HPOdb6+DBP1xIQoVcTw4RW/Vx4FBdxvQ04O993f3/lw5rnnnCJRq1bcj4QE52tEhPM4XK7ybTVGyHDHpAPwpJyOXdR91wL3XetcFwU0yUnFD+mljs38FP9rXHn+d7jjjoAysS0zE7hn/zOIQCbmdLTDKj/4tg1C4h9GTJdW6OS+cROq5t52lZTwuvUM18/K4uKOccO51zXAc/Lmm50PLLp18wpfSk8H1v5vEJo3B359Qv+1LB6zycBgHGcuF29L7lFoLhcwbRpPaXezbkVR2TUamlhV5ObygcXx4+wrGS644NRugIgIp0PNPcS8Tx8Kq56YcMbKUJ6L/7bb2LYUFJStat4cQNZ/geKiMkeWywV8/uhnFONHX1bmWu3XD1g08mNEJpwHHO0OBAejuJinUmkpNRnD8uXAI49YmDAsDX++Odl2nv/8M1bG3oeEpNf4dT16oLjHpSjodimCfjUQPn17A4GB+HF7EZ58vBgHl4Tg88ncpqtjAmZe9y3+l16Ee+8sRs+uRez/HT8ObN+OEPd2ITycbUZqKsXrvn3tskeP8p5lCApiWo/iYpbxfDUKouHii53vu//tnubBPR2AJyUlTge+ZfGiqgj37QKMQqnI2dKvn7N//vzz5buqALY7iYn828eHDq3AQNulFh/v/d2Gc0VoOxWxsRy/edK2Le/77sJaZdzxQtRDxo0bh4ULF2Lp0qUICQlBRkYGACAsLAxBQUFwuVyYOHEiEhMTERcXh7i4OCQmJiI4OBgjTIg86HzLyMjArl27AADbtm1DSEgIYmJi0KxZM/Tp0wfnnXceRo8ejalTpyIoKAivv/460tLSMOxkD0ZOE5dlubfUDYucnByEhYUhOzu7zBbYoNi/n4Oqjz7i4NF0foKC+BTUNMjHj7MnU1xsO3kKCvgUxbjUPHN1/frXHNgamjZlJ6BNG+98aR07Ojt9lcWy7NCn48cr/1qZz5yJUHYyfH3PPOTSvayfH8WF7dvpFEpJoSBkBsd33kmnizvnn28PAJ96yjuk0NTt2rUMyfvwQ3swFRJCh9HYseWLKPWFG2/kdXDHHQy3A3jM99zDa+O//3WW9/Gh462yYbbizMjJ4e/z/vt0TZWW0v3UkuF2SElhZ9xT4MzMpFs0OtoeNG7eTEfb7t0UpNzdsgAHoaNG0TlQWEj3h3FDGcz58uqrtqNjxw4ODGJinAOWuXPpWLjlFgqxANvPDRso9rgLEG+/TevG8OH8XoDX8uDBbI9N6A3A7X3wAW09v/oVz9t585wCRseO7Ghv3cpYOncH2pEjDNs57zwOmozolJREBePSS+1r2rIYzm7amIbKI48w1CY1teKBIXAij9WJgeDo0U7nai1jWbYO+L//UXwyJkfD8OHUOF94gYcM8DKIj6eY9cUX9unwv/9RR2ze3OMZzN69fFAUHW2LsSUlXMrJF+S+XwAwdSqf27z0km3ye/11jrOvvtrZtHbtytN66VLb3JORQcNWXFwDeq5RUsID3b2bwtnu3Vz+7/94jQN09l51lbfT8OKLee62auUM8zRhn9Wd3/RsMW16dLSdh/CNN5gi4IYb+LchPJwn7MaNZXmucpM2IffTdYi8oTd8el8KFBUh7fIxaLwxGeEFvzi+qgQ++BA3Y8Dev5eZemfP5rUwYgSbSoC3D3Nu7d9vP8uxrBPu0mPHbAfG999TEAsKYttqroHly9l2Dh5cuydqSUn5Qp6/v+0utSzeqzzFO/N38+bOsPoFC9j/La9sq1bAXXfZZX//e9aLe9mgIDY6F154cqeeEKLaaYiaR0V519566y2MGTMGAN1vM2bMwGuvvYasrCz06tULc+bMQRe3tBXTp0/HjBkzTrqdDRs2YPLkydiwYQOKiorQuXNnTJ06FVeX50Q90+OQ2FbPSE1lj3XpUuZEcP/5LriAvd6ICN6Yf/mFIsPevSznKaCFhdlhPQCt6kZE69mTg1AjRpmcEZUVs05XEKvt0zE4+MzEMc/Xxo2rN1fZihW0lBsxLi3NrjOXi08pjcj6hz/wHDGTMhhBzuWiYDd3rnPw37s3f/Nbbqn7T86OHGHnvlkzHv/f/87j7dPHDr8A6OD85hueuxdfzJDQgQMphJzNBBWi8hw8SOHXhLkBHIh+/jlDD4cP53un48goKaHo9cknXNxzRwG0SXTtSifG44/bEzXMmEFF4ve/t/PAfPUVlYDYWLrGDDfcwPa2PGGuZUtnPhojoP35z3aW7Z9/5kDZM4Tzd7+jghIY6LwOAwN5rr7wAgUzl4vtrxksVTqx0TnG4cP8nVJSeN80rz//7AwXnTfPjmdbs4Zu2Msv5+jdzKF1/Dh/F/fM+Xl5trPEc/HxcTo5Dh3i4LS8sr6+tqMM4P36+PGKtxsXh9Wr2axd0yUdndvkAZaF77ZYuOMOC1ERFlZ8ekIZ69YNI0awSZz3+I+484YswLKQn2chKclCTCsLXTqfuH/06YOjx33w88/sAhhdZ/lyRul26QIsWWLvZpcuvAWtWGHrSF99xbRu/fpRFzaY6msQpKfzHDJCmruwtmdP+U6kJ5+0K2T3bjqiOncGli1zKqvNmtXT2RlOgbub1jzoTU3lCRQcTKHriSfYhrs/MOvQgW2jjw/bxCuvRHHfAVh+pC/SDoViwgTbGDV1Ks23jzxCQ7ThvffY/Jt8/gAYBj51KsUkU9iyKBp16sQHIA1GARZCnAs0SM2jgSCxra6Tl8ce7uLFHBx6ujiaNOETpa5d2VH77W+9cyUA7JGEh7PDYsStffvsJ9nFxbYIVt7na4OgIPbQzSCnKl/LWxcSUv9mhjt6lIPI7dvZWXdP4ti/f/kJx1u0YEf/00+ZpPzVV3mOmUFC06Z0Bo0de/IZO2uD3FzgT39iB7l7dx5LcrJ9Xfj6MjTKjBQ/+4znfp8+DSNctiFSXEwB1D1hvr8/7THDh3Ngdrr5H/bu5Xn9ySdMmO0eIuPnx2vCTLIQH+8UxktKKNDk5ztz8n3wARNu33CDPdvY1q22IOieA2zhQl6Lw4bZDoLCQg4mzzuPKsbq1RS7//lPO0zUOC3HjOHxNhhl4gwoLqaIYYQxI46lpTFM+J137LItWrBeyxOkBg2i088QHs42wbzvLrS1bm3PcAew7cvOLn///P0pkphw1Kefds6i6U779k4BtVu3imd1jYrieWvo25eqVXmEhjr3b/Dg8vNDATzfi4pwzTW8HP536Q2I/qacMCVDQQE6d2+E7duBLVMX46IWe4Hu3bEm6yJccW0TxMfz5zC88QZP32uvrb8pLL1wt+/t3Qu88grFoRdftMv06OEMVfbETPJkogDatLEnghG8zrdssUNC1661w5l9fSmEmUTxixbZs2W657KaP5/X+K23OnK1FRWxWXDcLhYupJv62Wft3Jbvvss+zmWXld9HEkKIekaD0DwaKBLb6jqe7rOaxuWiGHU2IlZlXhs1qv3p0es7W7dygPfDD1y2b7edcJ6OnP79OYAoKbHF1quuYmfXMwF2TVNczAHPX//KvEiHDnmXCQqiuDFgAB1FFeUHEXWXn36iQ/H99yluGX71K9pnzpSCAg7kli+n2uCeHAqgE9gIbwMHVq/AtWsX3RoLFjhnE01IoMA2apTT3dSQMcm7SkpoOQGo2jRt6p0rzHDddc58Nv7+FecyuuoqCmiGkwloffo4Rd7IyJOHn54uMTEUDk0sZ48eFBhcLu8lKsqZq+uqq+hILq9saKgzxPmWW+jGK6+sv3/Zdo8dAxqNvw++//k34HLheKELhw+74OPnQmTkifLff49rb2qEdeuAlDZDEfndZwAAy+XCsVZxQLfuCL6sO4XDq66qeCKjusyRI94hnu7utAcfpOsVsGNcg4J4zpr+yO23M/yxTRuqjO6iWps2vI7rY91UF0VFzoeY117rFMMBqmOXXcZ2+OGHbbXsyBFO+PLLL/Ys9oCdTmPGDDrUAD547NqVwvmHH9oOwZ496Xh+7z2ncJeSwvanvj1gFUKIcmgQmkcDRWJbXce982860EbUatyYbp1mzarO3eX56u8v0ashkZ9Pe4LJQWJo2dLprnCnc2eGu735Jp84FxWVPwtdVVFYSLdQcjJnwEtOplPNzMbWogUF6IEDGe41YAA7zeXkGRL1lB9+oOi2aBFDPY3TYf9+hoMOH04H05nkH9u1yw43TUpyCjvBwRQQhg1juL3b1OKVJieHrrj5853uibAwJhkfM8YOE22ImDyR7i41MykEQJfYqlV2+ZgYXuMml5qZZKF9e4bPnki8DsB2jZUnMgUFOUPATBoF9zLms/7+TmHeOOA8t3n4MMXg9HT7WLZv5/8VdaFMWDRAoW37djrLzQwBdZCCghNRyi++SAfm5s3e94WwMNaTqcdFi9j2du/OEOzaOp89k8q9+y7w9ddOce1UDy7dQxgLChiT2LYtBSCJMqfHsWMUi5NPTGiwfj0f8plr8umnGSLfv78923ePHmfWln/1Fbfbv789O+7mzdxO8+bOmVvnzOEDjpEjGfsshBANkAaheTRQJLbVdfLz2ZFVR09UJ/n5HEQaB5xxw6Wns0PctSvzmNx4Izu16ekMz/LMB9e5c/kTNJyKXbs4aEtKYkfac8IOgAO5qVM5w2JQUMNO9C6IZdEBZX7rV16xc6G1aMEQottuY+jdmcxqlpdHMeSTT+h88xQULrrIFt569z59p0ppacVhokOGUGC7/vqGEyZaUkIRwwhpPj7OmWkrcoqdfz4H2f/8p70uM5Pr69PsdMeOUfjzzAu3YwfbNDMByOTJnK3v/vtth05+PjBlinOW1PPPr3via2YmxcLNm7kEBjon6WnXzs5xGBpK51v37lx69qw6gaOkhNfp7t38HjPz6t69FN4PHmQ6AVN/JteiJy1aeLvRjEPNzOwtzoxt2/hwJCmJyQSLipzvf/ihPTPy0aNUdKva/Xf0KB/SHTrkzAcqhBDnAA1C82igSGwTQlRMXp6daPwvf+FgccIEZwJ5d3r3duYbeu89OlLcRbj8fD6Vbt3adnl8/DHDSww+PnZupYgIYPp0JjOWe+3cZtMmJov64AOne6F1a+bvefRRe8q508WyKCYY19vXXzvdSs2acdbPYcP4Wl6I8k8/2WGi7jPfxscz5GnkSFt4qe/Mns0BdUoKQ3Pdc3y2bu08/pEj2X64C0oJCbUfml7dlJSwDTPCz9/+xtxRY8YAd9/NdZs2ec/i3ayZd1117EghqC6GJpaWMrfnpk3MS+gZBtyjB0MuDYsW8Vi6dvXOoVlYSAdSeWGe6ekMJTShw6NH24JfQYEtXmdmUkwDmOMvJcUpqsXEnH7+R1E+R47Qqduli52s75136Ao0REfbrrWBA3ke1zURWQghGhDSPOouEtuEEGdOXh5n7Xv7bf5vHBnXXUcxBOAgqHFjDjwBimZRURyUFRczHDAxke8dOUKxLTXVFlGiojhD2b33agZG4aSoiCGIixZxco+cHLp/MzJsMSw3154o40w4cIATa3zyCXPFHTliv2cm2xg2jE61777joH/tWrtMWBjDXO+8s/6FiR465D1BwbFjznDPfv04WY8hIICiYkICXa5Tp9avY64tdu1iHkpT37t3VxySGhjIBxMdO1K4MzP1eoZO1iZFRTwO44AzYX0vvcT3jx2jI80IZvHxdMFlZPCecPjwqWcjN5MP3HADRV/D2rUUs+uqKFmfOXCAIaFm+e47/k7PP88ZlQGKpE8+aYtrF1xQd85LIYQ4B5DmUXeR2CaEqByffQa8/DJfTTMSGUnnxr33coB41112biN3WrWiI2LKFHvd++8zJLBFC86q+sADdpJjISri+HHOQLpzJ/DYY/b6Pn0YWnTbbXS9xcae+baLi+nUNK63778vv5zL5QwTrcvnbWkpBQ73CRkeeIAhnZ6zXQMUGPPzbffQggUsZ5xXbdtK4KgKjh7lOewejmrcgwUFLOPvz3ImrHr0aApNzz7Lc9xs59ixyoXzVxbLsicfcHejtWvHhzIA151q2tKgINuBZll0wHXvbod5RkXpXKspfvqJD8BSUrzf69ABeOgh+7cVQghRq0jzqLtIbBNCnB1pacDrrwPz5jkn8xg6lILasGEURFJSGArUrRsHTkuXMnTIDBJLS4G5cxl65hliJMSZcOAAnS7uuYN696bj7De/qfzMn7t3M8fb8uXMzdaqFQW2kSOrZlKFqqSggO4pzwkKduzgdXf0qJ0LdPRo26UaE+Mdxti3r/KG1hYmL15KCkVSE4YKcGKYDRuAxYvtPFUffcS/zz/fOyQ1IYFtb2Xy4h0+zPOpopk8c3O9P+M5CUbHjkwFMHcuxbnNm+mW+v57XkczZvDeYWYCBTibbLduzlxwHTsqZ2dVkZ5uT2bQrh3d5ADv2U2bsh3p0sV2rfXvT9FTCCFEnUGaR91FYpsQomooLASWLQNefRX4z3/s9S1bAvfcw8UIEsbFFhHB/G/BwbWzz6LhcvgwRYhFiyiMmVudy8WE9TNn1u7+VRXZ2baYNmqU7fwZMYLHXh7+/vxMu3b8/4cfOKju0EFCd30iM5O/e5cudvj0X/5C11FFBAXZIanus75eeCHftyw65dLTgVmz7JDVhx7itk9Gixa2C61NG040MmrU6R2Le0jshg2cgfj7772T7QN0RJvrNyeH5S66SPnYToedO21xLTnZmWPxwguBrVvt/5OTGRre0HMsCiFEPUeaR91FYpsQour58Ue63d56y87B5uPDWcs6daIw17Mnc7w9/rgG+KJ62bePM+ItWsSw0EWL6HIDONhMTmb4Z2VyvNUk333HfXUPNdy3z35/1y5bQHvqKeCFF2wxxV1YiY2VU60hk59PB6NnSOqPP3pPYgBQIEtLs/83s8hu2GBP4vDyy8CLL5Y/i6cJ/azqhyaFhc48cFu2cJk3z57d8tNPOWuwy0UR0bjfzHIuC0WlpXSTx8TY69q2pRvR4OcHXHwxXWsDBwJXX13juymEEOLskOZRd5HYJoSoPgoK6C567TUmX9+61XYvlJZWLpxJiLMhPZ0zlhphIDGRTrfAQOCaa+i4vPrq2sm7VlREwcxdJJk1yw7bmjIFeOYZ78+1bEkx7U9/4sy/AIUKf38lKhc2xcUU1VJTnedYTAzdxoaZM9k+jxlDIa0uUVrKxYSR/v3vwG9/6xSd3XnvPbo8Ad6DcnN5TA3xuigpoRhpJjNYu5brDh60Ha9jx/I3N7OF9ukjR6AQQtRzGqLm8eyzz2Lx4sVITU1FUFAQ+vbti1mzZiE+Pr6sjGVZmDFjBubOnYusrCz06tULc+bMQWfTFwYwd+5cLFy4EJs2bUJubi6ysrLQtGlTx3dt2rQJjz32GL799lv4+vripptuwuzZs9GkCswgEtuEEDVDXp4cbKLu8frrdIDt3GmvCwlh3qvhw4HBg6s3P9SKFRSjU1MptJnZGg2ffcbJFwBO0vDGG06XWnw8Z3kU4lxm/37nTKibN/N62ryZ+d4AO8TW5IFzd8AlJNTfPHDvv8+ci198wbBad4KD+ZDLOF6FEEI0OBqi5jF06FAMHz4cl1xyCYqLizF58mRs27YN27dvR+MTD4lmzZqFZ555BvPnz0eHDh3w9NNPIzk5GTt27EDIiWiVl19+GcePHwcAPP74415i2969e9GlSxfceuutmDhxInJycjBx4kRERUXhww8/POvjkNgmhBDi3May6AhZtIgD1z17uL5xY+bFqkx4nGUxob1nKF9qKvDOO8Dll7Pc/PnAnXfan2vc2JnU/tZbgfbtz/IAhTgHyc3ltWtcXdOmMR9deXngAgIYYt69O/8/dIhu17rk+jp+HPj6a7rWxo2z8/RNnWrnsAsNBfr1s8NCe/RQyLgQQjRwzgXN48CBAwgPD0dSUhIGDBgAy7IQHR2NiRMn4rHHHgMAFBQUICIiArNmzcLYsWMdn1+zZg2uuOIKL7Ft7ty5ePLJJ7Fv3z74nIi42rJlC7p3744ff/wR7c+yD15PH+MJIYQQVYTLZTtcnnuOg+7332eYsxHaLAv41a+YjH74cM4E6XLZoXnNmgHNm7PsRx8xBC87u/zvS0mxxbb+/Rn+acS1Vq0aZoibEDWNZw7GGTMYMr59u9MB9913FObcO9QzZ9IJV14eOHOdVzf5+cCXX9oTGnz9tZ1zr2tX5pkEmL+uWTOGhV50kS0uCiGEEBWRn3/mnwkIsF3gxcVMF+Tj40y9UtF2z/LhVfaJPnWzEw+a0tLSkJGRgSEm+gNAQEAABg4ciC+//NJLbKuIgoICNGrUqExoA4CgE8ezbt06iW1CCCFEleHjA1x2GRd3vv8eWLmSy0svcZKBxo0ZflpYyPDOu+9m2ebNKbT5+LCc5wQFbrkk0K7dyWePFEJUHY0aMYS0WzfbUVpayolS3MW53bu53uS3c5/Zt3VrTvYTFsb/c3OZIqEqRfKlS4Gbb/YOK4+MpGPNfeKHiy7iIoQQQpwulUnt849/AL/5Df9esgS45Rbek9asscu0bWtPjufOWQRTWpaFSZMmoV+/fujSpQsAICMjAwAQERHhKBsREYHd7hMBnYJBgwZh0qRJeP755/Hwww8jPz8fTzzxBABgX0X5YM8AiW1CCCHEqejQgQPgRYuAZcucszcGBQFHjtj/9+zJPElxcQxFE0LUXXx8ODhwZ8kShoG7z4Rq8sAVFdlCG0Cn61dfOfPAdet26jxwBw9yEgMzocFddzE8FKAgX1zMySvMZAYDB9J9J+erEEKIc4jx48dj69atWLdundd7Lo97omVZXutORufOnbFgwQJMmjQJjz/+OHx9ffHQQw8hIiICvlXgFJfYJoQQQpyKgADguuu45OcD//kPcyF17MgBsfvMusHBwIUX1t6+CiHOnshIzkx89dX2upwcO6ej4YcfgKwsYPVqLobAQKBvX7YVAHDsGIV6Exb6ww/O7bRta4tt7dpx5uS6NhusEEKIhkFe3pl/JiDA/vvGG7kN9/4vwHtXFTJhwgQsW7YMycnJaNWqVdn6yMhIAHS4RUVFla3PzMz0crudihEjRmDEiBHYv38/GjduDJfLhdmzZyM2Nvas919imxBCCHEmNG5M0U0IcW4RGuoMAweAHTuceeC2bOGSl8d8NobSUmDkSGdoaKdOtmttwAB7vcsloU0IIUT1cbYTAPn5le/erqKJhSzLwoQJE7BkyRKsWbPGS/iKjY1FZGQkVq5cie4nJjcqLCxEUlISZs2aVanvNCLdvHnzEBgYiMGDB5/dQUBimxBCCCGEEJUjIMAOHzWUlgI//eR0DjRuTLEtNJTiWv/+QIsWNb+/QgghRB1n3LhxWLhwIZYuXYqQkJCyHG1hYWEICgqCy+XCxIkTkZiYiLi4OMTFxSExMRHBwcEYMWJE2XYyMjKQkZGBXbt2AQC2bduGkJAQxMTElE228Morr6Bv375o0qQJVq5ciUcffRTPPfecY9bSyuKyrLPIVlfHORemwRVCCCGEEEIIIcS5R0PUPCrKu/bWW29hzJgxAOh+mzFjBl577TVkZWWhV69emDNnTtkkCgAwffp0zJgx46TbueOOO/DJJ58gLy8PCQkJ+N3vfodRo0ZVzXFIbBNCCCGEEEIIIYSoX0jzqLv4nLqIEEIIIYQQQgghhBDidJDYJoQQQgghhBBCCCFEFSGxTQghhBBCCCGEEEKIKkJimxBCCCGEEEIIIYQQVYTENiGEEEIIIYQQQgghqgiJbUIIIYQQQgghhBBCVBES24QQQgghhBBCCCGEqCIktgkhhBBCCCGEEEIIUUVIbBNCCCGEEEIIIYQQooqQ2CaEEEIIIYQQQgghRBUhsU0IIYQQQgghhBBC1DrPPvssLrnkEoSEhCA8PBw33HADduzY4ShjWRamT5+O6OhoBAUF4fLLL8cPP/xQ9v7hw4cxYcIExMfHIzg4GDExMXjooYeQnZ3t2E5WVhZGjRqFsLAwhIWFYdSoUThy5EiVHIfENiGEEEIIIYQQQghR6yQlJWHcuHFYv349Vq5cieLiYgwZMgT5+fllZf74xz9i9uzZeOWVV/Dtt98iMjISgwcPRm5uLgBg79692Lt3L1544QVs27YN8+fPx4oVK3D33Xc7vmvEiBHYsmULVqxYgRUrVmDLli0YNWpUlRyHy7Isq0q2VAfJyclBWFgYsrOzERoaWtu7I4QQQgghhBBCCFElVErzMKJVcDDgcvHvwkKgqAjw8wMCArzLBgUBPie8WkVFLO/rCwQGnrqsv3/lDu4EBw4cQHh4OJKSkjBgwABYloXo6GhMnDgRjz32GACgoKAAERERmDVrFsaOHVvudj744AOMHDkS+fn58PPzQ0pKCjp16oT169ejV69eAID169ejT58+SE1NRXx8/Fntd510tq1atQp33XUXEhIS0LhxY7Rs2RLXX389Nm7cWNu7JoQQQgghhBBCCFE/adKEy8GD9rrnn+e68eOdZcPDuf6//7XXzZnDdR4uMbRty/UpKfa6+fPPendN6GezZs0AAGlpacjIyMCQIUPKygQEBGDgwIH48ssvT7qd0NBQ+Pn5AQC++uorhIWFlQltANC7d2+EhYWddDunS50U2/72t78hPT0dDz/8MJYvX44//elPyMzMRO/evbFq1ara3j0hhBBCCCGEEEIIUY1YloVJkyahX79+6NKlCwAgIyMDABAREeEoGxERUfaeJ4cOHcLMmTMdrreMjAyEh4d7lQ0PD69wO2eC31lvoRqYM2eO10EPHToU7du3R2JiIgYNGlRLeyaEEEIIIYQQQghRT8nL42twsL3u0UeBiRMZRupOZiZfg4LsdePGAffeyzBSd9LTvcuOGXNWuzp+/Hhs3boV69at83rPZUJgT2BZltc6gKG2w4YNQ6dOnTBt2rSTbuNk2zlT6qTYVp662KRJE3Tq1Al79uyphT0SQgghhBBCCCGEqOc0buy9rlEjLqdT1t+//DxsFZWtJBMmTMCyZcuQnJyMVq1ala2PjIwEQGdaVFRU2frMzEwvt1tubi6GDh2KJk2aYMmSJfB325/IyEjs37/f63sPHDjgtZ3KUCfDSMsjOzsbmzZtQufOnWt7V4QQQgghhBBCCCFEFWNZFsaPH4/Fixdj1apViI2NdbwfGxuLyMhIrFy5smxdYWEhkpKS0Ldv37J1OTk5GDJkCBo1aoRly5Yh0H0yBwB9+vRBdnY2vvnmm7J1X3/9NbKzsx3bqSx10tlWHuPGjUN+fj4mT55cYZmCggIUFBSU/W8S6eXk5FT7/gkhhBBCCCGEEELUFEbrsCyrlvek6hg3bhwWLlyIpUuXIiQkpCx/WlhYGIKCguByuTBx4kQkJiYiLi4OcXFxSExMRHBwMEaMGAGAjrYhQ4bg6NGjePfdd5GTk1NWVy1atICvry86duyIoUOH4t5778Vrr70GALjvvvtwzTXXnPVMpAAAqx4wZcoUC4D1l7/85aTlpk2bZgHQokWLFi1atGjRokWLFi1atGg5J5Y9e/bUkDpT/VR0jG+99VZZmdLSUmvatGlWZGSkFRAQYA0YMMDatm1b2furV6+ucDtpaWll5Q4dOmTdfvvtVkhIiBUSEmLdfvvtVlZWVpUch+vEwdRZZsyYgenTp+OZZ57BE088cdKyns620tJSHD58GM2bN6+SBHe1QU5ODlq3bo09e/YgNDS0tnenwaJ6rn5UxzWD6rlmUD1XP6rjmkH1XDOonqsf1XHNoHquGVTP1U9DqWPLspCbm4vo6Gj4+NSbLGHnBHU6jNQIbdOnTz+l0AYAAQEBCAgIcKxr2rRpNe1dzRIaGlqvG4H6guq5+lEd1wyq55pB9Vz9qI5rBtVzzaB6rn5UxzWD6rlmUD1XPw2hjsPCwmp7F0Q51Fnpc+bMmZg+fTqmTJniNT2rEEIIIYQQQgghhBB1kTrpbHvxxRcxdepUDB06FMOGDcP69esd7/fu3buW9kwIIYQQQgghhBBCiIqpk2Lbv/71LwDAihUrsGLFCq/363iauSolICAA06ZN8wqPFVWL6rn6UR3XDKrnmkH1XP2ojmsG1XPNoHquflTHNYPquWZQPVc/qmNR3dT5CRKEEEIIIYQQQgghhKgv1NmcbUIIIYQQQgghhBBC1DcktgkhhBBCCCGEEEIIUUVIbBNCCCGEEEIIIYQQooqQ2CaEEEIIIYQQQgghRBUhsU0IIYQQQgghhBBCiCpCYpsQQgghhBBCCCGEEFWExDYhhBBCCCGEEEIIIaoIiW1CCCGEEEIIIYQQQlQREtuEEEIIIYQQQgghhKgiJLYJIYQQQgghhBBCCFFFSGwTQgghhBBCCCGEEKKKkNgmhBBCCCGEEEIIIUQV8f/RYzzumWXIegAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(14, 2))\n", "bbox = {'boxstyle': 'round', 'facecolor': 'w', 'alpha': 0.9}\n", "cmap = plt.get_cmap('tab10')\n", "palette = [cmap(0), cmap(0.2), 'k', cmap(0.1), cmap(0.3)]\n", "\n", "\n", "x=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']\n", "y1=[None,Feb2007,Mar2007,Apr2007,May2007,Jun2007,Jul2007,Aug2007,Sep2007,Oct2007,Nov2007,Dec2007]\n", "y2=[Jan2008,Feb2008,Mar2008,Apr2008,May2008,Jun2008,Jul2008,Aug2008,Sep2008,Oct2008,Nov2008,Dec2008]\n", "y3=[Jan2009,Feb2009,Mar2009,Apr2009,May2009,Jun2009,Jul2009,Aug2009,Sep2009,Oct2009,Nov2009,Dec2009]\n", "y4=[Jan2010,Feb2010,Mar2010,Apr2010,May2010,Jun2010,Jul2010,Aug2010,Sep2010,Oct2010,Nov2010,Dec2010]\n", "y5=[Jan2011,Feb2011,Mar2011,Apr2011,May2011,Jun2011,Jul2011,Aug2011,Sep2011,Oct2011,Nov2011,Dec2011]\n", "y6=[Jan2012,Feb2012,Mar2012,Apr2012,May2012,Jun2012,Jul2012,Aug2012,Sep2012,Oct2012,Nov2012,Dec2012]\n", "y7=[Jan2013,Feb2013,Mar2013,Apr2013,May2013,Jun2013,Jul2013,Aug2013,Sep2013,Oct2013,Nov2013,Dec2013]\n", "y8=[Jan2013,Feb2014,Mar2014,Apr2014,May2014,Jun2014,Jul2014,Aug2014,Sep2014,Oct2014,Nov2014,None]\n", "y9=[Jan2013,Feb2015,Mar2015,Apr2015,May2015,Jun2015,Jul2015,Aug2015,Sep2015,Oct2015,Nov2015,Dec2015]\n", "y10=[Jan2013,Feb2016,Mar2016,Apr2016,May2016,Jun2016,Jul2016,Aug2016,Sep2016,Oct2016,Nov2016,Dec2016]\n", "y11=[Jan2013,Feb2017,Mar2017,Apr2017,May2017,Jun2017,Jul2017,Aug2017,Sep2017,Oct2017,Nov2017,Dec2017]\n", "y12=[Jan2013,Feb2018,Mar2018,Apr2018,May2018,Jun2018,Jul2018,Aug2018,Sep2018,Oct2018,Nov2018,Dec2018]\n", "y13=[Jan2013,Feb2019,Mar2019,Apr2019,May2019,Jun2019,Jul2019,Aug2019,Sep2019,Oct2019,Nov2019,Dec2019]\n", "y14=[Jan2020,Feb2020,Mar2020,Apr2020,May2020,Jun2020,Jul2020,Aug2020,Sep2020,Oct2020,Nov2020,Dec2020]\n", "\n", "#ax.plot(x, y1,label='2007')\n", "ax.plot(x, y2,label='2008',color='b',linestyle='-')\n", "#ax.plot(x, y3,label='2009')\n", "ax.plot(x, y4,label='2010',color='b',linestyle='--')\n", "ax.plot(x, y5,label='2011',color='b',linestyle='-.')\n", "ax.plot(x, y6,label='2012',color='b',linestyle=':')\n", "#ax.plot(x, y7,label='2013')\n", "#ax.plot(x, y8,label='2014',linestyle='--'\n", "#ax.plot(x, y9,label='2015',linestyle='--')\n", "#ax.plot(x, y10,label='2016',linestyle='--')\n", "ax.plot(x, y9,label='2015',color='r',linestyle='-')\n", "ax.plot(x, y12,label='2018',color='r',linestyle='--')\n", "ax.plot(x, y13,label='2019',color='r',linestyle='-.')\n", "ax.plot(x, y14,label='2020',color='r',linestyle=':')\n", "\n", "ax.set_title('Wind Speed',fontsize=14)\n", "ax.legend(frameon=False,loc='center left', bbox_to_anchor=(1, 0.5))\n", "ax.set_ylim(2,7)\n", "ax.set_ylabel('m s$^{-1}$',fontsize=12)\n", "ax.xaxis.set_tick_params(labelsize=12)\n", "ax.yaxis.set_tick_params(labelsize=12)\n", "ax.set_xticklabels([])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Select 4 warmest and 4 coldest years; leave NPGO \"neutral\" years out" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "Jan_W=(Jan2015+Jan2018+Jan2019+Jan2020)/4\n", "Feb_W=(Feb2015+Feb2018+Feb2019+Jan2020)/4\n", "Mar_W=(Mar2015+Mar2018+Mar2019+Mar2020)/4\n", "Apr_W=(Apr2015+Apr2018+Apr2019+Apr2020)/4\n", "May_W=(May2015+May2018+May2019+May2020)/4\n", "Jun_W=(Jun2015+Jun2018+Jun2019+Jun2020)/4\n", "Jul_W=(Jul2015+Jul2018+Jul2019+Jul2020)/4\n", "Aug_W=(Aug2015+Aug2018+Aug2019+Aug2020)/4\n", "Sep_W=(Sep2015+Sep2018+Sep2019+Sep2020)/4\n", "Oct_W=(Oct2015+Oct2018+Oct2019+Oct2020)/4\n", "Nov_W=(Nov2015+Nov2018+Nov2019+Nov2020)/4\n", "Dec_W=(Dec2015+Dec2018+Dec2019+Dec2020)/4" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "Jan_C=(Jan2008+Jan2010+Jan2011+Jan2012)/4\n", "Feb_C=(Feb2008+Feb2010+Feb2011+Jan2012)/4\n", "Mar_C=(Mar2008+Mar2010+Mar2011+Mar2012)/4\n", "Apr_C=(Apr2008+Apr2010+Apr2011+Apr2012)/4\n", "May_C=(May2008+May2010+May2011+May2012)/4\n", "Jun_C=(Jun2008+Jun2010+Jun2011+Jun2012)/4\n", "Jul_C=(Jul2008+Jul2010+Jul2011+Jul2012)/4\n", "Aug_C=(Aug2008+Aug2010+Aug2011+Aug2012)/4\n", "Sep_C=(Sep2008+Sep2010+Sep2011+Sep2012)/4\n", "Oct_C=(Oct2008+Oct2010+Oct2011+Oct2012)/4\n", "Nov_C=(Nov2008+Nov2010+Nov2011+Nov2012)/4\n", "Dec_C=(Dec2008+Dec2010+Dec2011+Dec2012)/4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Assign years so that SEM can be calculated" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [], "source": [ "Jan_W_years=(Jan2015,Jan2018,Jan2019,Jan2020)\n", "Feb_W_years=(Feb2015,Feb2018,Feb2019,Jan2020)\n", "Mar_W_years=(Mar2015,Mar2018,Mar2019,Mar2020)\n", "Apr_W_years=(Apr2015,Apr2018,Apr2019,Apr2020)\n", "May_W_years=(May2015,May2018,May2019,May2020)\n", "Jun_W_years=(Jun2015,Jun2018,Jun2019,Jun2020)\n", "Jul_W_years=(Jul2015,Jul2018,Jul2019,Jul2020)\n", "Aug_W_years=(Aug2015,Aug2018,Aug2019,Aug2020)\n", "Sep_W_years=(Sep2015,Sep2018,Sep2019,Sep2020)\n", "Oct_W_years=(Oct2015,Oct2018,Oct2019,Oct2020)\n", "Nov_W_years=(Nov2015,Nov2018,Nov2019,Nov2020)\n", "Dec_W_years=(Dec2015,Dec2018,Dec2019,Dec2020)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "Jan_C_years=(Jan2008,Jan2010,Jan2011,Jan2012)\n", "Feb_C_years=(Feb2008,Feb2010,Feb2011,Jan2012)\n", "Mar_C_years=(Mar2008,Mar2010,Mar2011,Mar2012)\n", "Apr_C_years=(Apr2008,Apr2010,Apr2011,Apr2012)\n", "May_C_years=(May2008,May2010,May2011,May2012)\n", "Jun_C_years=(Jun2008,Jun2010,Jun2011,Jun2012)\n", "Jul_C_years=(Jul2008,Jul2010,Jul2011,Jul2012)\n", "Aug_C_years=(Aug2008,Aug2010,Aug2011,Aug2012)\n", "Sep_C_years=(Sep2008,Sep2010,Sep2011,Sep2012)\n", "Oct_C_years=(Oct2008,Oct2010,Oct2011,Oct2012)\n", "Nov_C_years=(Nov2008,Nov2010,Nov2011,Nov2012)\n", "Dec_C_years=(Dec2008,Dec2010,Dec2011,Dec2012)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(-0.4, 6, '(e)')" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABNAAAAEhCAYAAAC+xF3+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAABvpklEQVR4nO3dd3zV1f3H8ffN3jshIaywh2xFRRAQcWCruLVatx3a1tWhrQNaB/qru1atFXBVa1sVcVUcSEEFlaHI3pAAWWSvm9zv74+Tu3JvLgGS3IzX8/H4PpJ8x70nlyTc+76fcz42y7IsAQAAAAAAAPArJNgDAAAAAAAAADoyAjQAAAAAAAAgAAI0AAAAAAAAIAACNAAAAAAAACAAAjQAAAAAAAAgAAI0AAAAAAAAIAACNAAAAAAAACAAAjQAAAAAAAAgAAI0AAAAAAAAIAACNAAAgMO0YMEC2Ww29evXLyj3P3v2bNlsNk2dOjUo99+V9evXTzabTQsWLAj2UAAAQAdCgAYAALqM0tJShYWFyWaz6eGHH272vA0bNshms8lmsyknJyfgbZ5++umy2WyaOHFiaw83aCzL0r/+9S+de+656tu3r6KjoxUXF6cBAwZo0qRJuvXWW/Xmm2+qrKws2EMFAADoEAjQAABAl5GYmKixY8dKkj799NNmz1uyZInr8507d2rnzp1+z6uvr9fnn38uSZo2bZrX/QwZMkQDBgw4+kG3s5KSEk2bNk0XXXSR3nrrLe3evVv19fWKjIzU7t27tXz5cj366KM677zz9MYbbwR7uAAAAB0CARoAAOhSnEHX//73PzU0NPg9xxmgZWZmen3d1FdffaWKigqv25Wkc889Vxs3btTHH3/cSqNuP1dccYU+++wzhYaG6rbbbtPmzZtVW1uroqIiVVdXa+3atXrwwQc1evToYA8VAACgwyBAAwAAXYoz6CorK9OqVav8nvPZZ59Jkn7zm99Iar5azbk/IiKiS0zh3LJlixYtWiRJuvfee/XnP/9ZgwYNUkiIeUoYFhamUaNG6be//a3WrFmjiy++OJjDBQAA6DAI0AAAQJcyefJkhYWFSfJfWbZhwwYdOHBAQ4YM0SWXXNLseZ77jz/+eMXExLj2B2oi0HSB/48//lhnnXWW0tPTFRUVpWHDhmnOnDmqqakJ+H28//77mjFjhpKSkhQXF6fRo0froYcekt1uD/wABLBmzRrX5+ecc84hz4+OjvbZ57nIfnl5ue644w4NGTJE0dHRSktL06xZs7RixYpD3vbq1at1zTXXaMCAAYqJiXF9j3feeacKCwsDXltTU6MnnnhCU6ZMUVpamiIiIpSZmalZs2bpgw8+CHhtdXW17r33Xg0fPlzR0dHKyMjQzJkzO2U1IQAAaD8EaAAAoEuJi4vTscceK8l/MObcN2XKFPXs2VMDBw7U7t27tWPHDq/z7Ha73/XPDsf//d//acaMGXr//fdVX1+vuro6bdy4UbNnz9bMmTObnWLqPP7RRx+ptLRU4eHhWr9+vX73u9/p1FNPVV1d3RGNx9PevXuP6vqDBw/quOOO09y5c7Vz505FRESoqKhICxcu1MSJEzVv3rxmr73nnns0fvx4zZ8/X9u3b5fNZpPdbte3336r++67T6NGjdLq1av9XrtlyxaNGjVKN910k5YuXari4mLFxMTowIEDWrhwoc4880zdcMMNfq8tLi7WSSedpLvuuksbNmxQfX297Ha7K6x8+umnj+oxAQAAXRcBGgAA6HICrYPmDNCcFWJTpkyR5DuNc+XKlaqsrPS6vcOxdu1a3X777br99tuVn5+vgwcPqqSkRHfffbfr/l544QWf695++23NmTNHknThhRdq9+7dOnjwoMrKyvTUU0/pyy+/POKg57jjjpPNZpMk1/pnR2rOnDnKz8/X66+/rsrKSpWWlmr9+vWaMmWKHA6HfvrTn/qdQvvYY4/pj3/8o+Li4vTAAw9o3759qqysVFVVlb7++mudcsop2rdvn84++2zX+nNOJSUlOu2007RlyxadcsopWrp0qaqrq1VSUqKSkhI98sgjiouL09NPP63HH3/c576vu+46rV69WpGRkXrmmWdUXl6ugwcPaufOnZo1a5ZuuukmFRQUHPFjAgAAujALAACgi/nwww8tSZYka8WKFV7HevToYUmycnNzLcuyrBdffNGSZP34xz/2Ou/ee++1JFlRUVFWTU2N17H58+dbkqy+ffv63Pc999zjuu977rnH7/jOO+88S5J16qmn+hwbPny4JcmaMmWK1dDQ4HP8mWeecd3+lClTAjwK/l1//fWu6202mzV27FjrhhtusJ5//nnru+++sxwOR8Dr+/bt67r+o48+8jleVVVlDRo0yJJkzZw50+tYQUGBFRMTY9lsNr/XWpZl2e12a/z48ZYk69FHH/U69utf/9qSZJ1yyimW3W73e/0bb7xhSbLS0tK8zlmxYoVr3M8//7zPdfX19dakSZNc58yfPz/g4wAAALoXKtAAAECXc9JJJyk8PFySd2XZ+vXrdeDAAQ0aNEg9e/aU1HwFmvPrE088UZGRkYc9hsjISP3617/2e8y5/ti3337rtf/bb7/V+vXrJUl33nmna3F/T9dff72ys7MPezxOf/3rX3XXXXcpNjZWlmVp9erV+utf/6prr71WI0eOVGZmpm699VYdOHAg4O2cdNJJmj59us/+6OhoV3OGDz74QKWlpa5jr7zyiqqqqnTsscf6vVYyjQwuvfRSSdJ///tf137LslzTQm+77TbXOndNzZo1SwkJCSosLNQ333zj2v/aa69Jknr37q2rr77a57rQ0FDdddddAb9nAADQfRGgAQCALicmJkYTJkyQ5L0Omuf6Z059+vRRv379tHfvXm3btk2SVFdXpy+++EKSdMoppxzRGEaMGKG4uDi/x5zhXXFxsdf+r7/+WpIJkSZPnuz32pCQENf00yMRFhamP/7xj8rNzdVLL72k6667TqNHj1ZERIQkKT8/X48++qiOOeYYrVy5stnbCfS4OI85HA6vaZzLli2TJK1bt06ZmZnNbn/84x8lSbt27XJdu379etfjddVVVzV7bVZWlmvqp+f1zsd26tSprmmsTZ188snNBnMAAKB74xkCAADokqZNm6bly5dr2bJlqq+vV1hYmM/6Z05TpkzRzp07tWTJEg0YMEArV65UVVWV63aORHx8fLPHnCFNfX291/78/HxJUlpaWsCqt169eh3RmDwlJibq8ssv1+WXXy7JdLZctmyZnnjiCS1atEiFhYU6//zztWXLFkVFRflcH6gKzvOY83uSpLy8PEmmE2Z1dfUhx+j8N/C8VlKL1ynzvN45jkDjjoqKUmpq6iGr7wAAQPdDBRoAAOiSnMFXRUWFq/ros88+k+Rdgeb5tXPapvOjZyVbe2quQqotRUVF6dRTT9Xbb7+tK6+8UpLp1PnBBx/4PT/QGJs75mzo8LOf/UyWZR1y27lzp8+1krR///4WXX/VVVcd1rgBAACaQ4AGAAC6pIkTJ7qquJYsWaL169crPz9fAwYM8KngcgZozgo158dJkya51lJrDxkZGZJMhVVtbW2z5+Xm5rbpOH7yk5+4Pt+0aZPfc/bu3dvs9Z7HnN+TJGVmZkqSvvvuu8Mek/PaI73eOY5A466trVVRUdFh3zYAAOj6CNAAAECXFBUVpRNOOEGSqSjzt/6ZU//+/dWrVy/l5ubq+++/d61/dqTTN4/UscceK8lM7XSuF9aUw+HwWtetLXiu3dbcVNKmTRf8HQsJCdHYsWNd+0866SRJ0pdffum1PllLHHPMMUpISJDkbghwOJyP7WeffSbLsvyes3TpUp9ptQAAABIBGgAA6MKcAdjy5cu1ePFiSb7rnzk5g7W5c+e61udq7wBt1KhRGjZsmCTpvvvuk8Ph8Dln3rx5AauoAtmxY4c2b958yPNeeOEF1+fjxo3ze86yZcv8Bnk1NTV6+OGHJUmnn366kpKSXMd+/OMfKzo6Wg0NDbrxxhu9pmU25XA4VFJS4vo6LCxM11xzjWt8zQWMTk0bNFx88cWSpN27d3t9f573d++99wa8TQAA0H0RoAEAgC7LGYBVVlZq0aJFkvxXoHnuf/XVVyWZJgDjx49vh1F6u++++ySZKq4f/ehHrrCspqZGzzzzjH7xi194hVKH4/vvv9ewYcN01lln6cUXX/RaY8xut2v16tW6+uqr9cgjj0iSJkyYoEmTJvm9rcTERJ1//vn697//7ara2rhxo8466yxt3LhRoaGhrm6aTpmZmZo7d64k6d1339WMGTO0fPlyV5BmWZY2btyoRx55RMccc4zeeecdr+vvuusuDRgwQPX19TrjjDP0yCOPeDUUKC0t1QcffKArr7zSp4vp8ccfr7PPPluS9POf/1zPPfeca5rs7t27dfHFF+uLL75QTEzMYT2mAACge6ALJwAA6LJOOOEERUdHq7q6Wg0NDcrJyVGfPn38nusM0JxhzuTJk13dMtvTueeeqz/84Q+677779M9//lP//Oc/lZycrPLyctXX12vy5MmaNGmSHnjggcO+7fDwcDkcDr333nt67733JEkRERGKi4vTwYMHvaY2jhs3Tm+++aZCQvy/33rPPffo2Wef1YUXXqjIyEhFRUWptLRUklmo/+mnn3ZNm/T0q1/9SrW1tbrjjjv06aefatKkSYqIiFB8fLzKyspkt9td5zZd8D8lJUWLFy/Wueeeq7Vr1+q2227TbbfdpqSkJDkcDpWVlbnOHThwoM99z5s3T9OnT9fatWv1k5/8RDfeeKNiY2NVUlIim82mv/zlL3rooYcOe3opAADo+qhAAwAAXVZERIQmTpzo+rq56jNJGjx4sNdC9e09fdPTvffeq3feeUennHKKEhISVFtbq2HDhmnu3Ln6+OOPFRERcUS3e/rpp2vLli16/PHHdeGFF2rYsGGKjIxUSUmJYmJiNGjQIF100UV67bXX9NVXX6lnz57N3lZycrJWrlyp22+/XX369FFtba1SUlL0wx/+UMuXL9f111/f7LW/+c1vtHHjRt1yyy0aNWqUoqKiVFJSori4OB133HH67W9/q88//1w/+tGPfK7NycnR119/rRdffFE/+MEPlJWVpcrKStXV1SknJ0fnnnuu5s2b51rHzlNqaqo+//xzzZkzR0OHDlVISIjCwsJ0xhlnaPHixbrhhhuO6HEFAABdn81qbhVVAAAAoIl+/fpp165dmj9/vq666qpgDwcAAKBdUIEGAAAAAAAABNChA7QFCxbIZrMF3KZPnx7sYQIAAAAAAKAL69BNBMaMGaN77rnH77F///vf+v7773X66ae386gAAAAAAADQnXT4AG3MmDE+++vq6vSXv/xFYWFhuvLKK9t/YAAAAAAAAOg2OnSA1pw333xTRUVFmjVrlnr06BHs4QAAAHQbO3fuDPYQAAAA2l2nDNCef/55SdJ1110X8Lza2lrV1ta6vrYsS3V1dUpLS5PNZmvTMQIAAAAAAKDjsixL5eXlio+PP2ROZLMsy2qncbWKXbt2qX///srKytKuXbsUGhra7LmzZ8/WnDlzfPbv2bNHCQkJbTlMAAAAAAAAdGBlZWXq3bu3SkpKlJiYGPDcTleBNn/+fDkcDl199dUBwzNJuuOOO3Trrbe6vs7NzdXw4cPVu3fvth4mAAAAAAAAOoHy8vJDBmidqgLN4XAoJydHe/bs0bZt25STk3NY15eWliopKYkKNAAAAAAAgG6uy1agLV68WLt379b06dMPOzyT5JrPmpCQQIAGAAAAAACAFq2TH9IO42g1LW0eAAAAAAAAALSWThOgFRUVaeHChUpJSdG5554b7OEAAAAAAACgm+g0AdpLL72kuro6XX755YqMjAz2cAAAAAAAANBNdJoAjembAAAAAAAACIZOEaCtXLlS69at04QJEzRy5MhgDwcAAAAAAADdSKfowjlhwgRZlhXsYQAAAAAAAKAb6hQVaAAAAAAAAECwEKABAAAAAAAAARCgAQAAAAAAAAEQoAEAAAAAAAABEKABAAAAAAAAARCgAQAAAAAAAAEQoAEAAAAAAAABEKABAAAAAAAAARCgAQAAAAAAAAEQoAEAAAAAAAABEKABAAAAAAAAARCgAQAAAAAAAAEQoAEAAAAAAAABEKABAAAAAAAAARCgAQAAAAAAAAEQoAEAAAAAAAABEKABAAAAAAAAARCgAQAAAAAAAAEQoAEAAAAAAAABEKABAAAAAAAAARCgAQAAAAAAAAEQoAEAAAAAAAABEKAdhTlz5ig0NFTr168/4ttYvXq1bDab/u///q8VRwYAAAAAAIDWQoB2hA4cOKA///nPuvDCCzV8+PAjvp2xY8fq7LPP1v3336/i4uJWHCEAAAAAAABaAwHaEbr//vtVUVGhO+6446hv64477lBJSYkefPDBVhgZAAAAAAAAWpPNsiwr2INoL2VlZUpMTFRpaakSEhKO+HaqqqrUs2dP9e3bV2vXrm2VsQ0aNEglJSXKzc1VREREq9wmAAAAAAAA/DucnIgKtCPwr3/9S6Wlpbrsssv8Hi8oKNCvf/1rDRkyRFFRUUpOTtaZZ56ppUuXNnubl156qQoLC/Xmm2+21bABAAAAAABwBAjQjsA777wjSZo6darPsY0bN2rs2LF6+OGH1dDQoJkzZ2rUqFH65JNPNG3aNP3jH//we5vO23r33XfbatgAAAAAAAA4AkzhPAJZWVkqKipSeXm5IiMjXfsbGho0ZswYrVu3To8//rh++ctfymazSTLdNmfMmKGamhpt375dGRkZXrdZXl6upKQk9enTRzt27DjisQEAAAAAAODQmMLZhvLz87V//37169fPKzyTpEWLFmndunW69NJL9atf/coVnkmm2+Zdd92lyspKvfzyyz63Gx8fr6ysLO3cuVNlZWVt/n0AAAAAAACgZQjQDlN+fr4kKTk52efY4sWLJUmzZs3ye+2kSZMkSV999ZXf4ykpKZLMGmoAAAAAAADoGDpNgPbmm29qxowZSk1NVXR0tHJycnTppZdqz5497TqO0tJSSaZirKmdO3dKki6++GLZbDaf7dhjj5UkFRYW+r1tZ7mg8z4AAAAAAAAQfGHBHsChWJaln/3sZ/rb3/6mAQMG6JJLLlF8fLzy8vL02WefadeuXerdu3e7jScxMVGS/E6zbGhokCSdeeaZPmuceRo6dKjf/c7gzHkfAAAAAAAACL4OH6A9+eST+tvf/qYbb7xRjz/+uEJDQ72O19fXt+t4nMFYcXGxz7FevXpJkn72s5/p7LPPPuzbPnjwoCQpPT39KEYIAAAAAACA1tShp3BWV1drzpw56t+/vx577DGf8EySwsLaNwPMyMhQZmamdu3aperqaq9jp556qiTprbfeOuzbLSsrU15ennJyco6qQygAAAAAAABaV4cO0BYvXqzi4mLNmjVLDQ0NeuONNzR37lw988wz2rp1a9DGNXnyZNXX12v16tVe+y+44AINHTpUCxYs0IMPPii73e51vK6uTm+88Ya+++47n9v86quvZFmWJk+e3KZjBwAAAAAAwOHp0FM4v/76a0mmymz06NHatGmT61hISIhuueUW/fnPf272+traWtXW1rq+9rdu2ZE466yz9K9//UuffvqpJk6c6NofFhamN998U6effrpuv/12Pf744xo1apQSEhK0Z88ebdy4USUlJXrzzTc1cuRIr9tcsmSJJGnmzJmtMkYAAAAAAAC0jg5dgZafny9Jevjhh5WQkKCVK1eqvLxcS5cu1eDBg/Xwww/r6aefbvb6Bx54QImJia6ttZoNXHTRRUpMTNQ//vEPn2NDhw7VmjVrNHv2bGVkZGjZsmV69913VVBQoJNPPlnz5893TfX09OqrryotLU3nnntuq4wRAAAAAAAArcNmWZYV7EE05yc/+Ymee+45RUdHa+vWrerZs6fr2Pfff69Ro0YpJyen2emc/irQevfurdLS0qNeZ+yWW27RY489pm+++Ubjxo07qtv64osvNHHiRP32t7/Vgw8+eFS3BQAAAAAAgEMrKytTYmJii3KiDl2BlpiYKEk69thjvcIzSRoxYoT69++vbdu2qaSkxO/1kZGRSkhI8Npayx133KG4uDjNnTv3qG9r7ty5SkpK0m9/+9tWGBkAAAAAAABaU4cO0IYMGSJJSkpK8nvcub9pN8z2kJGRod/85jf6z3/+o/Xr1x/x7axevVpvv/227rjjDqWmprbiCAEAAAAAANAaOvQUzm3btmngwIEaOHCgtmzZ4nXMbrcrIyNDdrtdJSUlCgs7dD+EwynNAwAAAAAAQNfVZaZwDhgwQKeddpq2bt2qv//9717H5s6dq5KSEp177rktCs8AAAAAAACAI9GhK9AkU4U2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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## Preliminary Figure 3e\n", "\n", "fig, ax = plt.subplots(figsize=(15, 3))\n", "bbox = {'boxstyle': 'round', 'facecolor': 'w', 'alpha': 0.9}\n", "cmap = plt.get_cmap('tab10')\n", "palette = [cmap(0), cmap(0.2), 'k', cmap(0.1), cmap(0.3)]\n", "\n", "x=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']\n", "y=[Jan_C,Feb_C,Mar_C,Apr_C,May_C,Jun_C,Jul_C,Aug_C,Sep_C,Oct_C,Nov_C,Dec_C]\n", "y2=[Jan_W,Feb_W,Mar_W,Apr_W,May_W,Jun_W,Jul_W,Aug_W,Sep_W,Oct_W,Nov_W,Dec_W]\n", "err1=[sem(Jan_C_years),sem(Feb_C_years),sem(Mar_C_years),sem(Apr_C_years),sem(May_C_years),sem(Jun_C_years),\\\n", " sem(Jul_C_years),sem(Aug_C_years),sem(Sep_C_years),sem(Oct_C_years),sem(Nov_C_years),sem(Dec_C_years)]\n", "err2=[sem(Jan_W_years),sem(Feb_W_years),sem(Mar_W_years),sem(Apr_W_years),sem(May_W_years),sem(Jun_W_years),\\\n", " sem(Jul_W_years),sem(Aug_W_years),sem(Sep_W_years),sem(Oct_W_years),sem(Nov_W_years),sem(Dec_W_years)]\n", "\n", "ax.errorbar(x, y, yerr= err1, capsize=3,label='NPGO+ coldest',linewidth=2)\n", "ax.errorbar(x, y2,yerr= err2, capsize=3,linestyle='--',label='NPGO- warmest',color='r',linewidth=2)\n", "\n", "ax.set_title('Wind Speed',fontsize=18) #(with 2015)\n", "ax.legend((),frameon=False)\n", "ax.set_ylim(2,7)\n", "ax.set_ylabel('m s$^{-1}$',fontsize=14)\n", "ax.xaxis.set_tick_params(labelsize=14)\n", "ax.yaxis.set_tick_params(labelsize=14)\n", "ax.set_xticklabels([])\n", "\n", "a=2\n", "b=5\n", "c=5\n", "d=8\n", "#plt.fill([a, a, b, b], [0, 200, 200, 0], color = 'lightgreen', alpha = 0.1)\n", "#plt.fill([c, c, d, d], [0, 200, 200, 0], color = 'wheat', alpha = 0.2)\n", "ax.text(-.4, 6, '(e)', fontsize=15, color='k')\n", "\n", "#plt.savefig('Fig3e_Wind.png', bbox_inches='tight',dpi=1000,transparent=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Data for Figure 3: Calculate monthly standard error values for cold and warm years" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## Preliminary Figure 3e\n", "\n", "def color_boxplot(data, color, pos=[0], ax=None):\n", " ax = ax or plt.gca()\n", " bp = ax.boxplot(data, patch_artist=True, showmeans=False, positions=pos,widths=0.4)\n", " for item in ['boxes']:\n", " plt.setp(bp[item], color=color)\n", " for item in ['whiskers', 'fliers', 'medians', 'caps']:\n", " plt.setp(bp[item], color='k')\n", "\n", "\n", "data1 = [Mar_C,Apr_C,May_C]\n", "data2 = [Mar_W,Apr_W,May_W]\n", "data3 = [Jun_C,Jul_C,Aug_C]\n", "data4 = [Jun_W,Jul_W,Aug_W]\n", "\n", "fig, ax = plt.subplots(figsize=(3,3))\n", "bp1 = color_boxplot(data1, 'royalblue', [1])\n", "bp2 = color_boxplot(data2, 'r', [1.5])\n", "bp3 = color_boxplot(data3, 'royalblue', [2.5])\n", "bp4 = color_boxplot(data4, 'r', [3])\n", "#ax.autoscale()\n", "ax.set(xticks=[1.25,2.75], xticklabels=['Spring','Summer'])\n", "ax.set_ylim(2,6)\n", "ax.set_ylabel('m s$^{-1}$')\n", "#ax.legend([bp1[\"boxes\"], bp2[\"boxes\"], ['A', 'B'], loc='upper right')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [], "source": [ "Spring_C=[Mar_C,Apr_C,May_C]" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [], "source": [ "Spring_W=[Mar_W,Apr_W,May_W]" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [], "source": [ "Summer_C=[Jun_C,Jul_C,Aug_C]" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [], "source": [ "Summer_W=[Jun_W,Jul_W,Aug_W]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### t tests for differences between spring and summer of cold and warm years" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Ttest_indResult(statistic=2.953064336931021, pvalue=0.041841701482369396)" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stats.ttest_ind(a=Spring_C, b=Spring_W, equal_var=True)" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Ttest_indResult(statistic=7.599375504506321, pvalue=0.0016087822252725328)" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stats.ttest_ind(a=Summer_C, b=Summer_W, equal_var=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python (py39)", "language": "python", "name": "py39" }, "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.15" } }, "nbformat": 4, "nbformat_minor": 4 }