GreenSurge Validation
Contents
GreenSurge Validation#
# common
import os
import os.path as op
import sys
# pip
import numpy as np
import xarray as xr
# DEV: bluemath
sys.path.insert(0, op.join(op.abspath(''), '..', '..', '..', '..'))
# bluemath modules
from bluemath.greensurgerepo.storms import historic_track_preprocessing, historic_track_interpolation, get_category
from bluemath.greensurgerepo.vortex import vortex_model_general
from bluemath.greensurgerepo.greensurge import GS_wind_partition, print_GFD_properties, GS_windsetup_reconstruction, presure_to_IB
from bluemath.greensurgerepo.plots.plots_greensurge import plot_case_input, plot_case_vortex_inputs_WP, \
plot_GSdomain_discretization, plot_GS_input_wind_partition, plot_GS_vs_dynamic_windsetup, \
plot_GS_num_validation_timeseries, plot_presure_vs_IB, plot_GS_StormSurge_grafiti, \
plot_GS_TG_validation_timeseries
# hide warnings
import warnings
warnings.filterwarnings('ignore')
## Methodology
GreenSurge
The Hybrid Modeling of TC-induced Storm Surge surrogate model based on Green’s summation (GreenSurge) and inverse barometer methodology aims to produce accurate estimates of the wind setup and pressure-induced sea level changes due to tropical cyclones (TC) at regional-to-local scales.
Methodology
The steps followed by the GreenSurge methodology, which are exemplified in the figure below, can be summarized as folows:
Compilation of the Green’s functions database for the study area.
Scaling and ensembled from the database to reconstruct any given TC and obtain the induced Wind Setup.
Obtain the sea level changes due to pressure difference using inverse barometer .
Obtain the storm surge as the sumation of Wind Set Up and Inverse Barometer .
Database and site parameters#
# database
p_data = r'/media/administrador/HD2/SamoaTonga/data'
site = 'Samoa'
p_site = op.join(p_data, site)
p_db = r'/media/administrador/HD1/DATABASES'
# deliverable folder
p_deliv = op.join(p_site, 'd06_tc_inundation_forecast')
# ibtracs
p_ibtracs = op.join(p_deliv, 'IBTrACS.ALL.v04r00.nc')
# greensurge library
p_greensurge = op.join(p_db, 'greensurge')
p_GFD_libdir = op.join(p_greensurge, 'GFD_lib', site, 'GFD_Samoa_T84_W40_D15_24h_CDdefault')
domain_study = 'Samoa'
# dynamic simulations
p_TC_Dynamic_Simulations = op.join(p_greensurge, 'data', 'TC_Dynamic_Simulations')
# tidal gauge
p_TC_TG = op.join(p_greensurge, 'data', 'Tidal_Gauge')
Historic TC Analysis#
TC data#
ibtracs = xr.open_dataset(p_ibtracs)
name = b'EVAN'
TCname = 'EVAN2012'
year = 2020
centerID = 'WMO'
#storm = ibtracs.isel(
# storm = np.where(
# (ibtracs.name == name) & # TODO: necesita \ ?
# (ibtracs.time[:,0].dt.year.values == year)
# )[0]
#).isel(storm=0)
storm = ibtracs.isel(storm = 12612)
storm
<xarray.Dataset> Dimensions: (date_time: 360, quadrant: 4) Coordinates: time (date_time) datetime64[ns] 2012-12-10T18:00:00.00003993... lat (date_time) float32 -14.3 -14.55 -14.62 ... nan nan nan lon (date_time) float32 180.2 180.7 181.2 ... nan nan nan Dimensions without coordinates: date_time, quadrant Data variables: (12/147) numobs float64 131.0 sid |S13 b'2012346S14180' season float64 2.013e+03 number int16 88 basin (date_time) |S2 b'SP' b'SP' b'SP' b'SP' ... b'' b'' b'' subbasin (date_time) |S2 b'MM' b'MM' b'MM' b'MM' ... b'' b'' b'' ... ... reunion_gust (date_time) float32 nan nan nan nan ... nan nan nan nan reunion_gust_per (date_time) float32 nan nan nan nan ... nan nan nan nan usa_seahgt (date_time) float32 nan nan nan nan ... nan nan nan nan usa_searad (date_time, quadrant) float32 nan nan nan ... nan nan nan storm_speed (date_time) float32 11.0 11.0 10.0 9.0 ... nan nan nan nan storm_dir (date_time) float32 117.0 108.0 101.0 ... nan nan nan Attributes: (12/50) title: IBTrACS - International Best Track Archive fo... summary: The intent of the IBTrACS project is to overc... source: The original data are tropical cyclone positi... Conventions: ACDD-1.3 Conventions_note: Data are nearly CF-1.7 compliant. The sole is... product_version: v04r00 ... ... license: These data may be redistributed and used with... featureType: trajectory cdm_data_type: Trajectory comment: The tracks of TCs generally look like a traje... nco_openmp_thread_number: 1 NCO: 4.4.3
- date_time: 360
- quadrant: 4
- time(date_time)datetime64[ns]...
- long_name :
- time
- standard_name :
- time
- description :
- Nominally, time steps are 3 hourly, but can be more often since some agencies include extra position (e.g., times near landfall, maximum intensity, etc.)
- Note :
- Variable:time can be missing since the tracks are stored in a fixed 2-D grid where tracks have varying lengths
- coverage_content_type :
- physicalMeasurement
array(['2012-12-10T18:00:00.000039936', '2012-12-10T21:00:00.000039936', '2012-12-11T00:00:00.000039936', ..., 'NaT', 'NaT', 'NaT'], dtype='datetime64[ns]')
- lat(date_time)float32...
- long_name :
- latitude
- standard_name :
- latitude
- units :
- degrees_north
- description :
- This is merged position based on the position(s) from the various source datasets.
- Note :
- Variable:lat can be missing since the tracks are stored in a fixed 2-D grid where tracks have varying lengths
- coverage_content_type :
- coordinate
array([-14.300001, -14.550241, -14.625 , ..., nan, nan, nan], dtype=float32)
- lon(date_time)float32...
- long_name :
- longitude
- standard_name :
- longitude
- units :
- degrees_east
- description :
- This is merged position based on the position(s) from the various source datasets.
- Note :
- Variable:lon can be missing since the tracks are stored in a fixed 2-D grid where tracks have varying lengths
- coverage_content_type :
- coordinate
array([180.2 , 180.70209, 181.25 , ..., nan, nan, nan], dtype=float32)
- numobs()float32...
- long_name :
- Number of observations per system
- units :
- 1
- coverage_content_type :
- coordinate
array(131.)
- sid()|S13...
- long_name :
- SID (IBTrACS Serial ID)
- cf_role :
- trajectory_id
- coverage_content_type :
- auxiliaryInformation
array(b'2012346S14180', dtype='|S13')
- season()float32...
- long_name :
- Season
- units :
- Year
- description :
- Season when storm started
- coverage_content_type :
- physicalMeasurement
array(2013.)
- number()int16...
- long_name :
- Storm number (within season)
- units :
- 1
- coverage_content_type :
- auxiliaryInformation
array(88, dtype=int16)
- basin(date_time)|S2...
- long_name :
- Current basin
- Note :
- EP=East_Pacific NA=North_Atlantic NI=North_Indian SA=South_Atlantic SI=South_Indian SP=South_Pacific WP=Western_Pacific
- coverage_content_type :
- thematicClassification
array([b'SP', b'SP', b'SP', ..., b'', b'', b''], dtype='|S2')
- subbasin(date_time)|S2...
- long_name :
- Current sub-basin
- Note :
- AS=Arabian_Sea BB=Bay_of_Bengal CP=Central_Pacific CS=Caribbean_Sea GM=Gulf_of_Mexico NA=North_Atlantic EA=Eastern_Australia WA=Western_Australia MM=No_subbasin_for_this_position
- coverage_content_type :
- thematicClassification
array([b'MM', b'MM', b'MM', ..., b'', b'', b''], dtype='|S2')
- name()|S128...
- long_name :
- Name of system
- description :
- May be a combination of names from different agencies
- coverage_content_type :
- thematicClassification
array(b'EVAN', dtype='|S128')
- source_usa()|S128...
- long_name :
- Source data information for this storm for USA track
- coverage_content_type :
- auxiliaryInformation
array(b'bsh042013.dat', dtype='|S128')
- source_jma()|S128...
- long_name :
- Source data information for this storm for RSMC Tokyo (Japan Meteorological Agency) track
- coverage_content_type :
- auxiliaryInformation
array(b'', dtype='|S128')
- source_cma()|S128...
- long_name :
- Source data information for this storm for Chinese (Chinese Meteorological Administration) track
- coverage_content_type :
- auxiliaryInformation
array(b'', dtype='|S128')
- source_hko()|S128...
- long_name :
- Source data information for this storm for Hong Kong (Hong Kong Observatory) track
- coverage_content_type :
- auxiliaryInformation
array(b'', dtype='|S128')
- source_new()|S128...
- long_name :
- Source data information for this storm for RSMC New Delhi (Indian Meteorological Department) track
- coverage_content_type :
- auxiliaryInformation
array(b'', dtype='|S128')
- source_reu()|S128...
- long_name :
- Source data information for this storm for RSMC La Reunion track
- coverage_content_type :
- auxiliaryInformation
array(b'', dtype='|S128')
- source_bom()|S128...
- long_name :
- Source data information for this storm for Australian TCWCs (Bureau of Meteorology) track
- coverage_content_type :
- auxiliaryInformation
array(b'', dtype='|S128')
- source_nad()|S128...
- long_name :
- Source data information for this storm for RSMC Nadi (Fiji) track
- coverage_content_type :
- auxiliaryInformation
array(b'RSMC-Nadi-2012-13-BT-Data.txt:Line=16:EVAN', dtype='|S128')
- source_wel()|S128...
- long_name :
- Source data information for this storm for TCWC Wellington track
- coverage_content_type :
- auxiliaryInformation
array(b'TC_BT_2006-current.csv:Line=596:EVAN', dtype='|S128')
- source_td5()|S128...
- long_name :
- Source data information for this storm for TD-9635 track
- Note :
- TD-9635 "Tropical Cyclone Analogs" produced by National Climatic Center in the 1970s
- coverage_content_type :
- auxiliaryInformation
array(b'', dtype='|S128')
- source_td6()|S128...
- long_name :
- Source data information for this storm for TD-9636 track
- Note :
- TD-9636 "Tropical Cyclone Data Global Consolidated" produced by National Climatic Center in the 1970s
- coverage_content_type :
- auxiliaryInformation
array(b'', dtype='|S128')
- source_ds8()|S128...
- long_name :
- Source data information for this storm for ds824 track
- Note :
- NCAR/UCAR research data archive dataset ds824: Global Tropical Cyclone "Best Track" Position and Intensity Data
- coverage_content_type :
- auxiliaryInformation
array(b'', dtype='|S128')
- source_neu()|S128...
- long_name :
- Source data information for this storm for C. Neumann S. Hemi. track
- coverage_content_type :
- auxiliaryInformation
array(b'', dtype='|S128')
- source_mlc()|S128...
- long_name :
- Source data information for this storm for M. Chenoweth track
- coverage_content_type :
- auxiliaryInformation
array(b'', dtype='|S128')
- iso_time(date_time)|S19...
- long_name :
- Time (ISO)
- description :
- Nominally, time steps are 3 hourly, but can be more often since some agencies include extra position (e.g., times near landfall, maximum intensity, etc.)
- coverage_content_type :
- physicalMeasurement
array([b'2012-12-10 18:00:00', b'2012-12-10 21:00:00', b'2012-12-11 00:00:00', ..., b'', b'', b''], dtype='|S19')
- nature(date_time)|S2...
- long_name :
- Nature of the cyclone
- Note :
- NR=Not_Reported DS=Disturbance TS=Tropical_System ET=Extratropical_System SS=Subtropical_System MX=MIXED_occurs_when_agencies_reported_inconsistent_types
- coverage_content_type :
- thematicClassification
array([b'TS', b'TS', b'TS', ..., b'', b'', b''], dtype='|S2')
- wmo_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed from Official WMO agency
- units :
- kts
- coverage_content_type :
- physicalMeasurement
array([nan, nan, 25., ..., nan, nan, nan], dtype=float32)
- wmo_pres(date_time)float32...
- long_name :
- Minimum central preossure from Official WMO agency
- units :
- mb
- coverage_content_type :
- physicalMeasurement
array([ nan, nan, 999., ..., nan, nan, nan], dtype=float32)
- wmo_agency(date_time)|S19...
- long_name :
- Official WMO agency
- coverage_content_type :
- thematicClassification
array([b'', b'', b'nadi', ..., b'', b'', b''], dtype='|S19')
- track_type()|S19...
- long_name :
- Name of track type
- description :
- Tracks are either MAIN or SPUR. Spur tracks have points that either merge with or split from another track (or both). Main tracks are regular tracks. Spur tracks should be treated with caution.
- coverage_content_type :
- thematicClassification
array(b'main', dtype='|S19')
- main_track_sid()|S13...
- long_name :
- SID of the main track associated with this storm.
- description :
- If this track is a main, then this is the same as serial_id. If a spur, it namesthe associated main track.
- coverage_content_type :
- thematicClassification
array(b'2012346S14180', dtype='|S13')
- dist2land(date_time)float32...
- long_name :
- Distance to Land at current location
- units :
- km
- description :
- Distance to the nearest land point. Also acts as a land mask since 0km = over land. Uses present location ONLY.
- coverage_content_type :
- modelResult
array([215., 198., 233., ..., nan, nan, nan], dtype=float32)
- landfall(date_time)float32...
- long_name :
- Minimum distance to land between current location and next.
- units :
- km
- description :
- Describes landfall conditions between the present observation and the next (usually 3 hours) by providing minimum distance to land. So a value of 0 implies that the storm crosses a coastline prior to the next observation.
- coverage_content_type :
- modelResult
array([200., 198., 226., ..., nan, nan, nan], dtype=float32)
- iflag(date_time)|S14...
- long_name :
- Interpolation flag
- flag_values :
- O P I V _
- flag_names :
- Original Position_interpolated Intensity_values_interpolated Other_Values_Interpolated Nothing_reported
- description :
- Each character represents the source of the values for a particular reporting time. 14 characters represent 14 agencies.
- Note :
- Agency Order: USA, JMA, CMA, HKO, NewDelhi, La Reunion, BoM, Nadi, Wellington, TD9636, TD9635, ds824, Neumann, Chenoweth
- coverage_content_type :
- qualityInformation
array([b'O_____________', b'P_____________', b'O_____________', ..., b'', b'', b''], dtype='|S14')
- usa_agency(date_time)|S32...
- long_name :
- Source dataset for U.S. data
- coverage_content_type :
- auxiliaryInformation
array([b'jtwc_sh', b'', b'jtwc_sh', ..., b'', b'', b''], dtype='|S32')
- usa_atcf_id(date_time)|S32...
- long_name :
- ATCF ID for the storm
- standard_name :
- automated_tropical_cyclone_forecasting_system_storm_identifier
- coverage_content_type :
- thematicClassification
array([b'SH042013', b'SH042013', b'SH042013', ..., b'', b'', b''], dtype='|S32')
- usa_lat(date_time)float32...
- long_name :
- Latitude (U.S. Agency)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([-14.3 , -14.550241, -14.7 , ..., nan, nan, nan], dtype=float32)
- usa_lon(date_time)float32...
- long_name :
- Longitude (U.S. Agency)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([-179.8 , -179.29791, -178.8 , ..., nan, nan, nan], dtype=float32)
- usa_record(date_time)|S1...
- long_name :
- Storm record type
- description :
- C – Closest approach to a coast, not followed by a landfall, G – Genesis, I – An intensity peak in terms of both pressure and wind, L – Landfall (center of system crossing a coastline), P – Minimum in central pressure, R – Provides additional detail on the intensity of the cyclone when rapid changes are underway, S – Change of status of the system, T – Provides additional detail on the track (position) of the cyclone, W – Maximum sustained wind speed
- coverage_content_type :
- thematicClassification
array([b'', b'', b'', ..., b'', b'', b''], dtype='|S1')
- usa_status(date_time)|S2...
- long_name :
- Storm status
- description :
- DB - disturbance, TD - tropical depression, TS - tropical storm, TY - typhoon, ST - super typhoon, TC - tropical cyclone, HU, HR - hurricane, SD - subtropical depression, SS - subtropical storm, EX - extratropical systems, PT - post tropical, IN - inland, DS - dissipating, LO - low, WV - tropical wave, ET - extrapolated, MD - monsoon depression, XX - unknown.
- coverage_content_type :
- thematicClassification
array([b'TD', b'TD', b'TD', ..., b'', b'', b''], dtype='|S2')
- usa_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- standard_name :
- tropical_cyclone_maximum_sustained_wind_speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([25., 27., 30., ..., nan, nan, nan], dtype=float32)
- usa_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([1004., 1002., 1000., ..., nan, nan, nan], dtype=float32)
- usa_sshs(date_time)float32...
- long_name :
- Saffir-Simpson Hurricane Wind Scale Category
- units :
- 1
- valid_min :
- -5
- valid_max :
- 5
- flag_values :
- [-5 -4 -3 -2 -1 0 1 2 3 4 5]
- flag_names :
- unknown_type_XX post_tropical_ET_EX_PT misc_disturbances_WV_LO_DB_DS_IN_MD subtropical_SS_SD tropical_depression_w_lt_34 tropical_storm_wind_35-63 hurricane_cat_1_wind_64-82 hurricane_cat_2_wind_83-95 hurricane_cat_3_wind_96-112 hurricane_cat_4_wind_113-136 hurricane_cat_5_wind_137+
- coverage_content_type :
- thematicClassification
array([-1., -1., -1., ..., nan, nan, nan], dtype=float32)
- usa_r34(date_time, quadrant)float32...
- long_name :
- Radius of 34 knot winds
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 1000
- coverage_content_type :
- physicalMeasurement
array([[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], dtype=float32)
- usa_r50(date_time, quadrant)float32...
- long_name :
- Radius of 50 knot winds
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 1000
- coverage_content_type :
- physicalMeasurement
array([[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], dtype=float32)
- usa_r64(date_time, quadrant)float32...
- long_name :
- Radius of 64 knot winds
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 1000
- coverage_content_type :
- physicalMeasurement
array([[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], dtype=float32)
- usa_poci(date_time)float32...
- long_name :
- Pressure of outermost closed isobar (not best tracked)
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- usa_roci(date_time)float32...
- long_name :
- Pressure of outermost closed isobar (not best tracked)
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 1000
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- usa_rmw(date_time)float32...
- long_name :
- Radius of maximum winds (not best tracked)
- standard_name :
- radius_of_tropical_cyclone_maximum_sustained_wind_speed
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 1000
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- usa_eye(date_time)float32...
- long_name :
- Eye diameter (not best tracked)
- standard_name :
- radius_of_tropical_cyclone_eye
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- tokyo_lat(date_time)float32...
- long_name :
- Latitude (RSMC Tokyo)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- tokyo_lon(date_time)float32...
- long_name :
- Longitude (RSMC Tokyo)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- tokyo_grade(date_time)float32...
- long_name :
- Storm grade
- units :
- 1
- valid_min :
- 2
- valid_max :
- 9
- flag_values :
- [2 3 4 5 6 7 8 9]
- flag_names :
- tropical_depression tropical_storm severe_tropical_storm typhoon extratropical just_entering_JMA_AoR not_used tropical_cyclone_of_TS_intensity_or_higher
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- tokyo_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- tokyo_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- tokyo_r50_dir(date_time)float32...
- long_name :
- Direction of maximum radius of 50 knots winds
- valid_min :
- 0
- valid_max :
- 9
- flag_values :
- [1 2 3 4 5 6 7 8 9]
- flag_names :
- Northeast East Southeast South Southwest West Northwest North Symmetric_Circle
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- tokyo_r50_long(date_time)float32...
- long_name :
- Maximum radius of 50 knots winds
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 1000
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- tokyo_r50_short(date_time)float32...
- long_name :
- Minimum radius of 50 knots winds
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 1000
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- tokyo_r30_dir(date_time)float32...
- long_name :
- Direction of maximum radius of 30 knots winds
- valid_min :
- 0
- valid_max :
- 9
- flag_values :
- [1 2 3 4 5 6 7 8 9]
- flag_names :
- Northeast East Southeast South Southwest West Northwest North Symmetric_Circle
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- tokyo_r30_long(date_time)float32...
- long_name :
- Direction of maximum radius of 30 knots winds
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 1000
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- tokyo_r30_short(date_time)float32...
- long_name :
- Minimum radius of 30 knots winds
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 1000
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- tokyo_land(date_time)float32...
- long_name :
- Landfall flag
- units :
- 1
- valid_min :
- 0
- valid_max :
- 1
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- cma_lat(date_time)float32...
- long_name :
- Latitude (Chinese Met. Admin.)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- cma_lon(date_time)float32...
- long_name :
- Longitude (Chinese Met. Admin.)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- cma_cat(date_time)float32...
- long_name :
- Storm category
- units :
- 1
- valid_min :
- 0
- valid_max :
- 9
- flag_values :
- [0 1 2 3 4 5 6 9]
- flag_names :
- weaker_than_tropical_depression_or_unknown tropical_depression tropical_storm severe_tropical_storm typhoon severe_typhoon super_typhoon extratrpoical
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- cma_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- cma_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- hko_lat(date_time)float32...
- long_name :
- Latitude (Hong Kong Observatory)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- hko_lon(date_time)float32...
- long_name :
- Longitude (Hong Kong Observatory)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- hko_cat(date_time)|S6...
- long_name :
- Storm category
- Note :
- Even though HKO changed the category meanings in 2009. We have made all systems (including before 2009) consistent with the latest definitions
- coverage_content_type :
- thematicClassification
array([b'', b'', b'', ..., b'', b'', b''], dtype='|S6')
- hko_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- hko_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- newdelhi_lat(date_time)float32...
- long_name :
- Latitude (RSMC New Delhi)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- newdelhi_lon(date_time)float32...
- long_name :
- Longitude (RSMC New Delhi)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- newdelhi_grade(date_time)|S10...
- long_name :
- Storm grade
- coverage_content_type :
- thematicClassification
array([b'', b'', b'', ..., b'', b'', b''], dtype='|S10')
- newdelhi_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- newdelhi_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- newdelhi_ci(date_time)float32...
- long_name :
- Dvorak current intensity (RWMC New Delhi)
- standard_name :
- dvorak_tropical_cyclone_current_intensity_number
- units :
- 1
- valid_min :
- 0.0
- valid_max :
- 8.0
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- newdelhi_dp(date_time)float32...
- long_name :
- Storm pressure drop
- units :
- mb
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- newdelhi_poci(date_time)float32...
- long_name :
- Pressure of outermost closed isobar
- units :
- mb
- valid_min :
- 900
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- reunion_lat(date_time)float32...
- long_name :
- Latitude (RSMC La Reunion)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- reunion_lon(date_time)float32...
- long_name :
- Longitude (RSMC La Reunion)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- reunion_type(date_time)float32...
- long_name :
- Storm type
- valid_min :
- 1
- valid_max :
- 9
- flag_values :
- [1 2 3 4 5 6 7 8 9]
- flag_names :
- tropical_disturbance tropical_depression_winds_less_than_34 tropical_storm_winds_34_to_63 tropical_cyclone_winds_64_or_more extratropical dissipating subtropical_cyclone overland unknown
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- reunion_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- reunion_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- reunion_tnum(date_time)float32...
- long_name :
- Dvorak T number
- units :
- 1
- valid_min :
- 0.0
- valid_max :
- 8.0
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- reunion_ci(date_time)float32...
- long_name :
- Dvorak Current Intensity (CI)
- standard_name :
- dvorak_tropical_cyclone_current_intensity_number
- units :
- 1
- valid_min :
- 0.0
- valid_max :
- 8.0
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- reunion_rmw(date_time)float32...
- long_name :
- Radius of maximum winds
- standard_name :
- radius_of_tropical_cyclone_maximum_sustained_wind_speed
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- reunion_r34(date_time, quadrant)float32...
- long_name :
- Radius of 34 knot winds (storm force)
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 5500
- coverage_content_type :
- physicalMeasurement
array([[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], dtype=float32)
- reunion_r50(date_time, quadrant)float32...
- long_name :
- Radius of 50 knot winds (gale force)
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 5500
- coverage_content_type :
- physicalMeasurement
array([[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], dtype=float32)
- reunion_r64(date_time, quadrant)float32...
- long_name :
- Radius of 64 knot winds (hurricane force)
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 5500
- coverage_content_type :
- physicalMeasurement
array([[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], dtype=float32)
- bom_lat(date_time)float32...
- long_name :
- Latitude (Australian BoM)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_lon(date_time)float32...
- long_name :
- Longitude (Australian BoM)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_type(date_time)float32...
- long_name :
- Cyclone type
- valid_min :
- 10
- valid_max :
- 91
- flag_values :
- [10 20 21 30 40 50 51 52 60 70 71 72 80 81 91]
- flag_names :
- tropics_disturbance_no_closed_isobar tropical_depression_wind_lt_34_and_1_closed_isobar tropical_storm_wind_34_to_63_in_1_or_2_quadrants tropical_storm_wind_34_to_63_in_3_or_4_quadrants wind_gt_63_knots extratropical_no_gales extratropical_with_gales extratropical_wind_unknown dissipating_no_gales subtropical_cyclone_no_gales subtropical_cyclone_with_gales subtropical_cyclone_wind_unknown overland_no_gales overland_with_gales tropical_cold_cored_monsoon_low
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_tnum(date_time)float32...
- long_name :
- Dvorak T number
- units :
- 1
- valid_min :
- 0.0
- valid_max :
- 8.0
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_ci(date_time)float32...
- long_name :
- Dvorak Current Intensity (CI)
- standard_name :
- dvorak_tropical_cyclone_current_intensity_number
- units :
- 1
- valid_min :
- 0.0
- valid_max :
- 8.0
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_rmw(date_time)float32...
- long_name :
- Radius of maximum winds
- standard_name :
- radius_of_tropical_cyclone_maximum_sustained_wind_speed
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 1000
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_r34(date_time, quadrant)float32...
- long_name :
- Radius of 34 knot winds (storm force)
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 2000
- coverage_content_type :
- physicalMeasurement
array([[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], dtype=float32)
- bom_r50(date_time, quadrant)float32...
- long_name :
- Radius of 50 knot winds (gale force)
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 2000
- coverage_content_type :
- physicalMeasurement
array([[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], dtype=float32)
- bom_r64(date_time, quadrant)float32...
- long_name :
- Radius of 64 knot winds (hurricane force)
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 2000
- coverage_content_type :
- physicalMeasurement
array([[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], dtype=float32)
- bom_roci(date_time)float32...
- long_name :
- Radius of outermost closed isobar
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 2000
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_poci(date_time)float32...
- long_name :
- Environmental pressure
- units :
- mb
- valid_min :
- 900
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_eye(date_time)float32...
- long_name :
- Eye diameter
- standard_name :
- radius_of_tropical_cyclone_eye
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 200
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_pos_method(date_time)float32...
- long_name :
- Method used to derive position
- flag_values :
- [ 1 2 3 4 5 6 7 8 10 11 12 13]
- flag_names :
- no_sat_no_radar_no_obs no_sat_no_radar_obs_only sat_ir_vis_no_clear_eye sat_ir_vis_clearly_defined_eye aircraft_radar_report landbased_radar_report sat_ir_vis_and_radar_and_obs report_inside_eye sat_scatterometer sat_microwave manned_aircraft_recon UAV_aircraft_recon
- coverage_content_type :
- qualityInformation
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_pres_method(date_time)float32...
- long_name :
- Method used to derive intensity
- flag_values :
- [1 2 3 4 5 6 7 8 9]
- flag_names :
- aircraft_or_dropsonde over_wat_obs over_land_obs instrument_unknown_type derived_Dvorak derived_from_wind_W_P_relationship estimate_from_surrounding_obs extrapolation_from_radar other
- coverage_content_type :
- qualityInformation
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- nadi_lat(date_time)float32...
- long_name :
- Latitude (RSMC Fiji)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([ nan, nan, -14.4, ..., nan, nan, nan], dtype=float32)
- nadi_lon(date_time)float32...
- long_name :
- Longitude (RSMC Fiji)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([ nan, nan, -178.6, ..., nan, nan, nan], dtype=float32)
- nadi_cat(date_time)float32...
- long_name :
- Storm category
- units :
- 1
- coverage_content_type :
- thematicClassification
array([nan, nan, -1., ..., nan, nan, nan], dtype=float32)
- nadi_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, 25., ..., nan, nan, nan], dtype=float32)
- nadi_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([ nan, nan, 999., ..., nan, nan, nan], dtype=float32)
- wellington_lat(date_time)float32...
- long_name :
- Latitude (RSMC Wellington)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- wellington_lon(date_time)float32...
- long_name :
- Longitude (RSMC Wellington)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- wellington_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- wellington_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- ds824_lat(date_time)float32...
- long_name :
- Latitude (DS824 dataset)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- ds824_lon(date_time)float32...
- long_name :
- Longitude (DS824 dataset)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- ds824_stage(date_time)|S2...
- long_name :
- Storm classification
- coverage_content_type :
- thematicClassification
array([b'', b'', b'', ..., b'', b'', b''], dtype='|S2')
- ds824_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- standard_name :
- tropical_cyclone_maximum_sustained_wind_speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- ds824_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- td9636_lat(date_time)float32...
- long_name :
- Latitude (TD-9636 dataset)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- td9636_lon(date_time)float32...
- long_name :
- Longitude (TD-9636 dataset)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- td9636_stage(date_time)float32...
- long_name :
- Storm classification
- valid_min :
- 0
- valid_max :
- 7
- flag_values :
- [0 1 2 3 4 5 6 7]
- flag_names :
- tropical_disturbance tropical_depression tropical_storm point_where_wind_reached_64_knots hurricane extratropical disspiating unknown_intensity_or_doubtful_track
- Note :
- Winds referred to in the stages differs for the North Indian. The Hurricane category means Wind > 48 knots and flag=3 means when wind reached that intensity
- coverage_content_type :
- thematicClassification
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- td9636_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- standard_name :
- tropical_cyclone_maximum_sustained_wind_speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- td9636_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- td9635_lat(date_time)float32...
- long_name :
- Latitude (TD-9635 dataset)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- td9635_lon(date_time)float32...
- long_name :
- Longitude (TD-9635 dataset)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- td9635_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- standard_name :
- tropical_cyclone_maximum_sustained_wind_speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- td9635_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- td9635_roci(date_time)float32...
- long_name :
- Radius of outermost closed isober
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 2999
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- neumann_lat(date_time)float32...
- long_name :
- Latitude (Neumann dataset)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- neumann_lon(date_time)float32...
- long_name :
- Longitude (Neumann dataset)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- neumann_class(date_time)|S2...
- long_name :
- Storm classification
- coverage_content_type :
- thematicClassification
array([b'', b'', b'', ..., b'', b'', b''], dtype='|S2')
- neumann_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- standard_name :
- tropical_cyclone_maximum_sustained_wind_speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- neumann_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- mlc_lat(date_time)float32...
- long_name :
- Latitude (M. L. Chenoweth dataset)
- units :
- degrees_north
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- mlc_lon(date_time)float32...
- long_name :
- Longitude (M. L. Chenoweth dataset)
- units :
- degrees_east
- coverage_content_type :
- coordinate
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- mlc_class(date_time)|S2...
- long_name :
- Storm classification
- coverage_content_type :
- thematicClassification
array([b'', b'', b'', ..., b'', b'', b''], dtype='|S2')
- mlc_wind(date_time)float32...
- long_name :
- Maximum sustained wind speed
- standard_name :
- tropical_cyclone_maximum_sustained_wind_speed
- units :
- kts
- valid_min :
- 1
- valid_max :
- 250
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- mlc_pres(date_time)float32...
- long_name :
- Minimum central pressure
- units :
- mb
- valid_min :
- 700
- valid_max :
- 1050
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- usa_gust(date_time)float32...
- long_name :
- Maximum reported wind gust from a US agency
- standard_name :
- wind_speed_of_gust
- units :
- kts
- valid_min :
- 1
- valid_max :
- 350
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_gust(date_time)float32...
- long_name :
- Maximum reported wind gust from BoM
- standard_name :
- wind_speed_of_gust
- units :
- kts
- valid_min :
- 1
- valid_max :
- 350
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- bom_gust_per(date_time)float32...
- long_name :
- Time period of the wind gust from BoM
- units :
- second
- valid_min :
- 1
- valid_max :
- 9999
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- reunion_gust(date_time)float32...
- long_name :
- Maximum reported wind gust from Reunion
- standard_name :
- wind_speed_of_gust
- units :
- kts
- valid_min :
- 1
- valid_max :
- 350
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- reunion_gust_per(date_time)float32...
- long_name :
- Time period of the wind gust from Reunion
- units :
- second
- valid_min :
- 1
- valid_max :
- 9999
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- usa_seahgt(date_time)float32...
- long_name :
- Wave height for given radii
- units :
- ft
- valid_min :
- 1
- valid_max :
- 998
- coverage_content_type :
- physicalMeasurement
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
- usa_searad(date_time, quadrant)float32...
- long_name :
- Radial extent of given sea height
- units :
- nmile
- valid_min :
- 1
- valid_max :
- 998
- coverage_content_type :
- physicalMeasurement
array([[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], dtype=float32)
- storm_speed(date_time)float32...
- long_name :
- Storm translation speed
- units :
- kts
- valid_min :
- 0
- valid_max :
- 998
- coverage_content_type :
- physicalMeasurement
array([11., 11., 10., ..., nan, nan, nan], dtype=float32)
- storm_dir(date_time)float32...
- long_name :
- Storm translation direction
- units :
- degrees
- valid_min :
- 0
- valid_max :
- 360
- Note :
- Unit is degrees east of north
- coverage_content_type :
- physicalMeasurement
array([117., 108., 101., ..., nan, nan, nan], dtype=float32)
- title :
- IBTrACS - International Best Track Archive for Climate Stewardship - version v04r00, Position, intensity and other information for known tropical cyclones
- summary :
- The intent of the IBTrACS project is to overcome best track data availability issues that arise from multiple agencies producing data for different storms in different formats. This was achieved by working directly with all the Regional Specialized Meteorological Centers and other international centers and individuals to create a global best track dataset, merging storm information from multiple agencies into one product and archiving the data for public use.
- source :
- The original data are tropical cyclone position, intensity and otherinformation provided by various agencies and people. This is a collection of all data on each tropical cyclone recorded.
- Conventions :
- ACDD-1.3
- Conventions_note :
- Data are nearly CF-1.7 compliant. The sole issue is the storage of missing data in the latitude/longitude/time variables. Otherwise, data are CF compliant.
- product_version :
- v04r00
- project :
- International Best Track Archive for Climate Stewardship (IBTrACS)
- processing_level :
- NOAA Processing Level 2, Data products are derived geophysical variables at the same resolution and locations as the level 1 source data
- acknowledgement :
- IBTrACS was produced by a team of scientists from NOAA in collaboration with scientists worldwide.
- references :
- https://www.ncdc.noaa.gov/ibtracs/, doi:10.1175/2009BAMS2755.1
- institution :
- National Centers for Environmental Information, NESDIS, NOAA, U.S. Department of Commerce
- publisher_type :
- institution
- publisher_name :
- National Centers for Environmental Information, NESDIS, NOAA, U.S. Department of Commerce
- publisher_email :
- ncei.sat.info@noaa.gov
- publisher_institution :
- National Centers for Environmental Information, NESDIS, NOAA, U.S. Department of Commerce
- publisher_url :
- https://ncei.noaa.gov/
- creator_type :
- group
- creator_name :
- IBTrACS Science Team (Ken Knapp, Howard Diamond, Jim Kossin, Mike Kruk, Carl Schreck)
- creator_institution :
- National Centers for Environmental Information, NESDIS, NOAA, U.S. Department of Commerce
- creator_email :
- ibtracs.team@noaa.gov, ken.knapp@noaa.gov
- creator_url :
- https://www.ncdc.noaa.gov/ibtracs/
- contributor_name :
- "National Hurricane Center, National Weather Service, NOAA, U.S. Department of Commerce","Central Pacific Hurricane Center, National Weather Service, NOAA, U.S. Department of Commerce","Japan Meteorological Agency, RSMC Tokyo, Japan","India Meteorological Department, RSMC New Delhi, India","Bureau of Meteorology, Australia","MetService, TCWC Wellington, New Zealand","Fiji Meteorological Service, RSMC Fiji, Fiji","MeteoFrance, La Reunion, RSMC La Reunion","Shanghai Typhoon Institute, Chinese Meteorological Administration, China","Hong Kong Observatory, Hong Kong""Joint Typhoon Warning Center, U.S. Department of Defense","National Center for Atmospheric Research, University Corporation for Atmospheric Research","Charlie Neumann Southern Hemisphere Dataset","Mike Chenoweth North Atlantic Dataset"
- contributor_role :
- These agencies and people provide track data and best track data used to produce IBTrACS.
- date_created :
- 2021-07-02 21:02:49
- date_issued :
- 2021-07-02 21:02:49
- time_coverage_start :
- 1842-10-25T03:00:00
- time_coverage_end :
- 2021-07-02 21:02:49
- geospatial_lat_min :
- 80.0
- geospatial_lat_max :
- -80.0
- geospatial_lat_units :
- degrees_north
- geospatial_lat_resolution :
- 0.10
- geospatial_lon_min :
- -180.0
- geospatial_lon_max :
- 180.0
- geospatial_lon_units :
- degrees_east
- geospatial_lon_resolution :
- 0.10
- geospatial_vertical_min :
- not applicable
- geospatial_vertical_max :
- not applicable
- naming_authority :
- gov.noaa.ncei
- id :
- 1842298N11080.ibtracs_int.v04r00.nc
- metadata_link :
- doi:10.25921/82ty-9e16
- keywords :
- EARTH SCIENCE> ATMOSPHERE> WEATHER EVENTS> TROPICAL CYCLONES> MAXIMUM SURFACE WIND, EARTH SCIENCE> ATMOSPHERE> WEATHER EVENTS> TROPICAL CYCLONES> MINIMUM CENTRAL PRESSURE, EARTH SCIENCE> ATMOSPHERE> WEATHER EVENTS> TROPICAL CYCLONES> TROPICAL CYCLONE TRACK, EARTH SCIENCE> ATMOSPHERE> WEATHER EVENTS> TROPICAL CYCLONES> TROPICAL CYCLONE FORCE WIND EXTENT, EARTH SCIENCE> ATMOSPHERE> WEATHER EVENTS> TROPICAL CYCLONES> TROPICAL CYCLONE RADIUS, EARTH SCIENCE> ATMOSPHERE> WEATHER EVENTS> TROPICAL CYCLONES> MAXIMUM 1-MINUTE SUSTAINED WIND, EARTH SCIENCE> ATMOSPHERE> WEATHER EVENTS> SUBTROPICAL CYCLONES > SUBTROPICAL STORM
- keywords_vocabulary :
- GCMD Science Keywords Version 8.6
- standard_name_vocabulary :
- CF Standard Name Table v52
- history :
- Tue Sep 28 03:51:42 2021: ncks -a -4 -L 5 temp.nc -O netcdf/IBTrACS.ALL.v04r00.nc Tue Sep 28 03:37:22 2021: ncrcat -6 -H -O netcdf/ibtracs.ALL.v04r00.nc Produced by IBTrACS for individual tracks and merged into basin and temporal collections using netCDF operators (ncrcat)
- license :
- These data may be redistributed and used without restriction.
- featureType :
- trajectory
- cdm_data_type :
- Trajectory
- comment :
- The tracks of TCs generally look like a trajectory except that it wasn't expedient to use the CF trajectory type. The team stored data in a way that approximates the trajectory profile, where each new track (each new storm) is a new trajectory.
- nco_openmp_thread_number :
- 1
- NCO :
- 4.4.3
# preprocess selected historic TC: obtain strom variables
df_TC_hist = historic_track_preprocessing(storm, center = centerID)
# computational time step mandatory [60 min] for GS methodology:
dt_comp = 20 # minutes
# generate interpolated storm track and mandatory data to apply vortex model
storm_track, time_input = historic_track_interpolation(df_TC_hist, dt_comp)
plot_case_input(storm_track, TCname);

# preprocess selected historic TC: obtain strom variables
# Storm fraction selection based on temporal coverture (period when the cyclone passes close to Tonga)
# EVAN2012
tini = np.datetime64('2012-12-11T12:00')
tend = np.datetime64('2012-12-15T18:00')
storm_track_sel = storm_track[(storm_track.index >= tini) & (storm_track.index <= tend)]
plot_case_input(storm_track_sel, TCname);

Vortex Model#
GreenSurge input: wind fields and sea level preasure from vortex model
# GRID domain study
Alon = 0.02 # 2km
Alat = 0.02 # 2km
lon = np.linspace(185.5, 190.5, int((190.5-185.5)/Alon)+1)
lat = np.linspace(-15, -12.5, int(abs(-12.5+15)/Alat)+1)
ds_grid_aux = xr.Dataset({
'lon_grid':(lon),
'lat_grid':(lat),
})
xds_vortex = vortex_model_general(storm_track_sel, ds_grid_aux)
# Instant
t_num1 = 51
t_num = t_num1 * int(60/dt_comp)
plot_case_vortex_inputs_WP(
xds_vortex.isel(time = t_num),
storm_track_sel,
TCname,
mesh = None,
quiver = True,
show_nested = False,
);

plot_case_vortex_inputs_WP(
xds_vortex,
storm_track_sel,
TCname,
swath = True,
quiver = None,
);

Wind setup#
Green Function Dadatabase (GFD)
The first stage, the compilation of the empirical Green’s Functions Database (GFD) includes:
Definition of the cells for the application of the unit wind covering all possible directions established. The shape and area of these cells should be as small as possible in order to ensure the spatial characterization of any cyclone and large enough not to lose the advantage of this methodology in terms of computing performance and independence with respect to full dynamic simulations.
Definition of the unit wind magnitude and the direction discretization of wind sources, as well as the drag coefficient function (function of wind magnitude).
Time definition of each independent simulation corresponding to each Green’s function, both the length of the sustained unit wind (hereafter, time step) and the time afterwards at which it is necessary to record sea level response over the whole domain.
Computation of the GFD with a SW numerical model.
p_GFD_info = op.join(p_GFD_libdir, 'GFD_lib_info.nc')
ds_GFD_info = xr.open_dataset(p_GFD_info)
print_GFD_properties(ds_GFD_info, domain_study)
plot_GSdomain_discretization(ds_GFD_info);
GFD info:
---------
Samoa domain
84 cells, 29*25 km resolution
24 wind directions, 15º resolution
Unit wind speed: 40m/s
CD formulation: Wu1982

Vortex Wind Fields
The second stage for any TC event study includes:
Partition of original TC-induced wind fields (regardless of their origin: from parameterizations using Holland vortex model or from forecasting systems) taking into account spatial (i.e. cells) and temporal (i.e. length of sustained winds) resolutions defined in stage 1.
Search for analogues of the above wind forcing partition for each cell and time step in the corresponding forcings of the GFD pre-computed in stage 1. At this point, it is worth mentioning that, since a unit wind is used, the search for analogues is based on wind directions only.
Re-scaling of the corresponding wind setup according to the realistic wind magnitude taking into account the quadratic expression of the wind shear stress used at the free surface boundary condition for the momentum equations.
Summation of the re-scaled wind setup corresponding to the Green’s Fuctions selected by directional analogy for each time step
xds_vortex_GS = vortex_model_general(storm_track_sel, ds_GFD_info)
ds_wind_partition = GS_wind_partition(ds_GFD_info, xds_vortex_GS)
plot_GS_input_wind_partition(
xds_vortex_GS, ds_wind_partition,
storm_track_sel,
t_num = t_num1 * int(60/dt_comp),
quiver = True,
);

Run: Searching for analogues, re-scaling and applying wind-drag coefficient
ds_WL_GS_WindSetUp = GS_windsetup_reconstruction(
p_GFD_libdir,
ds_GFD_info,
ds_wind_partition,
xds_vortex_GS,
)
Results: Wind Setup Numeric Validation (Dynamic vs GS)
# Load wind setup dynamic results to compare with GS results
nc_fileID = op.join(p_TC_Dynamic_Simulations, 'ds_{0}_DynamicWindSetUp.nc'.format(TCname))
ds_WL_dynamic_WindSetUp = xr.open_dataset(nc_fileID)
Model validation
The figures below show the maps of a given time and the swath maps of wind setup resulting from dynamic simulations with the Shallow Water Equation (SWE) model Delft3D (left panels) and from the GreenSurge aproach (right panels). These figures illustrate the importance of the wind setup in shallow water areas close to shore (it reaches values up to 0.2m whithin this case) and de acuracy of the GreenSurge approach compared to dynamic simulations.
plot_GS_vs_dynamic_windsetup(
ds_WL_GS_WindSetUp, ds_WL_dynamic_WindSetUp,
storm_track,
t_num = t_num1,
vmin = -0.2,
vmax = 0.2,
);

plot_GS_vs_dynamic_windsetup(
ds_WL_GS_WindSetUp, ds_WL_dynamic_WindSetUp,
storm_track,
swath = True,
vmin = 0,
vmax = 0.3,
);

# Points timeseries for comparison
lon_obs_points = [-171.75583333, -172, -172.2]
lat_obs_points = [-13.81916667, -13.819, -13.7]
ds_WL_GS_WindSetUp
<xarray.Dataset> Dimensions: (lat: 365, lon: 654, time: 102) Coordinates: * time (time) datetime64[ns] 2012-12-11T12:00:00 ... 2012-12-15T17:00:00 * lon (lon) float64 186.7 186.7 186.7 186.7 ... 189.6 189.6 189.6 189.6 * lat (lat) float64 -14.54 -14.54 -14.53 -14.53 ... -12.91 -12.91 -12.9 Data variables: WL (time, lon, lat) float64 0.0 0.0 0.0 ... 7.437e-05 7.797e-05 land (lon, lat) float64 nan 1.0 1.0 1.0 1.0 1.0 ... nan nan nan nan nan dep (lon, lat) float32 0.0 5.962e+03 5.945e+03 ... 4.854e+03 4.851e+03
- lat: 365
- lon: 654
- time: 102
- time(time)datetime64[ns]2012-12-11T12:00:00 ... 2012-12-...
array(['2012-12-11T12:00:00.000000000', '2012-12-11T13:00:00.000000000', '2012-12-11T14:00:00.000000000', '2012-12-11T15:00:00.000000000', '2012-12-11T16:00:00.000000000', '2012-12-11T17:00:00.000000000', '2012-12-11T18:00:00.000000000', '2012-12-11T19:00:00.000000000', '2012-12-11T20:00:00.000000000', '2012-12-11T21:00:00.000000000', '2012-12-11T22:00:00.000000000', '2012-12-11T23:00:00.000000000', '2012-12-12T00:00:00.000000000', '2012-12-12T01:00:00.000000000', '2012-12-12T02:00:00.000000000', '2012-12-12T03:00:00.000000000', '2012-12-12T04:00:00.000000000', '2012-12-12T05:00:00.000000000', '2012-12-12T06:00:00.000000000', '2012-12-12T07:00:00.000000000', '2012-12-12T08:00:00.000000000', '2012-12-12T09:00:00.000000000', '2012-12-12T10:00:00.000000000', '2012-12-12T11:00:00.000000000', '2012-12-12T12:00:00.000000000', '2012-12-12T13:00:00.000000000', '2012-12-12T14:00:00.000000000', '2012-12-12T15:00:00.000000000', '2012-12-12T16:00:00.000000000', '2012-12-12T17:00:00.000000000', '2012-12-12T18:00:00.000000000', '2012-12-12T19:00:00.000000000', '2012-12-12T20:00:00.000000000', '2012-12-12T21:00:00.000000000', '2012-12-12T22:00:00.000000000', '2012-12-12T23:00:00.000000000', '2012-12-13T00:00:00.000000000', '2012-12-13T01:00:00.000000000', '2012-12-13T02:00:00.000000000', '2012-12-13T03:00:00.000000000', '2012-12-13T04:00:00.000000000', '2012-12-13T05:00:00.000000000', '2012-12-13T06:00:00.000000000', '2012-12-13T07:00:00.000000000', '2012-12-13T08:00:00.000000000', '2012-12-13T09:00:00.000000000', '2012-12-13T10:00:00.000000000', '2012-12-13T11:00:00.000000000', '2012-12-13T12:00:00.000000000', '2012-12-13T13:00:00.000000000', '2012-12-13T14:00:00.000000000', '2012-12-13T15:00:00.000000000', '2012-12-13T16:00:00.000000000', '2012-12-13T17:00:00.000000000', '2012-12-13T18:00:00.000000000', '2012-12-13T19:00:00.000000000', '2012-12-13T20:00:00.000000000', '2012-12-13T21:00:00.000000000', '2012-12-13T22:00:00.000000000', '2012-12-13T23:00:00.000000000', '2012-12-14T00:00:00.000000000', '2012-12-14T01:00:00.000000000', '2012-12-14T02:00:00.000000000', '2012-12-14T03:00:00.000000000', '2012-12-14T04:00:00.000000000', '2012-12-14T05:00:00.000000000', '2012-12-14T06:00:00.000000000', '2012-12-14T07:00:00.000000000', '2012-12-14T08:00:00.000000000', '2012-12-14T09:00:00.000000000', '2012-12-14T10:00:00.000000000', '2012-12-14T11:00:00.000000000', '2012-12-14T12:00:00.000000000', '2012-12-14T13:00:00.000000000', '2012-12-14T14:00:00.000000000', '2012-12-14T15:00:00.000000000', '2012-12-14T16:00:00.000000000', '2012-12-14T17:00:00.000000000', '2012-12-14T18:00:00.000000000', '2012-12-14T19:00:00.000000000', '2012-12-14T20:00:00.000000000', '2012-12-14T21:00:00.000000000', '2012-12-14T22:00:00.000000000', '2012-12-14T23:00:00.000000000', '2012-12-15T00:00:00.000000000', '2012-12-15T01:00:00.000000000', '2012-12-15T02:00:00.000000000', '2012-12-15T03:00:00.000000000', '2012-12-15T04:00:00.000000000', '2012-12-15T05:00:00.000000000', '2012-12-15T06:00:00.000000000', '2012-12-15T07:00:00.000000000', '2012-12-15T08:00:00.000000000', '2012-12-15T09:00:00.000000000', '2012-12-15T10:00:00.000000000', '2012-12-15T11:00:00.000000000', '2012-12-15T12:00:00.000000000', '2012-12-15T13:00:00.000000000', '2012-12-15T14:00:00.000000000', '2012-12-15T15:00:00.000000000', '2012-12-15T16:00:00.000000000', '2012-12-15T17:00:00.000000000'], dtype='datetime64[ns]')
- lon(lon)float64186.7 186.7 186.7 ... 189.6 189.6
array([186.67925, 186.68375, 186.68825, ..., 189.60875, 189.61325, 189.61775])
- lat(lat)float64-14.54 -14.54 ... -12.91 -12.9
array([-14.54225, -14.53775, -14.53325, ..., -12.91325, -12.90875, -12.90425])
- WL(time, lon, lat)float640.0 0.0 0.0 ... 7.437e-05 7.797e-05
array([[[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], ..., [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]], [[ 0.00000000e+00, 6.18943710e-08, -1.69247603e-08, ..., -2.33068776e-05, -2.33432805e-05, -2.33784554e-05], [-4.03227775e-06, -4.03227775e-06, -4.08545294e-06, ..., -3.04363027e-05, -3.04884764e-05, -3.05438236e-05], [-3.94283256e-06, -3.94283256e-06, -3.99616579e-06, ..., -3.02996181e-05, -3.03509990e-05, -3.04056555e-05], ... [ 1.21247797e-04, 1.21247797e-04, 1.21450126e-04, ..., 7.33133860e-05, 7.65694783e-05, 7.89972931e-05], [ 3.99425982e-05, 3.99425982e-05, 4.00725340e-05, ..., 8.73076089e-05, 9.14042261e-05, 9.44025362e-05], [ 4.63603163e-05, 4.63603163e-05, 4.65142098e-05, ..., 7.56551186e-05, 8.17689174e-05, 8.63058394e-05]], [[ 0.00000000e+00, 6.23507539e-05, 6.18258385e-05, ..., -1.44956619e-04, -1.46401645e-04, -1.47680893e-04], [ 3.26659452e-05, 3.26659452e-05, 3.28891643e-05, ..., -2.32600595e-04, -2.30202796e-04, -2.29274302e-04], [ 3.23882125e-05, 3.23882125e-05, 3.25422652e-05, ..., -2.34127881e-04, -2.31796600e-04, -2.30903424e-04], ..., [ 1.14095066e-04, 1.14095066e-04, 1.14240716e-04, ..., 6.69066394e-05, 7.00521462e-05, 7.22082440e-05], [ 3.76170940e-05, 3.76170940e-05, 3.78190571e-05, ..., 7.89884998e-05, 8.28762887e-05, 8.55027795e-05], [ 5.38120596e-05, 5.38120596e-05, 5.49487836e-05, ..., 6.90956101e-05, 7.43727565e-05, 7.79669485e-05]]])
- land(lon, lat)float64nan 1.0 1.0 1.0 ... nan nan nan nan
array([[nan, 1., 1., ..., 1., 1., 1.], [nan, 1., 1., ..., 1., 1., 1.], [nan, 1., 1., ..., 1., 1., 1.], ..., [nan, 1., 1., ..., 1., 1., 1.], [nan, 1., 1., ..., 1., 1., 1.], [nan, nan, nan, ..., nan, nan, nan]])
- dep(lon, lat)float320.0 5.962e+03 ... 4.851e+03
array([[ 0. , 5962.2104, 5944.981 , ..., 4541.663 , 4546.6704, 4557.582 ], [5962.2104, 5962.2104, 5948.102 , ..., 4541.663 , 4546.6704, 4557.582 ], [5959.2354, 5959.2354, 5948.102 , ..., 4535.6445, 4540.914 , 4551.9556], ..., [3595.2512, 3595.2512, 3579.1584, ..., 4889.6836, 4881.7017, 4878.172 ], [3593.5862, 3593.5862, 3578.77 , ..., 4877.728 , 4868.815 , 4865.3237], [3592.9944, 3592.9944, 3578.77 , ..., 4863.37 , 4854.0737, 4851.2812]], dtype=float32)
Model validation
The panel below shows timeseries comparison of windsetup at three given locations. These figures illustrate the acuracy of Greensurge approach compared to dynamic simulations.
plot_GS_num_validation_timeseries(
ds_WL_GS_WindSetUp, ds_WL_dynamic_WindSetUp,
lon_obs_points, lat_obs_points,
figsize = [20,7],
WLmin = -0.3,
WLmax = 0.3,
);

Inverse Barometer#
Input: Vortex presure fields
# GRID domain study
# HIGHER DEFINITION (spatial and temporal)
Alon = 0.008 # 200m
Alat = 0.008 # 200m
Nlat = int(abs(-12.5+15)/Alat)
lon = np.linspace(185.5, 190.5, int((190.5-185.5)/Alon)+1)
lat = np.linspace(-15, -12.5, int(abs(-12.5+15)/Alat)+1)
ds_grid_aux=xr.Dataset({
'lon_grid':(lon),
'lat_grid':(lat),
})
dt_comp = 20 # minutes
storm_track, time_input = historic_track_interpolation(df_TC_hist, dt_comp)
storm_track_sel = storm_track[(storm_track.index >= tini) & (storm_track.index <= tend)]
xds_vortex = vortex_model_general(storm_track_sel, ds_grid_aux)
Run and Results
ds_WL_GS_IB = presure_to_IB(xds_vortex)
plot_presure_vs_IB(
xds_vortex, ds_WL_GS_IB,
storm_track,
t_num = t_num1*int(60/dt_comp),
);

plot_presure_vs_IB(
xds_vortex, ds_WL_GS_IB,
storm_track,
swath = True,
);

Storm Surge#
Storm Surge
Finally the fourth stage sums both components, the wind setup and the pressure-induced sea level changes, to obtain the storm surge.
# Unify meshes to sum components
# base mesh
Alon = 0.002 # 200m
Alat = 0.002 # 200m
lon = np.linspace(185.5, 190.5, int((190.5-185.5)/Alon)+1)
lat = np.linspace(-15, -12.5, int(abs(-12.5+15)/Alat)+1)
ds_grid_GS = xr.Dataset({
'lon_grid':(lon),
'lat_grid':(lat),
})
# IB --> base mesh
ds_GS_IB_max = ds_WL_GS_IB.max(dim = 'time')
ds_grid_GS_IB_max = ds_GS_IB_max.interp(
lat = ds_grid_GS.lat_grid,
lon = ds_grid_GS.lon_grid,
method = "linear",
)
# Windsetup --> base mesh and higher temporal resolution
ds_GS_WindSetUp_max = ds_WL_GS_WindSetUp.max(dim = 'time')
ds_grid_GS_WindSetUp_max = ds_GS_WindSetUp_max.interp(
lat = ds_grid_GS.lat_grid,
lon = ds_grid_GS.lon_grid,
method = "linear",
kwargs = {"fill_value":0},
)
#ds_grid_GS_WindSetUp_max = ds_grid_GS_WindSetUp.interp(time=ds_grid_GS_IB.time)
# Components summation
ds_WL_GS_StormSurge_max = ds_grid_GS_IB_max.WL + ds_grid_GS_WindSetUp_max.WL
lon_lims = [min(ds_WL_GS_WindSetUp.lon.values), max(ds_WL_GS_WindSetUp.lon.values)]
lat_lims = [min(ds_WL_GS_WindSetUp.lat.values), max(ds_WL_GS_WindSetUp.lat.values)]
plot_GS_StormSurge_grafiti(
ds_WL_GS_StormSurge_max, ds_WL_GS_WindSetUp,
storm_track,
lon_lims, lat_lims,
vmin = 0,
vmax = 1.5,
);

Validation against Tidal Gauge#
# Load TG data
p_tg = op.join(p_TC_TG, 'TG_{0}_Samoa.nc'.format(TCname))
TG = xr.open_dataset(p_tg)
Model validation
The panel below shows the GreenSurge validation using Tidal Gauge data. This timeseries comparison reveals the good approximation achieved using the GreenSurge approach.
plot_GS_TG_validation_timeseries(
ds_WL_GS_WindSetUp, ds_WL_GS_IB,
ds_WL_dynamic_WindSetUp,
TG,
figsize = [20,7],
WLmin = -0.5,
WLmax = 0.5,
);

Validation for Extra TCs#
Examples
Here is the validation for some extra TC examples:
-Ofa 1990
-Val 1991
-Winston 2016
Ofa TC (1990)
Val TC (1991)
Winston TC (2016)