tsunami / tests /test_params.py
Gitdeeper4's picture
ุฑูุน ุฌู…ูŠุน ู…ู„ูุงุช TSU-WAVE ู…ุน YAML
12834b7
#!/usr/bin/env python3
"""
TSU-WAVE 7 Parameters Quick Test
"""
print("=" * 50)
print("๐Ÿ“Š TSU-WAVE 7 Parameters Test")
print("=" * 50)
# Sample values from Tohoku 2011 event
params = {
'WCC': 1.56, # Wave Front Celerity Coefficient
'KPR': 1.89, # Kinetic-to-Potential Energy Ratio
'HFSI': 0.31, # Hydrodynamic Front Stability Index
'BECF': 7.30, # Bathymetric Energy Concentration Factor
'SDB': 0.80, # Spectral Dispersion Bandwidth
'SBSP': 1.18, # Shoreline Boundary Stress Parameter
'SMVI': 0.38 # Sub-Surface Micro-Vorticity Index
}
print("\n๐Ÿ“ˆ Parameter Values and Status:")
print("-" * 40)
for name, value in params.items():
# Determine status based on thresholds
if name == 'WCC':
status = "CRITICAL" if value > 1.58 else "ALERT" if value > 1.35 else "MONITOR"
elif name == 'KPR':
status = "CRITICAL" if value > 2.0 else "ALERT" if value > 1.6 else "MONITOR"
elif name == 'HFSI':
status = "CRITICAL" if value < 0.4 else "ALERT" if value < 0.6 else "MONITOR" if value < 0.8 else "SAFE"
elif name == 'BECF':
status = "CRITICAL" if value > 6.0 else "ALERT" if value > 4.0 else "MONITOR" if value > 2.0 else "SAFE"
elif name == 'SDB':
status = "CRITICAL" if value < 1.0 else "ALERT" if value < 2.5 else "MONITOR" if value < 3.5 else "SAFE"
elif name == 'SBSP':
status = "CRITICAL" if value > 1.2 else "ALERT" if value > 0.7 else "MONITOR" if value > 0.3 else "SAFE"
elif name == 'SMVI':
status = "CRITICAL" if value > 0.6 else "ALERT" if value > 0.4 else "MONITOR" if value > 0.2 else "SAFE"
else:
status = "UNKNOWN"
print(f"{name}: {value:.2f} -> {status}")
print("-" * 40)
# Simple CHI calculation (approximate)
chi = (0.12 * min(params['WCC']/1.58, 1.0) +
0.19 * min(params['KPR']/2.0, 1.0) +
0.24 * (1 - min(params['HFSI']/1.0, 1.0)) +
0.21 * min(params['BECF']/6.0, 1.0) +
0.08 * (1 - min(params['SDB']/3.5, 1.0)) +
0.11 * min(params['SBSP']/1.2, 1.0) +
0.05 * min(params['SMVI']/0.6, 1.0))
print(f"\n๐Ÿ“Š Coastal Hazard Index (CHI): {chi:.3f}")
if chi < 0.3:
print(" Status: LOW - Monitoring")
elif chi < 0.6:
print(" Status: MODERATE - Advisory")
elif chi < 0.8:
print(" Status: HIGH - Warning")
else:
print(" Status: SEVERE - EVACUATE")
print("=" * 50)