Skip to content

Instantly share code, notes, and snippets.

@ccarouge
Last active June 29, 2020 05:40
Show Gist options
  • Save ccarouge/69a13461e7abdb942f0d43bc94350639 to your computer and use it in GitHub Desktop.
Save ccarouge/69a13461e7abdb942f0d43bc94350639 to your computer and use it in GitHub Desktop.
Heatwave monte carlo
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import glob\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import xarray as xr"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# Read in the data\n",
"thw_da = xr.open_dataarray('/g/data/e14/cp3790/Charuni/thw_new.nc')\n",
"mhw_da = xr.open_dataarray('/g/data/e14/cp3790/Charuni/mhw_new.nc')\n",
"combined_da = xr.open_dataarray('/g/data/e14/cp3790/Charuni/combined.nc')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# If we want to really make sure the methods give the same result, we need to compute the series of random\n",
"# numbers first.\n",
"# Use Nrepeats =100 for testing instead of 10000. Change to 10000 to compute the correct results\n",
"Ntime = thw_da.sizes[\"time\"]\n",
"Nrepeats=100\n",
"r_arr = np.random.randint(Ntime-1,size=Nrepeats)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# New method:\n",
"Works straight for 1 point or all the points"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
"<defs>\n",
"<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
"<title>Show/Hide data repr</title>\n",
"<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
"<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"</symbol>\n",
"<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
"<title>Show/Hide attributes</title>\n",
"<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
"<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"</symbol>\n",
"</defs>\n",
"</svg>\n",
"<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
" *\n",
" */\n",
"\n",
":root {\n",
" --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
" --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
" --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
" --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
" --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
" --xr-background-color: var(--jp-layout-color0, white);\n",
" --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
" --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
"}\n",
"\n",
".xr-wrap {\n",
" min-width: 300px;\n",
" max-width: 700px;\n",
"}\n",
"\n",
".xr-header {\n",
" padding-top: 6px;\n",
" padding-bottom: 6px;\n",
" margin-bottom: 4px;\n",
" border-bottom: solid 1px var(--xr-border-color);\n",
"}\n",
"\n",
".xr-header > div,\n",
".xr-header > ul {\n",
" display: inline;\n",
" margin-top: 0;\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-obj-type,\n",
".xr-array-name {\n",
" margin-left: 2px;\n",
" margin-right: 10px;\n",
"}\n",
"\n",
".xr-obj-type {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-sections {\n",
" padding-left: 0 !important;\n",
" display: grid;\n",
" grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
"}\n",
"\n",
".xr-section-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-section-item input {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-item input + label {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label {\n",
" cursor: pointer;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label:hover {\n",
" color: var(--xr-font-color0);\n",
"}\n",
"\n",
".xr-section-summary {\n",
" grid-column: 1;\n",
" color: var(--xr-font-color2);\n",
" font-weight: 500;\n",
"}\n",
"\n",
".xr-section-summary > span {\n",
" display: inline-block;\n",
" padding-left: 0.5em;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-summary-in + label:before {\n",
" display: inline-block;\n",
" content: '►';\n",
" font-size: 11px;\n",
" width: 15px;\n",
" text-align: center;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label:before {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label:before {\n",
" content: '▼';\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label > span {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-summary,\n",
".xr-section-inline-details {\n",
" padding-top: 4px;\n",
" padding-bottom: 4px;\n",
"}\n",
"\n",
".xr-section-inline-details {\n",
" grid-column: 2 / -1;\n",
"}\n",
"\n",
".xr-section-details {\n",
" display: none;\n",
" grid-column: 1 / -1;\n",
" margin-bottom: 5px;\n",
"}\n",
"\n",
".xr-section-summary-in:checked ~ .xr-section-details {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-array-wrap {\n",
" grid-column: 1 / -1;\n",
" display: grid;\n",
" grid-template-columns: 20px auto;\n",
"}\n",
"\n",
".xr-array-wrap > label {\n",
" grid-column: 1;\n",
" vertical-align: top;\n",
"}\n",
"\n",
".xr-preview {\n",
" color: var(--xr-font-color3);\n",
"}\n",
"\n",
".xr-array-preview,\n",
".xr-array-data {\n",
" padding: 0 5px !important;\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-array-data,\n",
".xr-array-in:checked ~ .xr-array-preview {\n",
" display: none;\n",
"}\n",
"\n",
".xr-array-in:checked ~ .xr-array-data,\n",
".xr-array-preview {\n",
" display: inline-block;\n",
"}\n",
"\n",
".xr-dim-list {\n",
" display: inline-block !important;\n",
" list-style: none;\n",
" padding: 0 !important;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list li {\n",
" display: inline-block;\n",
" padding: 0;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list:before {\n",
" content: '(';\n",
"}\n",
"\n",
".xr-dim-list:after {\n",
" content: ')';\n",
"}\n",
"\n",
".xr-dim-list li:not(:last-child):after {\n",
" content: ',';\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-has-index {\n",
" font-weight: bold;\n",
"}\n",
"\n",
".xr-var-list,\n",
".xr-var-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-var-item > div,\n",
".xr-var-item label,\n",
".xr-var-item > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-even);\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-var-item > .xr-var-name:hover span {\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-var-list > li:nth-child(odd) > div,\n",
".xr-var-list > li:nth-child(odd) > label,\n",
".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-odd);\n",
"}\n",
"\n",
".xr-var-name {\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-var-dims {\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-var-dtype {\n",
" grid-column: 3;\n",
" text-align: right;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-preview {\n",
" grid-column: 4;\n",
"}\n",
"\n",
".xr-var-name,\n",
".xr-var-dims,\n",
".xr-var-dtype,\n",
".xr-preview,\n",
".xr-attrs dt {\n",
" white-space: nowrap;\n",
" overflow: hidden;\n",
" text-overflow: ellipsis;\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-var-name:hover,\n",
".xr-var-dims:hover,\n",
".xr-var-dtype:hover,\n",
".xr-attrs dt:hover {\n",
" overflow: visible;\n",
" width: auto;\n",
" z-index: 1;\n",
"}\n",
"\n",
".xr-var-attrs,\n",
".xr-var-data {\n",
" display: none;\n",
" background-color: var(--xr-background-color) !important;\n",
" padding-bottom: 5px !important;\n",
"}\n",
"\n",
".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
".xr-var-data-in:checked ~ .xr-var-data {\n",
" display: block;\n",
"}\n",
"\n",
".xr-var-data > table {\n",
" float: right;\n",
"}\n",
"\n",
".xr-var-name span,\n",
".xr-var-data,\n",
".xr-attrs {\n",
" padding-left: 25px !important;\n",
"}\n",
"\n",
".xr-attrs,\n",
".xr-var-attrs,\n",
".xr-var-data {\n",
" grid-column: 1 / -1;\n",
"}\n",
"\n",
"dl.xr-attrs {\n",
" padding: 0;\n",
" margin: 0;\n",
" display: grid;\n",
" grid-template-columns: 125px auto;\n",
"}\n",
"\n",
".xr-attrs dt, dd {\n",
" padding: 0;\n",
" margin: 0;\n",
" float: left;\n",
" padding-right: 10px;\n",
" width: auto;\n",
"}\n",
"\n",
".xr-attrs dt {\n",
" font-weight: normal;\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-attrs dt:hover span {\n",
" display: inline-block;\n",
" background: var(--xr-background-color);\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-attrs dd {\n",
" grid-column: 2;\n",
" white-space: pre-wrap;\n",
" word-break: break-all;\n",
"}\n",
"\n",
".xr-icon-database,\n",
".xr-icon-file-text2 {\n",
" display: inline-block;\n",
" vertical-align: middle;\n",
" width: 1em;\n",
" height: 1.5em !important;\n",
" stroke-width: 0;\n",
" stroke: currentColor;\n",
" fill: currentColor;\n",
"}\n",
"</style><div class='xr-wrap'><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'></div><ul class='xr-dim-list'><li><span class='xr-has-index'>Repeats</span>: 100</li><li><span class='xr-has-index'>ncell</span>: 102</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-9f40cba5-034a-4cbd-8cba-366fa447494d' class='xr-array-in' type='checkbox' ><label for='section-9f40cba5-034a-4cbd-8cba-366fa447494d' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>6.931e-310 6.931e-310 4.658e-310 ... 9.084e-250 9.191e-250 9.298e-250</span></div><pre class='xr-array-data'>array([[6.93101794e-310, 6.93101794e-310, 4.65833319e-310, ...,\n",
" 4.22603991e-308, 4.26872718e-308, 4.31141445e-308],\n",
" [4.35410172e-308, 4.39678900e-308, 4.43947627e-308, ...,\n",
" 1.65199757e-307, 1.66907247e-307, 1.68614738e-307],\n",
" [1.70322229e-307, 1.72029720e-307, 1.73737211e-307, ...,\n",
" 6.45431667e-307, 6.52261631e-307, 6.59091594e-307],\n",
" ...,\n",
" [1.58260713e-251, 1.59935416e-251, 1.61610118e-251, ...,\n",
" 5.97874166e-251, 6.04572974e-251, 6.11271783e-251],\n",
" [6.17970592e-251, 6.24669400e-251, 6.31368209e-251, ...,\n",
" 2.33120761e-250, 2.35800285e-250, 2.38479808e-250],\n",
" [2.41159332e-250, 2.43838855e-250, 2.46518379e-250, ...,\n",
" 9.08367427e-250, 9.19085521e-250, 9.29803615e-250]])</pre></div></li><li class='xr-section-item'><input id='section-99d5830d-696f-4d94-8b4b-ef387c82da8c' class='xr-section-summary-in' type='checkbox' checked><label for='section-99d5830d-696f-4d94-8b4b-ef387c82da8c' class='xr-section-summary' >Coordinates: <span>(2)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>ncell</span></div><div class='xr-var-dims'>(ncell)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 96 97 98 99 100 101</div><input id='attrs-e0690a62-4bed-4efb-9f14-434b7c468de9' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-e0690a62-4bed-4efb-9f14-434b7c468de9' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-205bea11-8d4c-4165-9453-6acdf01aa7c4' class='xr-var-data-in' type='checkbox'><label for='data-205bea11-8d4c-4165-9453-6acdf01aa7c4' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><pre class='xr-var-data'>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,\n",
" 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,\n",
" 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,\n",
" 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,\n",
" 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,\n",
" 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,\n",
" 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,\n",
" 98, 99, 100, 101])</pre></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>Repeats</span></div><div class='xr-var-dims'>(Repeats)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 6 ... 94 95 96 97 98 99</div><input id='attrs-c97df4ea-f824-440e-8f04-43ed447d65a3' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-c97df4ea-f824-440e-8f04-43ed447d65a3' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-b60016aa-aa4d-42a1-ab3d-05a020190a88' class='xr-var-data-in' type='checkbox'><label for='data-b60016aa-aa4d-42a1-ab3d-05a020190a88' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><pre class='xr-var-data'>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n",
" 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,\n",
" 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,\n",
" 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,\n",
" 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,\n",
" 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])</pre></li></ul></div></li><li class='xr-section-item'><input id='section-e240e67d-6553-4a9b-9d5f-f158528357bb' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-e240e67d-6553-4a9b-9d5f-f158528357bb' class='xr-section-summary' title='Expand/collapse section'>Attributes: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'></dl></div></li></ul></div></div>"
],
"text/plain": [
"<xarray.DataArray (Repeats: 100, ncell: 102)>\n",
"array([[6.93101794e-310, 6.93101794e-310, 4.65833319e-310, ...,\n",
" 4.22603991e-308, 4.26872718e-308, 4.31141445e-308],\n",
" [4.35410172e-308, 4.39678900e-308, 4.43947627e-308, ...,\n",
" 1.65199757e-307, 1.66907247e-307, 1.68614738e-307],\n",
" [1.70322229e-307, 1.72029720e-307, 1.73737211e-307, ...,\n",
" 6.45431667e-307, 6.52261631e-307, 6.59091594e-307],\n",
" ...,\n",
" [1.58260713e-251, 1.59935416e-251, 1.61610118e-251, ...,\n",
" 5.97874166e-251, 6.04572974e-251, 6.11271783e-251],\n",
" [6.17970592e-251, 6.24669400e-251, 6.31368209e-251, ...,\n",
" 2.33120761e-250, 2.35800285e-250, 2.38479808e-250],\n",
" [2.41159332e-250, 2.43838855e-250, 2.46518379e-250, ...,\n",
" 9.08367427e-250, 9.19085521e-250, 9.29803615e-250]])\n",
"Coordinates:\n",
" * ncell (ncell) int64 0 1 2 3 4 5 6 7 8 9 ... 93 94 95 96 97 98 99 100 101\n",
" * Repeats (Repeats) int64 0 1 2 3 4 5 6 7 8 9 ... 91 92 93 94 95 96 97 98 99"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Create an array to store the proportions\n",
"proportion_rand = xr.DataArray(np.ndarray([Nrepeats,thw_da.sizes['ncell']]),\n",
" dims=(\"Repeats\",\"ncell\"),\n",
" coords={\"ncell\":thw_da[\"ncell\"],\n",
" \"Repeats\":np.arange(Nrepeats)\n",
" }\n",
" )\n",
"proportion_rand"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4.12 s ± 165 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
]
}
],
"source": [
"%%timeit\n",
"# Using r_arr here to directly compare to the initial method, else use the part in comment on the for line.\n",
"for i,r in enumerate(r_arr): #enumerate(np.random.randint(Ntime-1,size=Nrepeats)):\n",
" thw_ = thw_da.roll(time=r,roll_coords=False)\n",
" co_occ = thw_.where(np.logical_and(thw_==1,mhw_da==1)).count(dim=\"time\")\n",
" non_co_occ = thw_.where(thw_==1).count(dim=\"time\") - co_occ\n",
" proportion_rand.loc[{\"Repeats\":i}] = co_occ/non_co_occ"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"# Using r_arr here to directly compare to the initial method, else use the part in comment on the for line.\n",
"for i,r in enumerate(r_arr): #enumerate(np.random.randint(Ntime-1,size=Nrepeats)):\n",
" thw_ = thw_da.roll(time=r,roll_coords=False)\n",
" co_occ = thw_.where(np.logical_and(thw_==1,mhw_da==1)).count(dim=\"time\")\n",
" non_co_occ = thw_.where(thw_==1).count(dim=\"time\") - co_occ\n",
" proportion_rand.loc[{\"Repeats\":i}] = co_occ/non_co_occ"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 0, 'Proportion of co-occurring over non co-occurring events')"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Plot for the 91st cell to compare to Charuni's method\n",
"import scipy.stats as st\n",
"fig, ax = plt.subplots(figsize=(10,6)) \n",
"plt.hist(proportion_rand[:,90], density=True, bins=40, label=\"Proportion of THWs with co-occurring MHWs\")\n",
"plt.xlim(xmin=0, xmax = 0.5)\n",
"plt.axvline(x=0.48, color='r', linewidth=4)\n",
"plt.ylabel('Count', fontsize=16)\n",
"plt.xlabel('Proportion of co-occurring over non co-occurring events', fontsize=16)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"MultiIndex([(-42, -150),\n",
" (-40, -140),\n",
" (-35, -140),\n",
" (-40, -145),\n",
" (-30, -130)],\n",
" names=['lat', 'lon'])"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"lat=[-42,-40,-35,-40,-30]\n",
"lon=[-150,-140,-140,-145,-130]\n",
"tuples = list(zip(lat, lon))\n",
"index = pd.MultiIndex.from_tuples(tuples, names=[\"lat\",\"lon\"])\n",
"index"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
"<defs>\n",
"<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
"<title>Show/Hide data repr</title>\n",
"<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
"<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"</symbol>\n",
"<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
"<title>Show/Hide attributes</title>\n",
"<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
"<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"</symbol>\n",
"</defs>\n",
"</svg>\n",
"<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
" *\n",
" */\n",
"\n",
":root {\n",
" --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
" --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
" --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
" --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
" --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
" --xr-background-color: var(--jp-layout-color0, white);\n",
" --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
" --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
"}\n",
"\n",
".xr-wrap {\n",
" min-width: 300px;\n",
" max-width: 700px;\n",
"}\n",
"\n",
".xr-header {\n",
" padding-top: 6px;\n",
" padding-bottom: 6px;\n",
" margin-bottom: 4px;\n",
" border-bottom: solid 1px var(--xr-border-color);\n",
"}\n",
"\n",
".xr-header > div,\n",
".xr-header > ul {\n",
" display: inline;\n",
" margin-top: 0;\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-obj-type,\n",
".xr-array-name {\n",
" margin-left: 2px;\n",
" margin-right: 10px;\n",
"}\n",
"\n",
".xr-obj-type {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-sections {\n",
" padding-left: 0 !important;\n",
" display: grid;\n",
" grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
"}\n",
"\n",
".xr-section-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-section-item input {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-item input + label {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label {\n",
" cursor: pointer;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label:hover {\n",
" color: var(--xr-font-color0);\n",
"}\n",
"\n",
".xr-section-summary {\n",
" grid-column: 1;\n",
" color: var(--xr-font-color2);\n",
" font-weight: 500;\n",
"}\n",
"\n",
".xr-section-summary > span {\n",
" display: inline-block;\n",
" padding-left: 0.5em;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-summary-in + label:before {\n",
" display: inline-block;\n",
" content: '►';\n",
" font-size: 11px;\n",
" width: 15px;\n",
" text-align: center;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label:before {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label:before {\n",
" content: '▼';\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label > span {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-summary,\n",
".xr-section-inline-details {\n",
" padding-top: 4px;\n",
" padding-bottom: 4px;\n",
"}\n",
"\n",
".xr-section-inline-details {\n",
" grid-column: 2 / -1;\n",
"}\n",
"\n",
".xr-section-details {\n",
" display: none;\n",
" grid-column: 1 / -1;\n",
" margin-bottom: 5px;\n",
"}\n",
"\n",
".xr-section-summary-in:checked ~ .xr-section-details {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-array-wrap {\n",
" grid-column: 1 / -1;\n",
" display: grid;\n",
" grid-template-columns: 20px auto;\n",
"}\n",
"\n",
".xr-array-wrap > label {\n",
" grid-column: 1;\n",
" vertical-align: top;\n",
"}\n",
"\n",
".xr-preview {\n",
" color: var(--xr-font-color3);\n",
"}\n",
"\n",
".xr-array-preview,\n",
".xr-array-data {\n",
" padding: 0 5px !important;\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-array-data,\n",
".xr-array-in:checked ~ .xr-array-preview {\n",
" display: none;\n",
"}\n",
"\n",
".xr-array-in:checked ~ .xr-array-data,\n",
".xr-array-preview {\n",
" display: inline-block;\n",
"}\n",
"\n",
".xr-dim-list {\n",
" display: inline-block !important;\n",
" list-style: none;\n",
" padding: 0 !important;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list li {\n",
" display: inline-block;\n",
" padding: 0;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list:before {\n",
" content: '(';\n",
"}\n",
"\n",
".xr-dim-list:after {\n",
" content: ')';\n",
"}\n",
"\n",
".xr-dim-list li:not(:last-child):after {\n",
" content: ',';\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-has-index {\n",
" font-weight: bold;\n",
"}\n",
"\n",
".xr-var-list,\n",
".xr-var-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-var-item > div,\n",
".xr-var-item label,\n",
".xr-var-item > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-even);\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-var-item > .xr-var-name:hover span {\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-var-list > li:nth-child(odd) > div,\n",
".xr-var-list > li:nth-child(odd) > label,\n",
".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-odd);\n",
"}\n",
"\n",
".xr-var-name {\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-var-dims {\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-var-dtype {\n",
" grid-column: 3;\n",
" text-align: right;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-preview {\n",
" grid-column: 4;\n",
"}\n",
"\n",
".xr-var-name,\n",
".xr-var-dims,\n",
".xr-var-dtype,\n",
".xr-preview,\n",
".xr-attrs dt {\n",
" white-space: nowrap;\n",
" overflow: hidden;\n",
" text-overflow: ellipsis;\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-var-name:hover,\n",
".xr-var-dims:hover,\n",
".xr-var-dtype:hover,\n",
".xr-attrs dt:hover {\n",
" overflow: visible;\n",
" width: auto;\n",
" z-index: 1;\n",
"}\n",
"\n",
".xr-var-attrs,\n",
".xr-var-data {\n",
" display: none;\n",
" background-color: var(--xr-background-color) !important;\n",
" padding-bottom: 5px !important;\n",
"}\n",
"\n",
".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
".xr-var-data-in:checked ~ .xr-var-data {\n",
" display: block;\n",
"}\n",
"\n",
".xr-var-data > table {\n",
" float: right;\n",
"}\n",
"\n",
".xr-var-name span,\n",
".xr-var-data,\n",
".xr-attrs {\n",
" padding-left: 25px !important;\n",
"}\n",
"\n",
".xr-attrs,\n",
".xr-var-attrs,\n",
".xr-var-data {\n",
" grid-column: 1 / -1;\n",
"}\n",
"\n",
"dl.xr-attrs {\n",
" padding: 0;\n",
" margin: 0;\n",
" display: grid;\n",
" grid-template-columns: 125px auto;\n",
"}\n",
"\n",
".xr-attrs dt, dd {\n",
" padding: 0;\n",
" margin: 0;\n",
" float: left;\n",
" padding-right: 10px;\n",
" width: auto;\n",
"}\n",
"\n",
".xr-attrs dt {\n",
" font-weight: normal;\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-attrs dt:hover span {\n",
" display: inline-block;\n",
" background: var(--xr-background-color);\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-attrs dd {\n",
" grid-column: 2;\n",
" white-space: pre-wrap;\n",
" word-break: break-all;\n",
"}\n",
"\n",
".xr-icon-database,\n",
".xr-icon-file-text2 {\n",
" display: inline-block;\n",
" vertical-align: middle;\n",
" width: 1em;\n",
" height: 1.5em !important;\n",
" stroke-width: 0;\n",
" stroke: currentColor;\n",
" fill: currentColor;\n",
"}\n",
"</style><div class='xr-wrap'><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'></div><ul class='xr-dim-list'><li><span class='xr-has-index'>Repeats</span>: 100</li><li><span class='xr-has-index'>lat</span>: 15</li><li><span class='xr-has-index'>lon</span>: 20</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-c8033629-0376-4505-b35b-68593c59265b' class='xr-array-in' type='checkbox' ><label for='section-c8033629-0376-4505-b35b-68593c59265b' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>nan nan nan nan nan nan nan nan ... nan nan nan nan nan nan nan nan</span></div><pre class='xr-array-data'>array([[[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]],\n",
"\n",
" [[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]],\n",
"\n",
" [[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]],\n",
"\n",
" ...,\n",
"\n",
" [[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]],\n",
"\n",
" [[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]],\n",
"\n",
" [[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]]])</pre></div></li><li class='xr-section-item'><input id='section-5329094f-aa7f-4cb8-b9ae-ec763b81ab06' class='xr-section-summary-in' type='checkbox' checked><label for='section-5329094f-aa7f-4cb8-b9ae-ec763b81ab06' class='xr-section-summary' >Coordinates: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lon</span></div><div class='xr-var-dims'>(lon)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>-150 -149 -148 ... -133 -132 -131</div><input id='attrs-ffb03a44-e0a7-4a9e-a0a6-d0fea65b202d' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-ffb03a44-e0a7-4a9e-a0a6-d0fea65b202d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-bf19f3ff-73ab-4827-a8b7-6454fc2cc66c' class='xr-var-data-in' type='checkbox'><label for='data-bf19f3ff-73ab-4827-a8b7-6454fc2cc66c' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><pre class='xr-var-data'>array([-150, -149, -148, -147, -146, -145, -144, -143, -142, -141, -140, -139,\n",
" -138, -137, -136, -135, -134, -133, -132, -131])</pre></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>-45 -44 -43 -42 ... -34 -33 -32 -31</div><input id='attrs-307d6d3c-d1c7-4006-86f6-fb5c0ea75a62' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-307d6d3c-d1c7-4006-86f6-fb5c0ea75a62' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c577262d-03dc-42bb-8c17-0d108266be1d' class='xr-var-data-in' type='checkbox'><label for='data-c577262d-03dc-42bb-8c17-0d108266be1d' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><pre class='xr-var-data'>array([-45, -44, -43, -42, -41, -40, -39, -38, -37, -36, -35, -34, -33, -32,\n",
" -31])</pre></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>Repeats</span></div><div class='xr-var-dims'>(Repeats)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 6 ... 94 95 96 97 98 99</div><input id='attrs-fb6dc5dc-790e-4e40-b3ac-11cd2614656d' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-fb6dc5dc-790e-4e40-b3ac-11cd2614656d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-6487b1ce-dae1-42db-aec9-8797130601be' class='xr-var-data-in' type='checkbox'><label for='data-6487b1ce-dae1-42db-aec9-8797130601be' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><pre class='xr-var-data'>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n",
" 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,\n",
" 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,\n",
" 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,\n",
" 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,\n",
" 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])</pre></li></ul></div></li><li class='xr-section-item'><input id='section-8f4c9235-b31e-4bc1-8504-b136f456e0d2' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-8f4c9235-b31e-4bc1-8504-b136f456e0d2' class='xr-section-summary' title='Expand/collapse section'>Attributes: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'></dl></div></li></ul></div></div>"
],
"text/plain": [
"<xarray.DataArray (Repeats: 100, lat: 15, lon: 20)>\n",
"array([[[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]],\n",
"\n",
" [[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]],\n",
"\n",
" [[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]],\n",
"\n",
" ...,\n",
"\n",
" [[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]],\n",
"\n",
" [[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]],\n",
"\n",
" [[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]]])\n",
"Coordinates:\n",
" * lon (lon) int64 -150 -149 -148 -147 -146 ... -135 -134 -133 -132 -131\n",
" * lat (lat) int64 -45 -44 -43 -42 -41 -40 -39 ... -36 -35 -34 -33 -32 -31\n",
" * Repeats (Repeats) int64 0 1 2 3 4 5 6 7 8 9 ... 91 92 93 94 95 96 97 98 99"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"prop_2 = proportion_rand[:,0:5]\n",
"prop_2 = prop_2.assign_coords({'ncell':index})\n",
"prop_2 = prop_2.unstack().reindex(lon=np.arange(-150,-130,1),lat=np.arange(-45,-30,1))\n",
"prop_2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Charuni's method"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"thw_da = xr.open_dataarray('/g/data/e14/cp3790/Charuni/thw_new.nc')\n",
"mhw_da = xr.open_dataarray('/g/data/e14/cp3790/Charuni/mhw_new.nc')\n",
"combined_da = xr.open_dataarray('/g/data/e14/cp3790/Charuni/combined.nc')\n",
"\n",
"thw = np.asarray(thw_da[90])\n",
"mhw = np.asarray(mhw_da[90])\n",
"add = np.asarray(combined_da[90])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10.5 s ± 55.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
]
}
],
"source": [
"%%timeit\n",
"proportion_rand_v2 = []\n",
"thw_ = []\n",
"N = len(thw)\n",
"for n in range (Nrepeats):\n",
" # cut THW timeseries at a random point and swap the beginning and end \n",
"# r = int(np.ceil(np.random.randint(N-1)))\n",
" r = r_arr[n]\n",
" thw_[0:r] = thw[-1-r+1:]\n",
" thw_[r:N] = thw[0:-1-r+1]\n",
" thw_ = np.array(thw_)\n",
" \n",
" # calculate proportion\n",
" add = mhw + thw_\n",
" co_occ = sum(add==2)\n",
" non_co_occ = sum(thw_==1) - co_occ\n",
" prop_rand_v2 = co_occ/non_co_occ\n",
" proportion_rand_v2.append(prop_rand_v2)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"proportion_rand_v2 = []\n",
"thw_ = []\n",
"N = len(thw)\n",
"for n in range (100):\n",
" # cut THW timeseries at a random point and swap the beginning and end \n",
"# r = int(np.ceil(np.random.randint(N-1)))\n",
" r = r_arr[n]\n",
" thw_[0:r] = thw[-1-r+1:]\n",
" thw_[r:N] = thw[0:-1-r+1]\n",
" thw_ = np.array(thw_)\n",
" \n",
" # calculate proportion\n",
" add = mhw + thw_\n",
" co_occ = sum(add==2)\n",
" non_co_occ = sum(thw_==1) - co_occ\n",
" prop_rand_v2 = co_occ/non_co_occ\n",
" proportion_rand_v2.append(prop_rand_v2)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 0, 'Proportion of co-occurring over non co-occurring events')"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import scipy.stats as st\n",
"fig, ax = plt.subplots(figsize=(10,6)) \n",
"plt.hist(proportion_rand_v2, density=True, bins=40, label=\"Proportion of THWs with co-occurring MHWs\")\n",
"plt.xlim(xmin=0, xmax = 0.5)\n",
"plt.axvline(x=0.48, color='r', linewidth=4)\n",
"plt.ylabel('Count', fontsize=16)\n",
"plt.xlabel('Proportion of co-occurring over non co-occurring events', fontsize=16)\n",
"\n",
"#plt.savefig('Tas-single-point-v2')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:analysis3-20.01] *",
"language": "python",
"name": "conda-env-analysis3-20.01-py"
},
"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.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment