(180+div))\n",
" elif hemi == 'EH':\n",
" mask2 = (lon2>div) & (lon2<(180+div))\n",
" mask = (lon>div) & (lon<(180+div))\n",
"\n",
" data_flat = sarea.values.flatten()\n",
" mask2_flat = mask2.flatten()\n",
" return np.sum(data_flat[mask2_flat]) / np.sum(area[:,mask])\n",
" #return np.sum(sarea[:,mask2]) / np.sum(area[:,mask])\n",
"\n",
"def geoavg_flx(data,hemi='both',div=180):\n",
"\n",
" mask2 = lon<1e10\n",
"\n",
" if hemi == 'WH':\n",
" mask2 = (lon
(180+div))\n",
" elif hemi == 'EH':\n",
" mask2 = (lon>div) & (lon<(180+div))\n",
"\n",
" return np.sum(data[:,mask2]*area[:,mask2]/np.sum(area[:,mask2],axis=(0,1)),axis=(0,1))\n",
" #return np.average(data[:,:,mask2],weights=area[:,:,mask2],axis=(1,2))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7b10ac61",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Processing period PI, division 1...\n",
"Processing period PI, division 2...\n",
"Processing period PI, division 3...\n",
"Processing period PI, division 4...\n",
"Processing period PI, division 5...\n",
"Processing period PI, division 6...\n",
"Processing period PI, division 7...\n",
"Processing period PI, division 8...\n",
"Processing period PI, division 9...\n",
"Processing period PI, division 10...\n",
"Processing period PI, division 11...\n",
"Processing period PI, division 12...\n",
"Processing period PI, division 13...\n",
"Processing period PI, division 14...\n",
"Processing period PI, division 15...\n",
"Processing period PI, division 16...\n",
"Processing period PI, division 17...\n",
"Processing period PI, division 18...\n",
"Processing period PI, division 19...\n",
"Processing period PI, division 20...\n",
"Processing period PI, division 21...\n",
"Processing period PI, division 22...\n",
"Processing period PI, division 23...\n",
"Processing period PI, division 24...\n",
"Processing period PI, division 25...\n",
"Processing period PI, division 26...\n",
"Processing period PI, division 27...\n",
"Processing period PI, division 28...\n",
"Processing period PI, division 29...\n",
"Processing period PI, division 30...\n",
"Processing period PI, division 31...\n",
"Processing period PI, division 32...\n",
"Processing period PI, division 33...\n",
"Processing period PI, division 34...\n",
"Processing period PI, division 35...\n",
"Processing period PI, division 36...\n",
"Processing period PI, division 37...\n",
"Processing period PI, division 38...\n",
"Processing period PI, division 39...\n",
"Processing period PI, division 40...\n",
"Processing period PI, division 41...\n",
"Processing period PI, division 42...\n",
"Processing period PI, division 43...\n",
"Processing period PI, division 44...\n",
"Processing period PI, division 45...\n",
"Processing period PI, division 46...\n",
"Processing period PI, division 47...\n",
"Processing period PI, division 48...\n",
"Processing period PI, division 49...\n",
"Processing period PI, division 50...\n",
"Processing period PI, division 51...\n",
"Processing period PI, division 52...\n",
"Processing period PI, division 53...\n",
"Processing period PI, division 54...\n",
"Processing period PI, division 55...\n",
"Processing period PI, division 56...\n",
"Processing period PI, division 57...\n",
"Processing period PI, division 58...\n",
"Processing period PI, division 59...\n",
"Processing period PI, division 60...\n",
"Processing period PI, division 61...\n",
"Processing period PI, division 62...\n",
"Processing period PI, division 63...\n",
"Processing period PI, division 64...\n",
"Processing period PI, division 65...\n",
"Processing period PI, division 66...\n",
"Processing period PI, division 67...\n",
"Processing period PI, division 68...\n",
"Processing period PI, division 69...\n",
"Processing period PI, division 70...\n",
"Processing period PI, division 71...\n",
"Processing period PI, division 72...\n",
"Processing period PI, division 73...\n",
"Processing period PI, division 74...\n",
"Processing period PI, division 75...\n",
"Processing period PI, division 76...\n",
"Processing period PI, division 77...\n",
"Processing period PI, division 78...\n",
"Processing period PI, division 79...\n",
"Processing period PI, division 80...\n",
"Processing period PI, division 81...\n",
"Processing period PI, division 82...\n",
"Processing period PI, division 83...\n",
"Processing period PI, division 84...\n",
"Processing period PI, division 85...\n",
"Processing period PI, division 86...\n",
"Processing period PI, division 87...\n",
"Processing period PI, division 88...\n",
"Processing period PI, division 89...\n",
"Processing period PI, division 90...\n",
"Processing period PI, division 91...\n",
"Processing period PI, division 92...\n",
"Processing period PI, division 93...\n",
"Processing period PI, division 94...\n",
"Processing period PI, division 95...\n",
"Processing period PI, division 96...\n",
"Processing period PI, division 97...\n",
"Processing period PI, division 98...\n",
"Processing period PI, division 99...\n",
"Processing period PI, division 100...\n",
"Processing period PI, division 101...\n",
"Processing period PI, division 102...\n",
"Processing period PI, division 103...\n",
"Processing period PI, division 104...\n",
"Processing period PI, division 105...\n",
"Processing period PI, division 106...\n",
"Processing period PI, division 107...\n",
"Processing period PI, division 108...\n",
"Processing period PI, division 109...\n",
"Processing period PI, division 110...\n",
"Processing period PI, division 111...\n",
"Processing period PI, division 112...\n",
"Processing period PI, division 113...\n",
"Processing period PI, division 114...\n",
"Processing period PI, division 115...\n",
"Processing period PI, division 116...\n",
"Processing period PI, division 117...\n",
"Processing period PI, division 118...\n",
"Processing period PI, division 119...\n",
"Processing period PI, division 120...\n",
"Processing period PI, division 121...\n",
"Processing period PI, division 122...\n",
"Processing period PI, division 123...\n",
"Processing period PI, division 124...\n",
"Processing period PI, division 125...\n",
"Processing period PI, division 126...\n",
"Processing period PI, division 127...\n",
"Processing period PI, division 128...\n",
"Processing period PI, division 129...\n",
"Processing period PI, division 130...\n",
"Processing period PI, division 131...\n",
"Processing period PI, division 132...\n",
"Processing period PI, division 133...\n",
"Processing period PI, division 134...\n",
"Processing period PI, division 135...\n",
"Processing period PI, division 136...\n",
"Processing period PI, division 137...\n",
"Processing period PI, division 138...\n",
"Processing period PI, division 139...\n",
"Processing period PI, division 140...\n",
"Processing period PI, division 141...\n",
"Processing period PI, division 142...\n",
"Processing period PI, division 143...\n",
"Processing period PI, division 144...\n",
"Processing period PI, division 145...\n",
"Processing period PI, division 146...\n",
"Processing period PI, division 147...\n",
"Processing period PI, division 148...\n",
"Processing period PI, division 149...\n",
"Processing period PI, division 150...\n",
"Processing period PI, division 151...\n",
"Processing period PI, division 152...\n",
"Processing period PI, division 153...\n",
"Processing period PI, division 154...\n",
"Processing period PI, division 155...\n",
"Processing period PI, division 156...\n",
"Processing period PI, division 157...\n",
"Processing period PI, division 158...\n",
"Processing period PI, division 159...\n",
"Processing period PI, division 160...\n",
"Processing period PI, division 161...\n",
"Processing period PI, division 162...\n",
"Processing period PI, division 163...\n",
"Processing period PI, division 164...\n",
"Processing period PI, division 165...\n",
"Processing period PI, division 166...\n",
"Processing period PI, division 167...\n",
"Processing period PI, division 168...\n",
"Processing period PI, division 169...\n",
"Processing period PI, division 170...\n",
"Processing period PI, division 171...\n",
"Processing period PI, division 172...\n",
"Processing period PI, division 173...\n",
"Processing period PI, division 174...\n",
"Processing period PI, division 175...\n",
"Processing period PI, division 176...\n",
"Processing period PI, division 177...\n",
"Processing period PI, division 178...\n",
"Processing period PI, division 179...\n",
"Processing period PI, division 180...\n",
"Processing period MC, division 1...\n",
"Processing period MC, division 2...\n",
"Processing period MC, division 3...\n",
"Processing period MC, division 4...\n",
"Processing period MC, division 5...\n",
"Processing period MC, division 6...\n",
"Processing period MC, division 7...\n",
"Processing period MC, division 8...\n",
"Processing period MC, division 9...\n",
"Processing period MC, division 10...\n",
"Processing period MC, division 11...\n",
"Processing period MC, division 12...\n",
"Processing period MC, division 13...\n",
"Processing period MC, division 14...\n",
"Processing period MC, division 15...\n",
"Processing period MC, division 16...\n",
"Processing period MC, division 17...\n",
"Processing period MC, division 18...\n",
"Processing period MC, division 19...\n",
"Processing period MC, division 20...\n",
"Processing period MC, division 21...\n",
"Processing period MC, division 22...\n",
"Processing period MC, division 23...\n",
"Processing period MC, division 24...\n",
"Processing period MC, division 25...\n",
"Processing period MC, division 26...\n",
"Processing period MC, division 27...\n",
"Processing period MC, division 28...\n",
"Processing period MC, division 29...\n",
"Processing period MC, division 30...\n",
"Processing period MC, division 31...\n",
"Processing period MC, division 32...\n",
"Processing period MC, division 33...\n",
"Processing period MC, division 34...\n",
"Processing period MC, division 35...\n",
"Processing period MC, division 36...\n",
"Processing period MC, division 37...\n",
"Processing period MC, division 38...\n",
"Processing period MC, division 39...\n",
"Processing period MC, division 40...\n",
"Processing period MC, division 41...\n",
"Processing period MC, division 42...\n",
"Processing period MC, division 43...\n",
"Processing period MC, division 44...\n",
"Processing period MC, division 45...\n",
"Processing period MC, division 46...\n",
"Processing period MC, division 47...\n",
"Processing period MC, division 48...\n",
"Processing period MC, division 49...\n",
"Processing period MC, division 50...\n",
"Processing period MC, division 51...\n",
"Processing period MC, division 52...\n",
"Processing period MC, division 53...\n",
"Processing period MC, division 54...\n",
"Processing period MC, division 55...\n",
"Processing period MC, division 56...\n",
"Processing period MC, division 57...\n",
"Processing period MC, division 58...\n",
"Processing period MC, division 59...\n",
"Processing period MC, division 60...\n",
"Processing period MC, division 61...\n",
"Processing period MC, division 62...\n",
"Processing period MC, division 63...\n",
"Processing period MC, division 64...\n",
"Processing period MC, division 65...\n",
"Processing period MC, division 66...\n",
"Processing period MC, division 67...\n",
"Processing period MC, division 68...\n",
"Processing period MC, division 69...\n",
"Processing period MC, division 70...\n",
"Processing period MC, division 71...\n",
"Processing period MC, division 72...\n",
"Processing period MC, division 73...\n",
"Processing period MC, division 74...\n",
"Processing period MC, division 75...\n",
"Processing period MC, division 76...\n",
"Processing period MC, division 77...\n",
"Processing period MC, division 78...\n",
"Processing period MC, division 79...\n",
"Processing period MC, division 80...\n",
"Processing period MC, division 81...\n",
"Processing period MC, division 82...\n",
"Processing period MC, division 83...\n",
"Processing period MC, division 84...\n",
"Processing period MC, division 85...\n",
"Processing period MC, division 86...\n",
"Processing period MC, division 87...\n",
"Processing period MC, division 88...\n",
"Processing period MC, division 89...\n",
"Processing period MC, division 90...\n",
"Processing period MC, division 91...\n",
"Processing period MC, division 92...\n",
"Processing period MC, division 93...\n",
"Processing period MC, division 94...\n",
"Processing period MC, division 95...\n",
"Processing period MC, division 96...\n",
"Processing period MC, division 97...\n",
"Processing period MC, division 98...\n",
"Processing period MC, division 99...\n",
"Processing period MC, division 100...\n",
"Processing period MC, division 101...\n",
"Processing period MC, division 102...\n",
"Processing period MC, division 103...\n",
"Processing period MC, division 104...\n",
"Processing period MC, division 105...\n",
"Processing period MC, division 106...\n",
"Processing period MC, division 107...\n",
"Processing period MC, division 108...\n",
"Processing period MC, division 109...\n",
"Processing period MC, division 110...\n",
"Processing period MC, division 111...\n",
"Processing period MC, division 112...\n",
"Processing period MC, division 113...\n",
"Processing period MC, division 114...\n",
"Processing period MC, division 115...\n",
"Processing period MC, division 116...\n",
"Processing period MC, division 117...\n",
"Processing period MC, division 118...\n",
"Processing period MC, division 119...\n",
"Processing period MC, division 120...\n",
"Processing period MC, division 121...\n",
"Processing period MC, division 122...\n",
"Processing period MC, division 123...\n",
"Processing period MC, division 124...\n",
"Processing period MC, division 125...\n",
"Processing period MC, division 126...\n",
"Processing period MC, division 127...\n",
"Processing period MC, division 128...\n",
"Processing period MC, division 129...\n",
"Processing period MC, division 130...\n",
"Processing period MC, division 131...\n",
"Processing period MC, division 132...\n",
"Processing period MC, division 133...\n",
"Processing period MC, division 134...\n",
"Processing period MC, division 135...\n",
"Processing period MC, division 136...\n",
"Processing period MC, division 137...\n",
"Processing period MC, division 138...\n",
"Processing period MC, division 139...\n",
"Processing period MC, division 140...\n",
"Processing period MC, division 141...\n",
"Processing period MC, division 142...\n",
"Processing period MC, division 143...\n",
"Processing period MC, division 144...\n",
"Processing period MC, division 145...\n",
"Processing period MC, division 146...\n",
"Processing period MC, division 147...\n",
"Processing period MC, division 148...\n",
"Processing period MC, division 149...\n",
"Processing period MC, division 150...\n",
"Processing period MC, division 151...\n",
"Processing period MC, division 152...\n",
"Processing period MC, division 153...\n",
"Processing period MC, division 154...\n",
"Processing period MC, division 155...\n",
"Processing period MC, division 156...\n",
"Processing period MC, division 157...\n",
"Processing period MC, division 158...\n",
"Processing period MC, division 159...\n",
"Processing period MC, division 160...\n",
"Processing period MC, division 161...\n",
"Processing period MC, division 162...\n",
"Processing period MC, division 163...\n",
"Processing period MC, division 164...\n",
"Processing period MC, division 165...\n",
"Processing period MC, division 166...\n",
"Processing period MC, division 167...\n",
"Processing period MC, division 168...\n",
"Processing period MC, division 169...\n",
"Processing period MC, division 170...\n",
"Processing period MC, division 171...\n",
"Processing period MC, division 172...\n",
"Processing period MC, division 173...\n",
"Processing period MC, division 174...\n",
"Processing period MC, division 175...\n",
"Processing period MC, division 176...\n",
"Processing period MC, division 177...\n",
"Processing period MC, division 178...\n",
"Processing period MC, division 179...\n",
"Processing period MC, division 180...\n",
"Processing period PD, division 1...\n",
"Processing period PD, division 2...\n",
"Processing period PD, division 3...\n",
"Processing period PD, division 4...\n",
"Processing period PD, division 5...\n",
"Processing period PD, division 6...\n",
"Processing period PD, division 7...\n",
"Processing period PD, division 8...\n",
"Processing period PD, division 9...\n",
"Processing period PD, division 10...\n",
"Processing period PD, division 11...\n",
"Processing period PD, division 12...\n",
"Processing period PD, division 13...\n",
"Processing period PD, division 14...\n",
"Processing period PD, division 15...\n",
"Processing period PD, division 16...\n",
"Processing period PD, division 17...\n",
"Processing period PD, division 18...\n",
"Processing period PD, division 19...\n",
"Processing period PD, division 20...\n",
"Processing period PD, division 21...\n",
"Processing period PD, division 22...\n",
"Processing period PD, division 23...\n",
"Processing period PD, division 24...\n",
"Processing period PD, division 25...\n",
"Processing period PD, division 26...\n",
"Processing period PD, division 27...\n",
"Processing period PD, division 28...\n",
"Processing period PD, division 29...\n",
"Processing period PD, division 30...\n",
"Processing period PD, division 31...\n",
"Processing period PD, division 32...\n",
"Processing period PD, division 33...\n",
"Processing period PD, division 34...\n",
"Processing period PD, division 35...\n",
"Processing period PD, division 36...\n",
"Processing period PD, division 37...\n",
"Processing period PD, division 38...\n",
"Processing period PD, division 39...\n",
"Processing period PD, division 40...\n",
"Processing period PD, division 41...\n",
"Processing period PD, division 42...\n",
"Processing period PD, division 43...\n",
"Processing period PD, division 44...\n",
"Processing period PD, division 45...\n",
"Processing period PD, division 46...\n",
"Processing period PD, division 47...\n",
"Processing period PD, division 48...\n",
"Processing period PD, division 49...\n",
"Processing period PD, division 50...\n",
"Processing period PD, division 51...\n",
"Processing period PD, division 52...\n",
"Processing period PD, division 53...\n",
"Processing period PD, division 54...\n",
"Processing period PD, division 55...\n",
"Processing period PD, division 56...\n",
"Processing period PD, division 57...\n",
"Processing period PD, division 58...\n",
"Processing period PD, division 59...\n",
"Processing period PD, division 60...\n",
"Processing period PD, division 61...\n",
"Processing period PD, division 62...\n",
"Processing period PD, division 63...\n",
"Processing period PD, division 64...\n",
"Processing period PD, division 65...\n",
"Processing period PD, division 66...\n",
"Processing period PD, division 67...\n",
"Processing period PD, division 68...\n",
"Processing period PD, division 69...\n",
"Processing period PD, division 70...\n",
"Processing period PD, division 71...\n",
"Processing period PD, division 72...\n",
"Processing period PD, division 73...\n",
"Processing period PD, division 74...\n",
"Processing period PD, division 75...\n",
"Processing period PD, division 76...\n",
"Processing period PD, division 77...\n",
"Processing period PD, division 78...\n",
"Processing period PD, division 79...\n",
"Processing period PD, division 80...\n",
"Processing period PD, division 81...\n",
"Processing period PD, division 82...\n",
"Processing period PD, division 83...\n",
"Processing period PD, division 84...\n",
"Processing period PD, division 85...\n",
"Processing period PD, division 86...\n",
"Processing period PD, division 87...\n",
"Processing period PD, division 88...\n",
"Processing period PD, division 89...\n",
"Processing period PD, division 90...\n",
"Processing period PD, division 91...\n",
"Processing period PD, division 92...\n",
"Processing period PD, division 93...\n",
"Processing period PD, division 94...\n",
"Processing period PD, division 95...\n",
"Processing period PD, division 96...\n",
"Processing period PD, division 97...\n",
"Processing period PD, division 98...\n",
"Processing period PD, division 99...\n",
"Processing period PD, division 100...\n",
"Processing period PD, division 101...\n",
"Processing period PD, division 102...\n",
"Processing period PD, division 103...\n",
"Processing period PD, division 104...\n",
"Processing period PD, division 105...\n",
"Processing period PD, division 106...\n",
"Processing period PD, division 107...\n",
"Processing period PD, division 108...\n",
"Processing period PD, division 109...\n",
"Processing period PD, division 110...\n",
"Processing period PD, division 111...\n",
"Processing period PD, division 112...\n",
"Processing period PD, division 113...\n",
"Processing period PD, division 114...\n",
"Processing period PD, division 115...\n",
"Processing period PD, division 116...\n",
"Processing period PD, division 117...\n",
"Processing period PD, division 118...\n",
"Processing period PD, division 119...\n",
"Processing period PD, division 120...\n",
"Processing period PD, division 121...\n",
"Processing period PD, division 122...\n",
"Processing period PD, division 123...\n",
"Processing period PD, division 124...\n",
"Processing period PD, division 125...\n",
"Processing period PD, division 126...\n",
"Processing period PD, division 127...\n",
"Processing period PD, division 128...\n",
"Processing period PD, division 129...\n",
"Processing period PD, division 130...\n",
"Processing period PD, division 131...\n",
"Processing period PD, division 132...\n",
"Processing period PD, division 133...\n",
"Processing period PD, division 134...\n",
"Processing period PD, division 135...\n",
"Processing period PD, division 136...\n",
"Processing period PD, division 137...\n",
"Processing period PD, division 138...\n",
"Processing period PD, division 139...\n",
"Processing period PD, division 140...\n",
"Processing period PD, division 141...\n",
"Processing period PD, division 142...\n",
"Processing period PD, division 143...\n",
"Processing period PD, division 144...\n",
"Processing period PD, division 145...\n",
"Processing period PD, division 146...\n",
"Processing period PD, division 147...\n",
"Processing period PD, division 148...\n",
"Processing period PD, division 149...\n",
"Processing period PD, division 150...\n",
"Processing period PD, division 151...\n",
"Processing period PD, division 152...\n",
"Processing period PD, division 153...\n",
"Processing period PD, division 154...\n",
"Processing period PD, division 155...\n",
"Processing period PD, division 156...\n",
"Processing period PD, division 157...\n",
"Processing period PD, division 158...\n",
"Processing period PD, division 159...\n",
"Processing period PD, division 160...\n",
"Processing period PD, division 161...\n",
"Processing period PD, division 162...\n",
"Processing period PD, division 163...\n",
"Processing period PD, division 164...\n",
"Processing period PD, division 165...\n",
"Processing period PD, division 166...\n",
"Processing period PD, division 167...\n",
"Processing period PD, division 168...\n",
"Processing period PD, division 169...\n",
"Processing period PD, division 170...\n",
"Processing period PD, division 171...\n",
"Processing period PD, division 172...\n",
"Processing period PD, division 173...\n",
"Processing period PD, division 174...\n",
"Processing period PD, division 175...\n",
"Processing period PD, division 176...\n",
"Processing period PD, division 177...\n",
"Processing period PD, division 178...\n",
"Processing period PD, division 179...\n",
"Processing period PD, division 180...\n",
"Processing period EOC, division 1...\n",
"Processing period EOC, division 2...\n",
"Processing period EOC, division 3...\n",
"Processing period EOC, division 4...\n",
"Processing period EOC, division 5...\n",
"Processing period EOC, division 6...\n",
"Processing period EOC, division 7...\n",
"Processing period EOC, division 8...\n",
"Processing period EOC, division 9...\n",
"Processing period EOC, division 10...\n",
"Processing period EOC, division 11...\n",
"Processing period EOC, division 12...\n",
"Processing period EOC, division 13...\n",
"Processing period EOC, division 14...\n",
"Processing period EOC, division 15...\n",
"Processing period EOC, division 16...\n",
"Processing period EOC, division 17...\n",
"Processing period EOC, division 18...\n",
"Processing period EOC, division 19...\n",
"Processing period EOC, division 20...\n",
"Processing period EOC, division 21...\n",
"Processing period EOC, division 22...\n",
"Processing period EOC, division 23...\n",
"Processing period EOC, division 24...\n",
"Processing period EOC, division 25...\n",
"Processing period EOC, division 26...\n",
"Processing period EOC, division 27...\n",
"Processing period EOC, division 28...\n",
"Processing period EOC, division 29...\n",
"Processing period EOC, division 30...\n",
"Processing period EOC, division 31...\n",
"Processing period EOC, division 32...\n",
"Processing period EOC, division 33...\n",
"Processing period EOC, division 34...\n",
"Processing period EOC, division 35...\n",
"Processing period EOC, division 36...\n",
"Processing period EOC, division 37...\n",
"Processing period EOC, division 38...\n",
"Processing period EOC, division 39...\n",
"Processing period EOC, division 40...\n",
"Processing period EOC, division 41...\n",
"Processing period EOC, division 42...\n",
"Processing period EOC, division 43...\n",
"Processing period EOC, division 44...\n",
"Processing period EOC, division 45...\n",
"Processing period EOC, division 46...\n",
"Processing period EOC, division 47...\n",
"Processing period EOC, division 48...\n",
"Processing period EOC, division 49...\n",
"Processing period EOC, division 50...\n",
"Processing period EOC, division 51...\n",
"Processing period EOC, division 52...\n",
"Processing period EOC, division 53...\n",
"Processing period EOC, division 54...\n",
"Processing period EOC, division 55...\n",
"Processing period EOC, division 56...\n",
"Processing period EOC, division 57...\n",
"Processing period EOC, division 58...\n",
"Processing period EOC, division 59...\n",
"Processing period EOC, division 60...\n",
"Processing period EOC, division 61...\n",
"Processing period EOC, division 62...\n",
"Processing period EOC, division 63...\n",
"Processing period EOC, division 64...\n",
"Processing period EOC, division 65...\n",
"Processing period EOC, division 66...\n",
"Processing period EOC, division 67...\n",
"Processing period EOC, division 68...\n",
"Processing period EOC, division 69...\n",
"Processing period EOC, division 70...\n",
"Processing period EOC, division 71...\n",
"Processing period EOC, division 72...\n",
"Processing period EOC, division 73...\n",
"Processing period EOC, division 74...\n",
"Processing period EOC, division 75...\n",
"Processing period EOC, division 76...\n",
"Processing period EOC, division 77...\n",
"Processing period EOC, division 78...\n",
"Processing period EOC, division 79...\n",
"Processing period EOC, division 80...\n",
"Processing period EOC, division 81...\n",
"Processing period EOC, division 82...\n",
"Processing period EOC, division 83...\n",
"Processing period EOC, division 84...\n",
"Processing period EOC, division 85...\n",
"Processing period EOC, division 86...\n",
"Processing period EOC, division 87...\n",
"Processing period EOC, division 88...\n",
"Processing period EOC, division 89...\n",
"Processing period EOC, division 90...\n",
"Processing period EOC, division 91...\n",
"Processing period EOC, division 92...\n",
"Processing period EOC, division 93...\n",
"Processing period EOC, division 94...\n",
"Processing period EOC, division 95...\n",
"Processing period EOC, division 96...\n",
"Processing period EOC, division 97...\n",
"Processing period EOC, division 98...\n",
"Processing period EOC, division 99...\n",
"Processing period EOC, division 100...\n",
"Processing period EOC, division 101...\n",
"Processing period EOC, division 102...\n",
"Processing period EOC, division 103...\n",
"Processing period EOC, division 104...\n",
"Processing period EOC, division 105...\n",
"Processing period EOC, division 106...\n",
"Processing period EOC, division 107...\n",
"Processing period EOC, division 108...\n",
"Processing period EOC, division 109...\n",
"Processing period EOC, division 110...\n",
"Processing period EOC, division 111...\n",
"Processing period EOC, division 112...\n",
"Processing period EOC, division 113...\n",
"Processing period EOC, division 114...\n",
"Processing period EOC, division 115...\n",
"Processing period EOC, division 116...\n",
"Processing period EOC, division 117...\n",
"Processing period EOC, division 118...\n",
"Processing period EOC, division 119...\n",
"Processing period EOC, division 120...\n",
"Processing period EOC, division 121...\n",
"Processing period EOC, division 122...\n",
"Processing period EOC, division 123...\n",
"Processing period EOC, division 124...\n",
"Processing period EOC, division 125...\n",
"Processing period EOC, division 126...\n",
"Processing period EOC, division 127...\n",
"Processing period EOC, division 128...\n",
"Processing period EOC, division 129...\n",
"Processing period EOC, division 130...\n",
"Processing period EOC, division 131...\n",
"Processing period EOC, division 132...\n",
"Processing period EOC, division 133...\n",
"Processing period EOC, division 134...\n",
"Processing period EOC, division 135...\n",
"Processing period EOC, division 136...\n",
"Processing period EOC, division 137...\n",
"Processing period EOC, division 138...\n",
"Processing period EOC, division 139...\n",
"Processing period EOC, division 140...\n",
"Processing period EOC, division 141...\n",
"Processing period EOC, division 142...\n",
"Processing period EOC, division 143...\n",
"Processing period EOC, division 144...\n",
"Processing period EOC, division 145...\n",
"Processing period EOC, division 146...\n",
"Processing period EOC, division 147...\n",
"Processing period EOC, division 148...\n",
"Processing period EOC, division 149...\n",
"Processing period EOC, division 150...\n",
"Processing period EOC, division 151...\n",
"Processing period EOC, division 152...\n",
"Processing period EOC, division 153...\n",
"Processing period EOC, division 154...\n",
"Processing period EOC, division 155...\n",
"Processing period EOC, division 156...\n",
"Processing period EOC, division 157...\n",
"Processing period EOC, division 158...\n",
"Processing period EOC, division 159...\n",
"Processing period EOC, division 160...\n",
"Processing period EOC, division 161...\n",
"Processing period EOC, division 162...\n",
"Processing period EOC, division 163...\n",
"Processing period EOC, division 164...\n",
"Processing period EOC, division 165...\n",
"Processing period EOC, division 166...\n",
"Processing period EOC, division 167...\n",
"Processing period EOC, division 168...\n",
"Processing period EOC, division 169...\n",
"Processing period EOC, division 170...\n",
"Processing period EOC, division 171...\n",
"Processing period EOC, division 172...\n",
"Processing period EOC, division 173...\n",
"Processing period EOC, division 174...\n",
"Processing period EOC, division 175...\n",
"Processing period EOC, division 176...\n",
"Processing period EOC, division 177...\n",
"Processing period EOC, division 178...\n",
"Processing period EOC, division 179...\n",
"Processing period EOC, division 180...\n"
]
}
],
"source": [
"tindex = [np.arange(240), np.arange(240)+1080, np.arange(240)+1740, np.arange(240)+2760]\n",
"#tindex = [np.arange(240), np.arange(240)+1080, np.arange(168)+1812, np.arange(240)+2760]\n",
"dR = np.nan*np.ones((180,4))\n",
"dR_cld = np.nan*np.ones((180,4))\n",
"dR_clr = np.nan*np.ones((180,4))\n",
"dO = np.nan*np.ones((180,4))\n",
"symmetry = np.nan*np.ones(4)\n",
"dR_intann_sym = np.nan*np.ones((20,4))\n",
"dR_intann_27 = np.nan*np.ones((20,4))\n",
"ewR_sym = np.nan*np.ones((2,4))\n",
"ewR_sym_cld = np.nan*np.ones((2,4))\n",
"ewR_sym_clr = np.nan*np.ones((2,4))\n",
"ewO_sym = np.nan*np.ones((2,4))\n",
"ewR_27 = np.nan*np.ones((2,4))\n",
"ewR_27_cld = np.nan*np.ones((2,4))\n",
"ewR_27_clr = np.nan*np.ones((2,4))\n",
"ewO_27 = np.nan*np.ones((2,4))\n",
"\n",
"for period, tidx in zip(['PI','MC','PD','EOC'],tindex):\n",
" idx = ['PI','MC','PD','EOC'].index(period)\n",
" w = xM['Mwts'].isel(time=tidx)\n",
" Rs = R.isel(time=tidx).weighted(w).mean(dim='time').values\n",
" R_clds = R_cld.isel(time=tidx).weighted(w).mean(dim='time').values\n",
" R_clrs = R_clr.isel(time=tidx).weighted(w).mean(dim='time').values\n",
" oce_fracs = oce_frac.isel(time=tidx).weighted(w).mean(dim='time').values\n",
" for dvd in range(1, 181, 1):\n",
" print(f'Processing period {period}, division {dvd}...')\n",
" dR[dvd-1, idx] = geoavg_flx(Rs,hemi='EH',div=dvd) - geoavg_flx(Rs,hemi='WH',div=dvd)\n",
" dR_cld[dvd-1, idx] = geoavg_flx(R_clds,hemi='EH',div=dvd) - geoavg_flx(R_clds,hemi='WH',div=dvd)\n",
" dR_clr[dvd-1, idx] = geoavg_flx(R_clrs,hemi='EH',div=dvd) - geoavg_flx(R_clrs,hemi='WH',div=dvd)\n",
" dO[dvd-1, idx] = geoavg_sic(oce_fracs,hemi='EH',div=dvd) - geoavg_sic(oce_fracs,hemi='WH',div=dvd)\n",
" symmetry[idx] = np.argmin(np.abs(dR[:,idx])) + 1\n",
" ewR_sym[0, idx] = geoavg_flx(Rs,hemi='EH',div=symmetry[idx])\n",
" ewR_sym[1, idx] = geoavg_flx(Rs,hemi='WH',div=symmetry[idx])\n",
" ewR_sym_cld[0, idx] = geoavg_flx(R_clds,hemi='EH',div=symmetry[idx])\n",
" ewR_sym_cld[1, idx] = geoavg_flx(R_clds,hemi='WH',div=symmetry[idx])\n",
" ewR_sym_clr[0, idx] = geoavg_flx(R_clrs,hemi='EH',div=symmetry[idx])\n",
" ewR_sym_clr[1, idx] = geoavg_flx(R_clrs,hemi='WH',div=symmetry[idx])\n",
" ewO_sym[0, idx] = geoavg_sic(oce_fracs,hemi='EH',div=symmetry[idx])\n",
" ewO_sym[1, idx] = geoavg_sic(oce_fracs,hemi='WH',div=symmetry[idx])\n",
" ewR_27[0, idx] = geoavg_flx(Rs,hemi='EH',div=27)\n",
" ewR_27[1, idx] = geoavg_flx(Rs,hemi='WH',div=27)\n",
" ewR_27_cld[0, idx] = geoavg_flx(R_clds,hemi='EH',div=27)\n",
" ewR_27_cld[1, idx] = geoavg_flx(R_clds,hemi='WH',div=27)\n",
" ewR_27_clr[0, idx] = geoavg_flx(R_clrs,hemi='EH',div=27)\n",
" ewR_27_clr[1, idx] = geoavg_flx(R_clrs,hemi='WH',div=27)\n",
" ewO_27[0, idx] = geoavg_sic(oce_fracs,hemi='EH',div=27)\n",
" ewO_27[1, idx] = geoavg_sic(oce_fracs,hemi='WH',div=27)\n",
" for yr in range(20):\n",
" wy = xM['Mwts'].isel(time=tidx)[yr*12:(yr+1)*12]\n",
" Rsy = R.isel(time=tidx)[yr*12:(yr+1)*12].weighted(wy).mean(dim='time').values\n",
" dR_intann_sym[yr, idx] = geoavg_flx(Rsy,hemi='EH',div=symmetry[idx]) - geoavg_flx(Rsy,hemi='WH',div=symmetry[idx])\n",
" dR_intann_27[yr, idx] = geoavg_flx(Rsy,hemi='EH',div=27) - geoavg_flx(Rsy,hemi='WH',div=27)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "dc83d8d9",
"metadata": {},
"outputs": [],
"source": [
"# save results\n",
"np.savez(dir_data+'CESM2-WACCM/CESM2_Symmetry_LON_PI_MC_PD_EOC_20yrs.npz', dR=dR, dR_cld=dR_cld, dR_clr=dR_clr, dO=dO, symmetry=symmetry, dR_intann_sym=dR_intann_sym, dR_intann_27=dR_intann_27, ewR_sym=ewR_sym, ewR_sym_cld=ewR_sym_cld, ewR_sym_clr=ewR_sym_clr, ewO_sym=ewO_sym, ewR_27=ewR_27, ewR_27_cld=ewR_27_cld, ewR_27_clr=ewR_27_clr, ewO_27=ewO_27)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "e59835fe",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/anaconda3/envs/tf215env/lib/python3.11/site-packages/xarray/conventions.py:204: SerializationWarning: variable 'rsut' has multiple fill values {np.float32(1e+20), np.float64(1e+20)} defined, decoding all values to NaN.\n",
" var = coder.decode(var, name=name)\n",
"/opt/anaconda3/envs/tf215env/lib/python3.11/site-packages/xarray/conventions.py:204: SerializationWarning: variable 'rsut' has multiple fill values {np.float32(1e+20), np.float64(1e+20)} defined, decoding all values to NaN.\n",
" var = coder.decode(var, name=name)\n",
"/opt/anaconda3/envs/tf215env/lib/python3.11/site-packages/xarray/conventions.py:204: SerializationWarning: variable 'rsutcs' has multiple fill values {np.float32(1e+20), np.float64(1e+20)} defined, decoding all values to NaN.\n",
" var = coder.decode(var, name=name)\n",
"/opt/anaconda3/envs/tf215env/lib/python3.11/site-packages/xarray/conventions.py:204: SerializationWarning: variable 'rsutcs' has multiple fill values {np.float32(1e+20), np.float64(1e+20)} defined, decoding all values to NaN.\n",
" var = coder.decode(var, name=name)\n",
"/opt/anaconda3/envs/tf215env/lib/python3.11/site-packages/xarray/conventions.py:204: SerializationWarning: variable 'siconc' has multiple fill values {np.float32(1e+20), np.float64(1e+20)} defined, decoding all values to NaN.\n",
" var = coder.decode(var, name=name)\n",
"/opt/anaconda3/envs/tf215env/lib/python3.11/site-packages/xarray/conventions.py:204: SerializationWarning: variable 'siconc' has multiple fill values {np.float32(1e+20), np.float64(1e+20)} defined, decoding all values to NaN.\n",
" var = coder.decode(var, name=name)\n",
"/opt/anaconda3/envs/tf215env/lib/python3.11/site-packages/xarray/conventions.py:204: SerializationWarning: variable 'areacello' has multiple fill values {np.float32(1e+20), np.float64(1e+20)} defined, decoding all values to NaN.\n",
" var = coder.decode(var, name=name)\n",
"/opt/anaconda3/envs/tf215env/lib/python3.11/site-packages/xarray/conventions.py:204: SerializationWarning: variable 'areacella' has multiple fill values {np.float32(1e+20), np.float64(1e+20)} defined, decoding all values to NaN.\n",
" var = coder.decode(var, name=name)\n"
]
}
],
"source": [
"#\n",
"# CESM2-WACCM G6sulfur\n",
"#\n",
"flx = xr.open_mfdataset(sorted(glob(dir_data+'CESM2-WACCM/G6sulfur/*_Amon_*.nc')))\n",
"sic = xr.open_mfdataset(sorted(glob(dir_data+'CESM2-WACCM/G6sulfur/*_SImon_*.nc')))\n",
"siconc = sic['siconc']/100.\n",
"ofx = xr.open_mfdataset(sorted(glob(dir_data+'CESM2-WACCM/areacello_Ofx_*.nc')))\n",
"fx = xr.open_mfdataset(sorted(glob(dir_data+'CESM2-WACCM/areacella_fx_*.nc')))\n",
"\n",
"time_bounds = flx['time_bnds'].values\n",
"Mwts = np.array([(tb[1] - tb[0]).days for tb in time_bounds], dtype=float)\n",
"# calculate ocean fraction\n",
"oce_frac = 1. - siconc\n",
"oce_frac = oce_frac.fillna(0.)\n",
"# get fluxes\n",
"R = flx['rsut']\n",
"R = R.where(R>0,0)\n",
"R_clr = flx['rsutcs']\n",
"R_clr = R_clr.where(R_clr>0,0)\n",
"R_cld = R - R_clr\n",
"\n",
"lon2 = sic.lon.values\n",
"lon = flx.lon.values\n",
"area = fx['areacella'].values\n",
"oarea = ofx['areacello'].fillna(0.)\n",
"\n",
"xM = xr.Dataset()\n",
"xM['Mwts'] = (('time',), Mwts)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "a27f4c0f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Processing period MC-SAI, division 1...\n",
"Processing period MC-SAI, division 2...\n",
"Processing period MC-SAI, division 3...\n",
"Processing period MC-SAI, division 4...\n",
"Processing period MC-SAI, division 5...\n",
"Processing period MC-SAI, division 6...\n",
"Processing period MC-SAI, division 7...\n",
"Processing period MC-SAI, division 8...\n",
"Processing period MC-SAI, division 9...\n",
"Processing period MC-SAI, division 10...\n",
"Processing period MC-SAI, division 11...\n",
"Processing period MC-SAI, division 12...\n",
"Processing period MC-SAI, division 13...\n",
"Processing period MC-SAI, division 14...\n",
"Processing period MC-SAI, division 15...\n",
"Processing period MC-SAI, division 16...\n",
"Processing period MC-SAI, division 17...\n",
"Processing period MC-SAI, division 18...\n",
"Processing period MC-SAI, division 19...\n",
"Processing period MC-SAI, division 20...\n",
"Processing period MC-SAI, division 21...\n",
"Processing period MC-SAI, division 22...\n",
"Processing period MC-SAI, division 23...\n",
"Processing period MC-SAI, division 24...\n",
"Processing period MC-SAI, division 25...\n",
"Processing period MC-SAI, division 26...\n",
"Processing period MC-SAI, division 27...\n",
"Processing period MC-SAI, division 28...\n",
"Processing period MC-SAI, division 29...\n",
"Processing period MC-SAI, division 30...\n",
"Processing period MC-SAI, division 31...\n",
"Processing period MC-SAI, division 32...\n",
"Processing period MC-SAI, division 33...\n",
"Processing period MC-SAI, division 34...\n",
"Processing period MC-SAI, division 35...\n",
"Processing period MC-SAI, division 36...\n",
"Processing period MC-SAI, division 37...\n",
"Processing period MC-SAI, division 38...\n",
"Processing period MC-SAI, division 39...\n",
"Processing period MC-SAI, division 40...\n",
"Processing period MC-SAI, division 41...\n",
"Processing period MC-SAI, division 42...\n",
"Processing period MC-SAI, division 43...\n",
"Processing period MC-SAI, division 44...\n",
"Processing period MC-SAI, division 45...\n",
"Processing period MC-SAI, division 46...\n",
"Processing period MC-SAI, division 47...\n",
"Processing period MC-SAI, division 48...\n",
"Processing period MC-SAI, division 49...\n",
"Processing period MC-SAI, division 50...\n",
"Processing period MC-SAI, division 51...\n",
"Processing period MC-SAI, division 52...\n",
"Processing period MC-SAI, division 53...\n",
"Processing period MC-SAI, division 54...\n",
"Processing period MC-SAI, division 55...\n",
"Processing period MC-SAI, division 56...\n",
"Processing period MC-SAI, division 57...\n",
"Processing period MC-SAI, division 58...\n",
"Processing period MC-SAI, division 59...\n",
"Processing period MC-SAI, division 60...\n",
"Processing period MC-SAI, division 61...\n",
"Processing period MC-SAI, division 62...\n",
"Processing period MC-SAI, division 63...\n",
"Processing period MC-SAI, division 64...\n",
"Processing period MC-SAI, division 65...\n",
"Processing period MC-SAI, division 66...\n",
"Processing period MC-SAI, division 67...\n",
"Processing period MC-SAI, division 68...\n",
"Processing period MC-SAI, division 69...\n",
"Processing period MC-SAI, division 70...\n",
"Processing period MC-SAI, division 71...\n",
"Processing period MC-SAI, division 72...\n",
"Processing period MC-SAI, division 73...\n",
"Processing period MC-SAI, division 74...\n",
"Processing period MC-SAI, division 75...\n",
"Processing period MC-SAI, division 76...\n",
"Processing period MC-SAI, division 77...\n",
"Processing period MC-SAI, division 78...\n",
"Processing period MC-SAI, division 79...\n",
"Processing period MC-SAI, division 80...\n",
"Processing period MC-SAI, division 81...\n",
"Processing period MC-SAI, division 82...\n",
"Processing period MC-SAI, division 83...\n",
"Processing period MC-SAI, division 84...\n",
"Processing period MC-SAI, division 85...\n",
"Processing period MC-SAI, division 86...\n",
"Processing period MC-SAI, division 87...\n",
"Processing period MC-SAI, division 88...\n",
"Processing period MC-SAI, division 89...\n",
"Processing period MC-SAI, division 90...\n",
"Processing period MC-SAI, division 91...\n",
"Processing period MC-SAI, division 92...\n",
"Processing period MC-SAI, division 93...\n",
"Processing period MC-SAI, division 94...\n",
"Processing period MC-SAI, division 95...\n",
"Processing period MC-SAI, division 96...\n",
"Processing period MC-SAI, division 97...\n",
"Processing period MC-SAI, division 98...\n",
"Processing period MC-SAI, division 99...\n",
"Processing period MC-SAI, division 100...\n",
"Processing period MC-SAI, division 101...\n",
"Processing period MC-SAI, division 102...\n",
"Processing period MC-SAI, division 103...\n",
"Processing period MC-SAI, division 104...\n",
"Processing period MC-SAI, division 105...\n",
"Processing period MC-SAI, division 106...\n",
"Processing period MC-SAI, division 107...\n",
"Processing period MC-SAI, division 108...\n",
"Processing period MC-SAI, division 109...\n",
"Processing period MC-SAI, division 110...\n",
"Processing period MC-SAI, division 111...\n",
"Processing period MC-SAI, division 112...\n",
"Processing period MC-SAI, division 113...\n",
"Processing period MC-SAI, division 114...\n",
"Processing period MC-SAI, division 115...\n",
"Processing period MC-SAI, division 116...\n",
"Processing period MC-SAI, division 117...\n",
"Processing period MC-SAI, division 118...\n",
"Processing period MC-SAI, division 119...\n",
"Processing period MC-SAI, division 120...\n",
"Processing period MC-SAI, division 121...\n",
"Processing period MC-SAI, division 122...\n",
"Processing period MC-SAI, division 123...\n",
"Processing period MC-SAI, division 124...\n",
"Processing period MC-SAI, division 125...\n",
"Processing period MC-SAI, division 126...\n",
"Processing period MC-SAI, division 127...\n",
"Processing period MC-SAI, division 128...\n",
"Processing period MC-SAI, division 129...\n",
"Processing period MC-SAI, division 130...\n",
"Processing period MC-SAI, division 131...\n",
"Processing period MC-SAI, division 132...\n",
"Processing period MC-SAI, division 133...\n",
"Processing period MC-SAI, division 134...\n",
"Processing period MC-SAI, division 135...\n",
"Processing period MC-SAI, division 136...\n",
"Processing period MC-SAI, division 137...\n",
"Processing period MC-SAI, division 138...\n",
"Processing period MC-SAI, division 139...\n",
"Processing period MC-SAI, division 140...\n",
"Processing period MC-SAI, division 141...\n",
"Processing period MC-SAI, division 142...\n",
"Processing period MC-SAI, division 143...\n",
"Processing period MC-SAI, division 144...\n",
"Processing period MC-SAI, division 145...\n",
"Processing period MC-SAI, division 146...\n",
"Processing period MC-SAI, division 147...\n",
"Processing period MC-SAI, division 148...\n",
"Processing period MC-SAI, division 149...\n",
"Processing period MC-SAI, division 150...\n",
"Processing period MC-SAI, division 151...\n",
"Processing period MC-SAI, division 152...\n",
"Processing period MC-SAI, division 153...\n",
"Processing period MC-SAI, division 154...\n",
"Processing period MC-SAI, division 155...\n",
"Processing period MC-SAI, division 156...\n",
"Processing period MC-SAI, division 157...\n",
"Processing period MC-SAI, division 158...\n",
"Processing period MC-SAI, division 159...\n",
"Processing period MC-SAI, division 160...\n",
"Processing period MC-SAI, division 161...\n",
"Processing period MC-SAI, division 162...\n",
"Processing period MC-SAI, division 163...\n",
"Processing period MC-SAI, division 164...\n",
"Processing period MC-SAI, division 165...\n",
"Processing period MC-SAI, division 166...\n",
"Processing period MC-SAI, division 167...\n",
"Processing period MC-SAI, division 168...\n",
"Processing period MC-SAI, division 169...\n",
"Processing period MC-SAI, division 170...\n",
"Processing period MC-SAI, division 171...\n",
"Processing period MC-SAI, division 172...\n",
"Processing period MC-SAI, division 173...\n",
"Processing period MC-SAI, division 174...\n",
"Processing period MC-SAI, division 175...\n",
"Processing period MC-SAI, division 176...\n",
"Processing period MC-SAI, division 177...\n",
"Processing period MC-SAI, division 178...\n",
"Processing period MC-SAI, division 179...\n",
"Processing period MC-SAI, division 180...\n",
"Processing period EOC-SAI, division 1...\n",
"Processing period EOC-SAI, division 2...\n",
"Processing period EOC-SAI, division 3...\n",
"Processing period EOC-SAI, division 4...\n",
"Processing period EOC-SAI, division 5...\n",
"Processing period EOC-SAI, division 6...\n",
"Processing period EOC-SAI, division 7...\n",
"Processing period EOC-SAI, division 8...\n",
"Processing period EOC-SAI, division 9...\n",
"Processing period EOC-SAI, division 10...\n",
"Processing period EOC-SAI, division 11...\n",
"Processing period EOC-SAI, division 12...\n",
"Processing period EOC-SAI, division 13...\n",
"Processing period EOC-SAI, division 14...\n",
"Processing period EOC-SAI, division 15...\n",
"Processing period EOC-SAI, division 16...\n",
"Processing period EOC-SAI, division 17...\n",
"Processing period EOC-SAI, division 18...\n",
"Processing period EOC-SAI, division 19...\n",
"Processing period EOC-SAI, division 20...\n",
"Processing period EOC-SAI, division 21...\n",
"Processing period EOC-SAI, division 22...\n",
"Processing period EOC-SAI, division 23...\n",
"Processing period EOC-SAI, division 24...\n",
"Processing period EOC-SAI, division 25...\n",
"Processing period EOC-SAI, division 26...\n",
"Processing period EOC-SAI, division 27...\n",
"Processing period EOC-SAI, division 28...\n",
"Processing period EOC-SAI, division 29...\n",
"Processing period EOC-SAI, division 30...\n",
"Processing period EOC-SAI, division 31...\n",
"Processing period EOC-SAI, division 32...\n",
"Processing period EOC-SAI, division 33...\n",
"Processing period EOC-SAI, division 34...\n",
"Processing period EOC-SAI, division 35...\n",
"Processing period EOC-SAI, division 36...\n",
"Processing period EOC-SAI, division 37...\n",
"Processing period EOC-SAI, division 38...\n",
"Processing period EOC-SAI, division 39...\n",
"Processing period EOC-SAI, division 40...\n",
"Processing period EOC-SAI, division 41...\n",
"Processing period EOC-SAI, division 42...\n",
"Processing period EOC-SAI, division 43...\n",
"Processing period EOC-SAI, division 44...\n",
"Processing period EOC-SAI, division 45...\n",
"Processing period EOC-SAI, division 46...\n",
"Processing period EOC-SAI, division 47...\n",
"Processing period EOC-SAI, division 48...\n",
"Processing period EOC-SAI, division 49...\n",
"Processing period EOC-SAI, division 50...\n",
"Processing period EOC-SAI, division 51...\n",
"Processing period EOC-SAI, division 52...\n",
"Processing period EOC-SAI, division 53...\n",
"Processing period EOC-SAI, division 54...\n",
"Processing period EOC-SAI, division 55...\n",
"Processing period EOC-SAI, division 56...\n",
"Processing period EOC-SAI, division 57...\n",
"Processing period EOC-SAI, division 58...\n",
"Processing period EOC-SAI, division 59...\n",
"Processing period EOC-SAI, division 60...\n",
"Processing period EOC-SAI, division 61...\n",
"Processing period EOC-SAI, division 62...\n",
"Processing period EOC-SAI, division 63...\n",
"Processing period EOC-SAI, division 64...\n",
"Processing period EOC-SAI, division 65...\n",
"Processing period EOC-SAI, division 66...\n",
"Processing period EOC-SAI, division 67...\n",
"Processing period EOC-SAI, division 68...\n",
"Processing period EOC-SAI, division 69...\n",
"Processing period EOC-SAI, division 70...\n",
"Processing period EOC-SAI, division 71...\n",
"Processing period EOC-SAI, division 72...\n",
"Processing period EOC-SAI, division 73...\n",
"Processing period EOC-SAI, division 74...\n",
"Processing period EOC-SAI, division 75...\n",
"Processing period EOC-SAI, division 76...\n",
"Processing period EOC-SAI, division 77...\n",
"Processing period EOC-SAI, division 78...\n",
"Processing period EOC-SAI, division 79...\n",
"Processing period EOC-SAI, division 80...\n",
"Processing period EOC-SAI, division 81...\n",
"Processing period EOC-SAI, division 82...\n",
"Processing period EOC-SAI, division 83...\n",
"Processing period EOC-SAI, division 84...\n",
"Processing period EOC-SAI, division 85...\n",
"Processing period EOC-SAI, division 86...\n",
"Processing period EOC-SAI, division 87...\n",
"Processing period EOC-SAI, division 88...\n",
"Processing period EOC-SAI, division 89...\n",
"Processing period EOC-SAI, division 90...\n",
"Processing period EOC-SAI, division 91...\n",
"Processing period EOC-SAI, division 92...\n",
"Processing period EOC-SAI, division 93...\n",
"Processing period EOC-SAI, division 94...\n",
"Processing period EOC-SAI, division 95...\n",
"Processing period EOC-SAI, division 96...\n",
"Processing period EOC-SAI, division 97...\n",
"Processing period EOC-SAI, division 98...\n",
"Processing period EOC-SAI, division 99...\n",
"Processing period EOC-SAI, division 100...\n",
"Processing period EOC-SAI, division 101...\n",
"Processing period EOC-SAI, division 102...\n",
"Processing period EOC-SAI, division 103...\n",
"Processing period EOC-SAI, division 104...\n",
"Processing period EOC-SAI, division 105...\n",
"Processing period EOC-SAI, division 106...\n",
"Processing period EOC-SAI, division 107...\n",
"Processing period EOC-SAI, division 108...\n",
"Processing period EOC-SAI, division 109...\n",
"Processing period EOC-SAI, division 110...\n",
"Processing period EOC-SAI, division 111...\n",
"Processing period EOC-SAI, division 112...\n",
"Processing period EOC-SAI, division 113...\n",
"Processing period EOC-SAI, division 114...\n",
"Processing period EOC-SAI, division 115...\n",
"Processing period EOC-SAI, division 116...\n",
"Processing period EOC-SAI, division 117...\n",
"Processing period EOC-SAI, division 118...\n",
"Processing period EOC-SAI, division 119...\n",
"Processing period EOC-SAI, division 120...\n",
"Processing period EOC-SAI, division 121...\n",
"Processing period EOC-SAI, division 122...\n",
"Processing period EOC-SAI, division 123...\n",
"Processing period EOC-SAI, division 124...\n",
"Processing period EOC-SAI, division 125...\n",
"Processing period EOC-SAI, division 126...\n",
"Processing period EOC-SAI, division 127...\n",
"Processing period EOC-SAI, division 128...\n",
"Processing period EOC-SAI, division 129...\n",
"Processing period EOC-SAI, division 130...\n",
"Processing period EOC-SAI, division 131...\n",
"Processing period EOC-SAI, division 132...\n",
"Processing period EOC-SAI, division 133...\n",
"Processing period EOC-SAI, division 134...\n",
"Processing period EOC-SAI, division 135...\n",
"Processing period EOC-SAI, division 136...\n",
"Processing period EOC-SAI, division 137...\n",
"Processing period EOC-SAI, division 138...\n",
"Processing period EOC-SAI, division 139...\n",
"Processing period EOC-SAI, division 140...\n",
"Processing period EOC-SAI, division 141...\n",
"Processing period EOC-SAI, division 142...\n",
"Processing period EOC-SAI, division 143...\n",
"Processing period EOC-SAI, division 144...\n",
"Processing period EOC-SAI, division 145...\n",
"Processing period EOC-SAI, division 146...\n",
"Processing period EOC-SAI, division 147...\n",
"Processing period EOC-SAI, division 148...\n",
"Processing period EOC-SAI, division 149...\n",
"Processing period EOC-SAI, division 150...\n",
"Processing period EOC-SAI, division 151...\n",
"Processing period EOC-SAI, division 152...\n",
"Processing period EOC-SAI, division 153...\n",
"Processing period EOC-SAI, division 154...\n",
"Processing period EOC-SAI, division 155...\n",
"Processing period EOC-SAI, division 156...\n",
"Processing period EOC-SAI, division 157...\n",
"Processing period EOC-SAI, division 158...\n",
"Processing period EOC-SAI, division 159...\n",
"Processing period EOC-SAI, division 160...\n",
"Processing period EOC-SAI, division 161...\n",
"Processing period EOC-SAI, division 162...\n",
"Processing period EOC-SAI, division 163...\n",
"Processing period EOC-SAI, division 164...\n",
"Processing period EOC-SAI, division 165...\n",
"Processing period EOC-SAI, division 166...\n",
"Processing period EOC-SAI, division 167...\n",
"Processing period EOC-SAI, division 168...\n",
"Processing period EOC-SAI, division 169...\n",
"Processing period EOC-SAI, division 170...\n",
"Processing period EOC-SAI, division 171...\n",
"Processing period EOC-SAI, division 172...\n",
"Processing period EOC-SAI, division 173...\n",
"Processing period EOC-SAI, division 174...\n",
"Processing period EOC-SAI, division 175...\n",
"Processing period EOC-SAI, division 176...\n",
"Processing period EOC-SAI, division 177...\n",
"Processing period EOC-SAI, division 178...\n",
"Processing period EOC-SAI, division 179...\n",
"Processing period EOC-SAI, division 180...\n"
]
}
],
"source": [
"tindex = [np.arange(240)+240, np.arange(240)+720]\n",
"dR = np.nan*np.ones((180,2))\n",
"dR_cld = np.nan*np.ones((180,2))\n",
"dR_clr = np.nan*np.ones((180,2))\n",
"dO = np.nan*np.ones((180,2))\n",
"symmetry = np.nan*np.ones(2)\n",
"dR_intann_sym = np.nan*np.ones((20,2))\n",
"dR_intann_27 = np.nan*np.ones((20,2))\n",
"ewR_sym = np.nan*np.ones((2,2))\n",
"ewR_sym_cld = np.nan*np.ones((2,2))\n",
"ewR_sym_clr = np.nan*np.ones((2,2))\n",
"ewO_sym = np.nan*np.ones((2,2))\n",
"ewR_27 = np.nan*np.ones((2,2))\n",
"ewR_27_cld = np.nan*np.ones((2,2))\n",
"ewR_27_clr = np.nan*np.ones((2,2))\n",
"ewO_27 = np.nan*np.ones((2,2))\n",
"for period, tidx in zip(['MC-SAI','EOC-SAI'],tindex):\n",
" idx = ['MC-SAI','EOC-SAI'].index(period)\n",
" w = xM['Mwts'].isel(time=tidx)\n",
" Rs = R.isel(time=tidx).weighted(w).mean(dim='time').values\n",
" R_clds = R_cld.isel(time=tidx).weighted(w).mean(dim='time').values\n",
" R_clrs = R_clr.isel(time=tidx).weighted(w).mean(dim='time').values\n",
" oce_fracs = oce_frac.isel(time=tidx).weighted(w).mean(dim='time').values\n",
" for dvd in range(1, 181, 1):\n",
" print(f'Processing period {period}, division {dvd}...')\n",
" dR[dvd-1, idx] = geoavg_flx(Rs,hemi='EH',div=dvd) - geoavg_flx(Rs,hemi='WH',div=dvd)\n",
" dR_cld[dvd-1, idx] = geoavg_flx(R_clds,hemi='EH',div=dvd) - geoavg_flx(R_clds,hemi='WH',div=dvd)\n",
" dR_clr[dvd-1, idx] = geoavg_flx(R_clrs,hemi='EH',div=dvd) - geoavg_flx(R_clrs,hemi='WH',div=dvd)\n",
" dO[dvd-1, idx] = geoavg_sic(oce_fracs,hemi='EH',div=dvd) - geoavg_sic(oce_fracs,hemi='WH',div=dvd)\n",
" symmetry[idx] = np.argmin(np.abs(dR[:,idx])) + 1\n",
" ewR_sym[0, idx] = geoavg_flx(Rs,hemi='EH',div=symmetry[idx])\n",
" ewR_sym[1, idx] = geoavg_flx(Rs,hemi='WH',div=symmetry[idx])\n",
" ewR_sym_cld[0, idx] = geoavg_flx(R_clds,hemi='EH',div=symmetry[idx])\n",
" ewR_sym_cld[1, idx] = geoavg_flx(R_clds,hemi='WH',div=symmetry[idx])\n",
" ewR_sym_clr[0, idx] = geoavg_flx(R_clrs,hemi='EH',div=symmetry[idx])\n",
" ewR_sym_clr[1, idx] = geoavg_flx(R_clrs,hemi='WH',div=symmetry[idx])\n",
" ewO_sym[0, idx] = geoavg_sic(oce_fracs,hemi='EH',div=symmetry[idx])\n",
" ewO_sym[1, idx] = geoavg_sic(oce_fracs,hemi='WH',div=symmetry[idx])\n",
" ewR_27[0, idx] = geoavg_flx(Rs,hemi='EH',div=27)\n",
" ewR_27[1, idx] = geoavg_flx(Rs,hemi='WH',div=27)\n",
" ewR_27_cld[0, idx] = geoavg_flx(R_clds,hemi='EH',div=27)\n",
" ewR_27_cld[1, idx] = geoavg_flx(R_clds,hemi='WH',div=27)\n",
" ewR_27_clr[0, idx] = geoavg_flx(R_clrs,hemi='EH',div=27)\n",
" ewR_27_clr[1, idx] = geoavg_flx(R_clrs,hemi='WH',div=27)\n",
" ewO_27[0, idx] = geoavg_sic(oce_fracs,hemi='EH',div=27)\n",
" ewO_27[1, idx] = geoavg_sic(oce_fracs,hemi='WH',div=27)\n",
" for yr in range(20):\n",
" wy = xM['Mwts'].isel(time=tidx)[yr*12:(yr+1)*12]\n",
" Rsy = R.isel(time=tidx)[yr*12:(yr+1)*12].weighted(wy).mean(dim='time').values\n",
" dR_intann_sym[yr, idx] = geoavg_flx(Rsy,hemi='EH',div=symmetry[idx]) - geoavg_flx(Rsy,hemi='WH',div=symmetry[idx])\n",
" dR_intann_27[yr, idx] = geoavg_flx(Rsy,hemi='EH',div=27) - geoavg_flx(Rsy,hemi='WH',div=27)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "afdae3bf",
"metadata": {},
"outputs": [],
"source": [
"# save results\n",
"np.savez(dir_data+'CESM2-WACCM/CESM2_Symmetry_LON_MC-SAI_EOC-SAI_20yrs.npz', dR=dR, dR_cld=dR_cld, dR_clr=dR_clr, dO=dO, symmetry=symmetry, dR_intann_sym=dR_intann_sym, dR_intann_27=dR_intann_27, ewR_sym=ewR_sym, ewR_sym_cld=ewR_sym_cld, ewR_sym_clr=ewR_sym_clr, ewO_sym=ewO_sym, ewR_27=ewR_27, ewR_27_cld=ewR_27_cld, ewR_27_clr=ewR_27_clr, ewO_27=ewO_27)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7af84b26",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Finished processing period PI.\n",
"Finished processing period MC.\n",
"Finished processing period PD.\n",
"Finished processing period EOC.\n"
]
}
],
"source": [
"lat = flx.lat.values\n",
"def geoavg_ns(data,hemi='both'):\n",
"\n",
" mask = lat<1e10\n",
"\n",
" #Hemisphere mask\n",
" if hemi == 'NH':\n",
" mask = lat>0\n",
" elif hemi == 'SH':\n",
" mask = lat<0\n",
"\n",
" return np.sum(data[mask,:]*area[mask,:]/np.sum(area[mask,:],axis=(0,1)),axis=(0,1))\n",
"\n",
"tindex = [np.arange(240), np.arange(240)+1080, np.arange(240)+1740, np.arange(240)+2760]\n",
"#tindex = [np.arange(240), np.arange(240)+1080, np.arange(168)+1812, np.arange(240)+2760]\n",
"dR = np.nan*np.ones(4)\n",
"dR_cld = np.nan*np.ones(4)\n",
"dR_clr = np.nan*np.ones(4)\n",
"dR_intann_sym = np.nan*np.ones((20,4))\n",
"nsR_sym = np.nan*np.ones((2,4))\n",
"nsR_sym_cld = np.nan*np.ones((2,4))\n",
"nsR_sym_clr = np.nan*np.ones((2,4))\n",
"\n",
"for period, tidx in zip(['PI','MC','PD','EOC'],tindex):\n",
" idx = ['PI','MC','PD','EOC'].index(period)\n",
" w = xM['Mwts'].isel(time=tidx)\n",
" Rs = R.isel(time=tidx).weighted(w).mean(dim='time').values\n",
" R_clds = R_cld.isel(time=tidx).weighted(w).mean(dim='time').values\n",
" R_clrs = R_clr.isel(time=tidx).weighted(w).mean(dim='time').values\n",
"\n",
" dR[idx] = geoavg_ns(Rs,hemi='NH') - geoavg_ns(Rs,hemi='SH')\n",
" dR_cld[idx] = geoavg_ns(R_clds,hemi='NH') - geoavg_ns(R_clds,hemi='SH')\n",
" dR_clr[idx] = geoavg_ns(R_clrs,hemi='NH') - geoavg_ns(R_clrs,hemi='SH')\n",
"\n",
" nsR_sym[0, idx] = geoavg_ns(Rs,hemi='NH')\n",
" nsR_sym[1, idx] = geoavg_ns(Rs,hemi='SH')\n",
" nsR_sym_cld[0, idx] = geoavg_ns(R_clds,hemi='NH')\n",
" nsR_sym_cld[1, idx] = geoavg_ns(R_clds,hemi='SH')\n",
" nsR_sym_clr[0, idx] = geoavg_ns(R_clrs,hemi='NH')\n",
" nsR_sym_clr[1, idx] = geoavg_ns(R_clrs,hemi='SH')\n",
" for yr in range(20):\n",
" wy = xM['Mwts'].isel(time=tidx)[yr*12:(yr+1)*12]\n",
" Rsy = R.isel(time=tidx)[yr*12:(yr+1)*12].weighted(wy).mean(dim='time').values\n",
" dR_intann_sym[yr, idx] = geoavg_ns(Rsy,hemi='NH') - geoavg_ns(Rsy,hemi='SH')\n",
" print(f'Finished processing period {period}.')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6628d025",
"metadata": {},
"outputs": [],
"source": [
"# save results\n",
"np.savez(dir_data+'CESM2-WACCM/CESM2_Symmetry_NS_PI_MC_PD_EOC_20yrs.npz', dR=dR, dR_cld=dR_cld, dR_clr=dR_clr, dR_intann_sym=dR_intann_sym, nsR_sym=nsR_sym, nsR_sym_cld=nsR_sym_cld, nsR_sym_clr=nsR_sym_clr)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "12afd5c0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Finished processing period MC-SAI.\n",
"Finished processing period EOC-SAI.\n"
]
}
],
"source": [
"lat = flx.lat.values\n",
"def geoavg_ns(data,hemi='both'):\n",
"\n",
" mask = lat<1e10\n",
"\n",
" #Hemisphere mask\n",
" if hemi == 'NH':\n",
" mask = lat>0\n",
" elif hemi == 'SH':\n",
" mask = lat<0\n",
"\n",
" return np.sum(data[mask,:]*area[mask,:]/np.sum(area[mask,:],axis=(0,1)),axis=(0,1))\n",
"\n",
"tindex = [np.arange(240)+240, np.arange(240)+720]\n",
"dR = np.nan*np.ones(2)\n",
"dR_cld = np.nan*np.ones(2)\n",
"dR_clr = np.nan*np.ones(2)\n",
"dR_intann_sym = np.nan*np.ones((20,2))\n",
"nsR_sym = np.nan*np.ones((2,2))\n",
"nsR_sym_cld = np.nan*np.ones((2,2))\n",
"nsR_sym_clr = np.nan*np.ones((2,2))\n",
"\n",
"for period, tidx in zip(['MC-SAI','EOC-SAI'],tindex):\n",
" idx = ['MC-SAI','EOC-SAI'].index(period)\n",
" w = xM['Mwts'].isel(time=tidx)\n",
" Rs = R.isel(time=tidx).weighted(w).mean(dim='time').values\n",
" R_clds = R_cld.isel(time=tidx).weighted(w).mean(dim='time').values\n",
" R_clrs = R_clr.isel(time=tidx).weighted(w).mean(dim='time').values\n",
"\n",
" dR[idx] = geoavg_ns(Rs,hemi='NH') - geoavg_ns(Rs,hemi='SH')\n",
" dR_cld[idx] = geoavg_ns(R_clds,hemi='NH') - geoavg_ns(R_clds,hemi='SH')\n",
" dR_clr[idx] = geoavg_ns(R_clrs,hemi='NH') - geoavg_ns(R_clrs,hemi='SH')\n",
"\n",
" nsR_sym[0, idx] = geoavg_ns(Rs,hemi='NH')\n",
" nsR_sym[1, idx] = geoavg_ns(Rs,hemi='SH')\n",
" nsR_sym_cld[0, idx] = geoavg_ns(R_clds,hemi='NH')\n",
" nsR_sym_cld[1, idx] = geoavg_ns(R_clds,hemi='SH')\n",
" nsR_sym_clr[0, idx] = geoavg_ns(R_clrs,hemi='NH')\n",
" nsR_sym_clr[1, idx] = geoavg_ns(R_clrs,hemi='SH')\n",
" for yr in range(20):\n",
" wy = xM['Mwts'].isel(time=tidx)[yr*12:(yr+1)*12]\n",
" Rsy = R.isel(time=tidx)[yr*12:(yr+1)*12].weighted(wy).mean(dim='time').values\n",
" dR_intann_sym[yr, idx] = geoavg_ns(Rsy,hemi='NH') - geoavg_ns(Rsy,hemi='SH')\n",
" print(f'Finished processing period {period}.')\n",
"\n",
"# save results\n",
"np.savez(dir_data+'CESM2-WACCM/CESM2_Symmetry_NS_MC-SAI_EOC-SAI_20yrs.npz', dR=dR, dR_cld=dR_cld, dR_clr=dR_clr, dR_intann_sym=dR_intann_sym, nsR_sym=nsR_sym, nsR_sym_cld=nsR_sym_cld, nsR_sym_clr=nsR_sym_clr)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "tf215env",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}