Hazard Winds
Contents
Hazard Winds#
from datetime import datetime
print("execution start: {0}".format(datetime.today().strftime('%Y-%m-%d %H:%M:%S')))
execution start: 2022-09-02 23:07:22
import os
import os.path as op
import sys
import pandas as pd
import numpy as np
import xarray as xr
# raster tools
from rasterio.crs import CRS
import json
import rioxarray
# kepler
from keplergl import KeplerGl
# bluemath
sys.path.insert(0, op.join(op.abspath(''), '..', '..'))
sys.path.insert(0, op.join(op.abspath(''), '..'))
# operational utils
from operational.util import read_config_args
Warning: ecCodes 2.21.0 or higher is recommended. You are running version 2.16.0
Forecast Parameters#
# project database
p_data = r'/media/administrador/HD2/SamoaTonga/data'
p_db = r'/media/administrador/HD1/DATABASES'
#site = 'Upolu' # Savaii / Upolu / Tongatapu
# (optional) get site from config file
nb_args = read_config_args(op.abspath(''), '10b_hazard')
site = nb_args['site']
print('Study site: {0}'.format(site))
Study site: Savaii
# site related parameteres
if site == 'Savaii':
# reforecast track
n, tc_name = 166, 'amos' # AMOS 2016
tif_fn = 'hr_FINAL_track_AMOS_lonlat.tif'
elif site == 'Upolu':
# reforecast track
n, tc_name = 166, 'amos' # AMOS 2016
tif_fn = 'hr_FINAL_track_AMOS_lonlat.tif'
elif site == 'Tongatapu':
# reforecast track
n, tc_name = 180, 'gita'
tif_fn = 'hr_FINAL_track_GITA_lonlat.tif'
Database#
p_site = op.join(p_data, site)
# riskscape folder
p_riskscape = op.join(p_data, 'riskscape_projects')
p_riskscape_site = op.join(p_riskscape, site)
# kepler config files
p_kepler_config = op.join(p_riskscape_site, 'config_files', 'config_hazard_rain_{0}.json'.format(site.lower()))
Reforecast#
date = 'reforecast_{0}'.format(tc_name)
print('forecast execution: {0}'.format(date))
forecast execution: reforecast_amos
Forecast Output Folder#
p_forecast = op.join(p_site, 'forecast', '10_wind_damage')
# forecast folder
p_fore_date = op.join(p_forecast, date)
print('forecast date code: {0}'.format(date))
forecast date code: reforecast_amos
# tc forecast
p_fore_tc = op.join(p_fore_date, tc_name + '_forecast')
# wind hazard files
p_final_track_tif = op.join(p_fore_tc, 'hr_FINAL_track_{0}_lonlat.tif'.format(tc_name))
Hazard Winds#
data_sim = xr.open_rasterio(p_final_track_tif).rename('z') # this is the wind
data_sim_84 = data_sim.copy()
data_sim_84 = data_sim_84.where((data_sim_84>=0.2) & (data_sim_84<=100))
df_sim_84 = data_sim_84.to_dataframe().reset_index().dropna()\
.rename(columns={'x':'Lon', 'y':'Lat'}).drop(columns=['band'])
Plot Hazard - SWATH winds#
a_file = open(p_kepler_config, "rb")
config_winds = json.load(a_file)
# Hazard - flooding depth
map_1 = KeplerGl(height=700, data={"Winds - SWATH": df_sim_84}, config=config_winds, show_docs=False)
map_1
print("execution end: {0}".format(datetime.today().strftime('%Y-%m-%d %H:%M:%S')))
execution end: 2022-09-02 23:07:24