@ -12,8 +12,8 @@
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 1,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "ExecuteTime": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-03T03:38:44.538853 Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-03T03:38:44.189514 Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-03T23:04:57.331037 Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-03T23:04:57.006071 Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "outputs": [],
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -28,8 +28,8 @@
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 2,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "ExecuteTime": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-03T03:38:46.21338 7Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-03T03:38:44.781382 Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-03T23:04:58.74982 7Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-03T23:04:57.333943 Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "outputs": [],
 
			
		 
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
			
			 
			 
			
				@ -61,8 +61,8 @@
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 3,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "ExecuteTime": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-03T03:38:53.297184 Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-03T03:38:46.365829 Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-03T23:05:05.800496 Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-03T23:04:58.751721 Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "outputs": [
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -77,7 +77,7 @@
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "name": "stderr",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "output_type": "stream",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "text": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "C:\\Users\\z5189959\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\numpy\\lib\\arraysetops.py:47 2: FutureWarning:\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "C:\\Users\\z5189959\\Desktop\\nsw-2016-storm-impact\\.venv\\lib\\site-packages\\numpy\\lib\\arraysetops.py:52 2: FutureWarning:\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "\n"
 
			
		 
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
			
			 
			 
			
				@ -127,162 +127,158 @@
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "markdown",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {},
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "### Compare underpredicted cases"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "### Compare predicted R_high with D_low\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "Let's see what the distribution of R_high is compared with D_low. How far off are the predicted water levels compared with the dune toes?"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "code",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 3 9,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 2 9,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "ExecuteTime": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-03T04:05:30.984007Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-03T04:05:30.805508Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-04T02:20:58.446500Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-04T02:20:58.439480Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "outputs": [],
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "def get_site_ids(df_forecasted, df_observed, forecasted_regime, observed_regime):\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    \"\"\"\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    Returns list of site_ids which match the given forecasted and observed regime\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    \"\"\"\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    set1 = set(df_forecasted.query(\"storm_regime == '{}'\".format(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        forecasted_regime)).index.get_level_values('site_id'))\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    set2 = set(df_observed.query(\"storm_regime == '{}'\".format(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        observed_regime)).index.get_level_values('site_id'))\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    return sorted(list(set1.intersection(set2)))\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "def get_R_high_D_low_diff(site_ids, df_profile_features, df_twls):\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    \"\"\"\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    Returns a dataframe of the difference between the R_high and D_low differences. \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    Positive values indicate R_high is larger than D_low.\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    \"\"\"\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    # Get dune toes at these sites and predicted max R_high\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    df_toes = df_profile_features.loc[site_ids].query(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        'profile_type==\"prestorm\"').dune_toe_z\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    df_R_highs = df_twls.loc[site_ids].groupby('site_id')['R_high'].max()\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    # Join into one dataframe\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    df_twl_toes = pd.concat([df_toes, df_R_highs], axis=1, sort=True)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    df_twl_toes['diff'] = df_twl_toes['R_high'] - df_twl_toes['dune_toe_z']\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    return df_twl_toes['diff']\n"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "code",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 53,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "ExecuteTime": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-04T03:55:51.858020Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-04T03:55:50.879155Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "outputs": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "data": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "text/html": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "<div>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "<style scoped>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    .dataframe tbody tr th:only-of-type {\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "        vertical-align: middle;\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    }\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    .dataframe tbody tr th {\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "        vertical-align: top;\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    }\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    .dataframe thead th {\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "        text-align: right;\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    }\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "</style>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "<table border=\"1\" class=\"dataframe\">\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  <thead>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    <tr style=\"text-align: right;\">\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th></th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>dune_toe_z</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>R_high</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>diff</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    </tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  </thead>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  <tbody>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    <tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>AVOCAn0005</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.306</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.260440</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>-0.045560</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    </tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    <tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>AVOCAn0008</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.507</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.220084</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>-0.286916</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    </tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    <tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>BILG0005</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>4.807</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.293445</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>-1.513555</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    </tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    <tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>BLUEYS0001</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.064</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>2.800144</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>-0.263856</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    </tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    <tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>BLUEYS0002</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>2.929</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>2.470641</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>-0.458359</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    </tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  </tbody>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "</table>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "</div>"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      ],
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "application/vnd.jupyter.widget-view+json": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "model_id": "94883b85733444528fe8a73379ce4611",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "version_major": 2,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "version_minor": 0
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "text/plain": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "            dune_toe_z    R_high      diff\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "AVOCAn0005       3.306  3.260440 -0.045560\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "AVOCAn0008       3.507  3.220084 -0.286916\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "BILG0005         4.807  3.293445 -1.513555\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "BLUEYS0001       3.064  2.800144 -0.263856\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "BLUEYS0002       2.929  2.470641 -0.458359"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "FigureWidget({\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    'data': [{'marker': {'color': '#ef8a62'},\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "              'name': 'Overpredicted',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "          …"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "execution_count": 39,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "metadata": {},
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "output_type": "execute_result "
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "output_type": "display_data"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ],
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "# Find site_ids where the forecast has been underpredicted\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "set1 = set(impacts['forecasted']['mean_slope_sto06'].query(\"storm_regime == 'swash'\").index.get_level_values('site_id'))\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "set2 = set(impacts['observed'].query(\"storm_regime == 'collision'\").index.get_level_values('site_id'))\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "site_ids = list(set1.intersection(set2))\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "# Get dune toes at these sites and predicted max R_high\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "df_toes = df_profile_features.loc[site_ids].query('profile_type==\"prestorm\"').dune_toe_z\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "df_R_highs = twls['forecasted']['mean_slope_sto06'].loc[site_ids].groupby('site_id')['R_high'].max()\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "# Join into one dataframe\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "df_twl_toes = pd.concat([df_toes, df_R_highs],axis=1,sort=True)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "df_twl_toes['diff'] = df_twl_toes['R_high'] - df_twl_toes['dune_toe_z']\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "df_twl_toes.head()\n"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "markdown",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {},
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "Now let's plot the comparison between our R_high TWL values and the dune toes to see how far off they were."
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "swash_overpredicted_site_ids = get_site_ids(df_forecasted=impacts['forecasted']['mean_slope_sto06'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                            df_observed=impacts['observed'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                            forecasted_regime='collision',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                            observed_regime='swash')\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "swash_overpredicted_diffs = get_R_high_D_low_diff(site_ids=swash_overpredicted_site_ids,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                                  df_profile_features=df_profile_features,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                                  df_twls=twls['forecasted']['mean_slope_sto06'])\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "swash_correct_site_ids = get_site_ids(df_forecasted=impacts['forecasted']['mean_slope_sto06'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                      df_observed=impacts['observed'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                      forecasted_regime='swash',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                      observed_regime='swash')\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "swash_correct_diffs = get_R_high_D_low_diff(site_ids=swash_correct_site_ids,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                            df_profile_features=df_profile_features,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                            df_twls=twls['forecasted']['mean_slope_sto06'])\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace1 = go.Histogram(y=swash_correct_diffs.tolist(),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                      opacity=0.75,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                      name='Correctly predicted',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                      marker=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                          color='#67a9cf',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                        ),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                    ybins=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                size=0.1\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "),)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace2 = go.Histogram(y=swash_overpredicted_diffs.tolist(),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                      opacity=0.75,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                      name='Overpredicted',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                      marker=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                          color='#ef8a62',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                    ybins=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                size=0.1\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "),)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "layout = go.Layout(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    title='R_high - D_low<br>Swash Regime',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    barmode='overlay',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    yaxis=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        title='z (m AHD)'\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    ),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    xaxis=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        title='Count'\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    ),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    bargap=0.2,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    bargroupgap=0.1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    legend=dict(x=.6, y=1)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ")\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "g_plot_swash = go.FigureWidget(data=[trace2, trace1], layout=layout)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "# To output to file\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "img_bytes = pio.write_image(g_plot_swash, 'g_plot_swash.png',format='png', width=600, height=400, scale=5)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "g_plot_swash\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "code",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 41,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 5 4,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "ExecuteTime": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-03T04:08:15.732169Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-03T04:08:15.656966Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-04T04:10:47.339268 Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-04T04:10:45.796887 Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "outputs": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "data": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "application/vnd.jupyter.widget-view+json": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "model_id": "35b9331242af473dba2f91761c307022",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "model_id": "3933da9295fe446f9413bca8842100c 2",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "version_major": 2,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "version_minor": 0
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "text/html": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "<p>Failed to display Jupyter Widget of type <code>FigureWidget</code>.</p>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "<p>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  that the widgets JavaScript is still loading. If this message persists, it\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  likely means that the widgets JavaScript library is either not installed or\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  Widgets Documentation</a> for setup instructions.\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "</p>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "<p>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  If you're reading this message in another frontend (for example, a static\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  it may mean that your frontend doesn't currently support widgets.\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "</p>\n"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      ],
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "text/plain": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "FigureWidget({\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    'data': [{'type': 'histogram',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "              'uid': '75f0d11f-9242-4fc7-b433-1f04e1e37ba6',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "              'y': [-0.045560088746212646, -0.28691603912686325,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "                    -1.5135547360075963, ..., -0.4613631587476821,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "                    -0.5212332930925054, -0.3948507473332721]}],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    'layout': {'bargap': 0.2,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "               'bargroupgap': 0.1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "               'title': 'D_low - R_high<br>Observed Collision, Forecasted Swash',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "               'xaxis': {'title': 'Count'},\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "               'yaxis': {'title': 'z (m AHD)'}}\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "})"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    'data': [{'marker': {'color': '#ef8a62'},\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "              'name': 'Underpredicted',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "         …"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "metadata": {},
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -290,10 +286,45 @@
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ],
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace1 = go.Histogram(y=df_twl_toes['diff'].tolist())\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "collision_underpredicted_site_ids = get_site_ids(df_forecasted=impacts['forecasted']['mean_slope_sto06'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                       df_observed=impacts['observed'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                       forecasted_regime='swash',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                       observed_regime='collision')\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "collision_underpredicted_diffs = get_R_high_D_low_diff(site_ids=collision_underpredicted_site_ids,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                             df_profile_features=df_profile_features,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                             df_twls=twls['forecasted']['mean_slope_sto06'])\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "collision_correct_site_ids = get_site_ids(df_forecasted=impacts['forecasted']['mean_slope_sto06'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                df_observed=impacts['observed'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                forecasted_regime='collision',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                observed_regime='collision')\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "collision_correct_diffs = get_R_high_D_low_diff(site_ids=collision_correct_site_ids,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                      df_profile_features=df_profile_features,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                                      df_twls=twls['forecasted']['mean_slope_sto06'])\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace1 = go.Histogram(y=collision_correct_diffs.tolist(),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                     opacity=0.75,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                     name='Correctly predicted',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                      marker=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                          color='#67a9cf',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                       ),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                    ybins=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                size=0.1\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "),)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace2 = go.Histogram(y=collision_underpredicted_diffs.tolist(),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                     opacity=0.75,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                     name='Underpredicted',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                      marker=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                          color='#ef8a62',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                       ),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                    ybins=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                size=0.1\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "),)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "layout = go.Layout(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    title='D_low - R_high<br>Observed Collision, Forecasted Swash',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    title='R_high - D_low<br>Collision Regime',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    barmode='overlay',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    yaxis=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        title='z (m AHD)'\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    ),\n",
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -301,172 +332,267 @@
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        title='Count'\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    ),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    bargap=0.2,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    bargroupgap=0.1\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    bargroupgap=0.1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    legend=dict(x=.6, y=1)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ")\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "g_plot = go.FigureWidget(data=[trace1], layout=layout)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "g_plot"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "g_plot_collision = go.FigureWidget(data=[trace2, trace1], layout=layout)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "# To output to file\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "img_bytes = pio.write_image(g_plot_collision, 'g_plot_collision.png',format='png', width=600, height=400, scale=5)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "g_plot_collision"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "markdown",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {},
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "The above plot shows that the R_high value for most of the incorrectly forecasted collision regimes, was typically underpredicted by less than 0.5 m. "
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "### Does dune toe lower?\n "
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "markdown",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "code",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": null,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {},
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "outputs": [],
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": []
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "markdown",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "heading_collapsed": true
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "### What do over predicted and underpredicted profiles look like?"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "markdown",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "hidden": true
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "### Compare overpredicted cases"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "Define a function for getting the average beach profile for a number of given site_ids: "
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "code",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 42,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 156 ,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "ExecuteTime": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-03T04:08:56.128806Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-03T04:08:55.894182Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-04T23:11:08.853877Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-04T23:11:08.846876Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "hidden": true
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "outputs": [],
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "def get_avg_profile(site_ids, debug=False):\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    rows = []\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    for n,site_id in enumerate(site_ids):\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        profile = df_profiles.query(\"site_id == '{}' and profile_type == 'prestorm'\".format(site_id))\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        profile_z = np.array(profile.z.tolist())\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        profile_x = np.array(profile.index.get_level_values('x').tolist())\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        # Let's center the profile based on the z=0 location\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        idx_last_z_val = max(np.argwhere(~np.isnan(profile_z)==True))[0]\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        x_last_val = profile_x[idx_last_z_val]\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        profile_x = [x - x_last_val for x in profile_x]\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        # Put values into a dictionary\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        for x,z in zip(profile_x, profile_z):\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "            rows.append({'x':x, 'z': z})\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        # Return early for debugging\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        if debug and n>3:\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "            break\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    # Create dataframe from rows\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    df = pd.DataFrame(rows)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    avg_profile = df.groupby('x').agg({'z': [np.nanmean, np.nanstd]}).reset_index()\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    return {\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        'x': avg_profile.x.tolist(),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        'z': avg_profile.z.nanmean.tolist(),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        'std': avg_profile.z.nanstd.tolist(),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        'n': n+1  # number of profiles\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    }"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "markdown",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "hidden": true
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "Now, let's look at whether there is a difference between the average beach profile of correctly forecasted site_ids and incorrectly forecasted site_ids. First, looking at sites where we observed swash regime."
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "code",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 161,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "ExecuteTime": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-05T02:00:36.853374Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-05T01:58:21.839366Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "code_folding": [],
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "hidden": true
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "outputs": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "data": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "text/html": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "<div>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "<style scoped>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    .dataframe tbody tr th:only-of-type {\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "        vertical-align: middle;\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    }\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    .dataframe tbody tr th {\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "        vertical-align: top;\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    }\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    .dataframe thead th {\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "        text-align: right;\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    }\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "</style>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "<table border=\"1\" class=\"dataframe\">\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  <thead>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    <tr style=\"text-align: right;\">\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th></th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>dune_toe_z</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>R_high</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>diff</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    </tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  </thead>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  <tbody>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    <tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>AVOCAn0004</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.178</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.416988</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>0.238988</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    </tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    <tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>BOOM0004</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.065</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.074980</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>0.009980</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    </tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    <tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>BOOM0011</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>2.771</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>6.491824</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.720824</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    </tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    <tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>BOOM0012</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>2.796</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.148087</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>0.352087</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    </tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    <tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <th>CATHIE0001</th>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>2.780</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>3.522792</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "      <td>0.742792</td>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    </tr>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  </tbody>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "</table>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "</div>"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      ],
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "application/vnd.jupyter.widget-view+json": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "model_id": "03f2e99d20a347f3922a0e6a36f99ccd",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "version_major": 2,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "version_minor": 0
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "text/plain": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "            dune_toe_z    R_high      diff\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "AVOCAn0004       3.178  3.416988  0.238988\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "BOOM0004         3.065  3.074980  0.009980\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "BOOM0011         2.771  6.491824  3.720824\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "BOOM0012         2.796  3.148087  0.352087\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "CATHIE0001       2.780  3.522792  0.742792"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "FigureWidget({\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    'data': [{'line': {'color': 'rgb(205, 0, 0)', 'width': 2},\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "              'mode': 'lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       " …"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "execution_count": 42,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "metadata": {},
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "output_type": "execute_result "
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "output_type": "display_data"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ],
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "# Find site_ids where the forecast has been overpredicted\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "set1 = set(impacts['forecasted']['mean_slope_sto06'].query(\"storm_regime == 'collision'\").index.get_level_values('site_id'))\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "set2 = set(impacts['observed'].query(\"storm_regime == 'swash'\").index.get_level_values('site_id'))\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "site_ids = list(set1.intersection(set2))\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "# Get dune toes at these sites and predicted max R_high\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "df_toes = df_profile_features.loc[site_ids].query('profile_type==\"prestorm\"').dune_toe_z\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "df_R_highs = twls['forecasted']['mean_slope_sto06'].loc[site_ids].groupby('site_id')['R_high'].max()\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "# Join into one dataframe\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "df_twl_toes = pd.concat([df_toes, df_R_highs],axis=1,sort=True)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "df_twl_toes['diff'] = df_twl_toes['R_high'] - df_twl_toes['dune_toe_z']\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "df_twl_toes.head()\n"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "overpredicted = get_avg_profile(swash_overpredicted_site_ids)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "correct = get_avg_profile(swash_correct_site_ids)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "# Add mean profile\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace_overpredicted_mean = go.Scatter(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    x=overpredicted['x'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    y=overpredicted['z'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    opacity=1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    mode='lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    name='Mean overpredicted profile (n={})'.format(overpredicted['n']),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    line=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        color=('rgb(205, 0, 0)'),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        width=2)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ")\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace_overpredited_std_top = go.Scatter(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    x=overpredicted['x'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    y=np.add(overpredicted['z'], overpredicted['std']),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    opacity=1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    hoverinfo='none',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    showlegend=False,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    mode='lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    line=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        color=('rgb(205, 0, 0)'),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        width=0.5,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        dash='dash')\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ")\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace_overpredited_std_btm = go.Scatter(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    x=overpredicted['x'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    y=np.subtract(overpredicted['z'], overpredicted['std']),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    opacity=1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    hoverinfo='none',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    mode='lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    showlegend=False,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    line=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        color=('rgb(205, 0, 0)'),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        width=0.5,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        dash='dash')\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ")\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace_correct_mean = go.Scatter(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    x=avg_correct_x,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    y=avg_correct_z,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    opacity=1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    mode='lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    name='Mean correct profile (n={})'.format(correct['n']),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    line=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        color=('rgb(0, 205, 0)'),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        width=2)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ")\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace_correct_std_top = go.Scatter(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    x=avg_correct_x,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    y=np.add(avg_correct_z, avg_correct_std),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    opacity=1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    hoverinfo='none',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    showlegend=False,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    mode='lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    line=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        color=('rgb(0, 205, 0)'),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        width=0.5,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        dash='dash')\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ")\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace_correct_std_btm = go.Scatter(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    x=avg_correct_x,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    y=np.subtract(avg_correct_z, avg_correct_std),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    opacity=1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    hoverinfo='none',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    mode='lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    showlegend=False,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    line=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        color=('rgb(0, 205, 0)'),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        width=0.5,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        dash='dash')\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ")\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "layout = dict(showlegend=True,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "              title='Observed Swash Impact Regime',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "              legend=dict(x=.6, y=1),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "              xaxis=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                  range=[-150, 0]),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "              yaxis=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                  range=[0, 10]))\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "fig = go.FigureWidget(data=[trace_overpredicted_mean,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                            trace_overpredited_std_top,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                            trace_overpredited_std_btm,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                            trace_correct_mean,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                            trace_correct_std_top,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                            trace_correct_std_btm],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                      layout=layout)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "# To output to file\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "img_bytes = pio.write_image(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    fig, 'mean_profiles_swash.png', format='png', width=600, height=600, scale=5)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "fig"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "markdown",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "hidden": true
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "We can see that the difference is pretty minimal. For cases where we predicted collision, but observed swash (overprediction), we see that overpredicted profiles are slightly more concave than correctly predicted sites."
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "code",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 47,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "execution_count": 162 ,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "ExecuteTime": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-03T04:14:46.601092Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-03T04:14:46.522883Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "end_time": "2018-12-05T02:03:38.394415Z",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "start_time": "2018-12-05T02:00:37.335377Z"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "hidden": true
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "outputs": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "data": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "application/vnd.jupyter.widget-view+json": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "model_id": "3ea49a4ac07c4ea19bbb4532326ff94c",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "model_id": "1255bccc024e4690b4b8ff4ccc8e9e35 ",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "version_major": 2,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "version_minor": 0
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "text/html": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "<p>Failed to display Jupyter Widget of type <code>FigureWidget</code>.</p>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "<p>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  that the widgets JavaScript is still loading. If this message persists, it\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  likely means that the widgets JavaScript library is either not installed or\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  Widgets Documentation</a> for setup instructions.\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "</p>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "<p>\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  If you're reading this message in another frontend (for example, a static\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "  it may mean that your frontend doesn't currently support widgets.\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "</p>\n"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      ],
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      "text/plain": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "FigureWidget({\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    'data': [{'type': 'histogram',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "              'uid': '4a284474-2be1-4fd7-87d5-25364cc78df4',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "              'y': [0.23898814460475037, 0.009980312001434566, 3.720823710344608,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "                    ..., 1.5720238663972683, 0.912998680585452, 1.1419977620500927]}],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    'layout': {'bargap': 0.2,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "               'bargroupgap': 0.1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "               'title': 'D_low - R_high<br>Observed Swash, Forecasted Collision',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "               'xaxis': {'title': 'Count'},\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "               'yaxis': {'title': 'z (m AHD)'}}\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "})"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "    'data': [{'line': {'color': 'rgb(205, 0, 0)', 'width': 2},\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       "              'mode': 'lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				       " …"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				     "metadata": {},
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -474,29 +600,114 @@
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ],
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace1 = go.Histogram(y=df_twl_toes['diff'].tolist())\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "underpredicted = get_avg_profile(collision_underpredicted_site_ids)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "correct = get_avg_profile(collision_correct_site_ids)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "layout = go.Layout(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    title='D_low - R_high<br>Observed Swash, Forecasted Collision',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    yaxis=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        title='z (m AHD)'\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    ),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    xaxis=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        title='Count'\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    ),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    bargap=0.2,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    bargroupgap=0.1\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "# Add mean profile\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace_underpredicted_mean = go.Scatter(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    x = underpredicted['x'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    y= underpredicted['z'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    opacity = 1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    mode='lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    name='Mean underpredicted profile (n={})'.format(underpredicted['n']),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    line = dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        color = ('rgb(205, 0, 0)'),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        width = 2)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ")\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace_underpredicted_std_top = go.Scatter(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    x = underpredicted['x'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    y= np.add(underpredicted['z'],underpredicted['std']),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    opacity = 1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    hoverinfo='none',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    showlegend=False,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    mode='lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    line = dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        color = ('rgb(205, 0, 0)'),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        width = 0.5,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        dash = 'dash')\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ") \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace_underpredicted_std_btm = go.Scatter(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    x = underpredicted['x'],\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    y= np.subtract(underpredicted['z'],underpredicted['std']),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    opacity = 1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    hoverinfo='none',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    mode='lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    showlegend=False,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    line = dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        color = ('rgb(205, 0, 0)'),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        width = 0.5,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        dash = 'dash')\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ") \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace_correct_mean = go.Scatter(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    x = avg_correct_x,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    y= avg_correct_z,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    opacity = 1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    mode='lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    name='Mean correct profile (n={})'.format(correct['n']),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    line = dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        color = ('rgb(0, 205, 0)'),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        width = 2)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ")\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "g_plot = go.FigureWidget(data=[trace1], layout=layout)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "g_plot"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace_correct_std_top = go.Scatter(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    x = avg_correct_x,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    y= np.add(avg_correct_z, avg_correct_std),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    opacity = 1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    hoverinfo='none',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    showlegend=False,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    mode='lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    line = dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        color = ('rgb(0, 205, 0)'),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        width = 0.5,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        dash = 'dash')\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ") \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "trace_correct_std_btm = go.Scatter(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    x = avg_correct_x,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    y= np.subtract(avg_correct_z, avg_correct_std),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    opacity = 1,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    hoverinfo='none',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    mode='lines',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    showlegend=False,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    line = dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        color = ('rgb(0, 205, 0)'),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        width = 0.5,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "        dash = 'dash')\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ") \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "layout = dict(showlegend=True,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "             title='Observed Collision Impact Regime',\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "             legend=dict(x=.6, y=1),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "             xaxis=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "             range=[-150,0]),\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "             yaxis=dict(\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "             range=[0,10]))\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "    \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "fig=go.FigureWidget(data=[trace_underpredicted_mean, \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                          trace_underpredicted_std_top,\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                          trace_underpredicted_std_btm, \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                          trace_correct_mean, \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                          trace_correct_std_top, \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                          trace_correct_std_btm], \n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "                    layout=layout)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "# To output to file\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "img_bytes = pio.write_image(fig, 'mean_profiles_collision.png',format='png', width=600, height=600, scale=5)\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "fig\n",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "\n"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cell_type": "markdown",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {},
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "metadata": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "hidden": true
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "source": [
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "The errors when we forecast collision but observe swash are much greater than we we forecast swash and observe collision. For this case, errors in excess of 1.0 m common. Why is this?"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "This plot is a bit more interesting. It shows that we are correctly forecasting collision when the profile is more accreted/convex, but when the profile is more eroded/concave, the water level is underpredicted. Why is this?  "
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   ]
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  }
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				 ],
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -506,6 +717,18 @@
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "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.6.7"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  "toc": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "base_numbering": 1,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "nav_menu": {},
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -515,9 +738,14 @@
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "title_cell": "Table of Contents",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "title_sidebar": "Contents",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "toc_cell": false,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "toc_position": {},
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "toc_position": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "height": "calc(100% - 180px)",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "left": "10px",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "top": "150px",
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    "width": "232.391px"
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "toc_section_display": true,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "toc_window_display": false
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "toc_window_display": tru e
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  },
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  "varInspector": {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				   "cols": {