Storm Surge Height Estimator
ANA›Life Services Authority›National Calculator Authority›Storm Surge Height Estimator
.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }
Storm Surge Height Estimator
Estimates storm surge height using the empirical SLOSH-based approach, accounting for wind speed, storm size, forward speed, approach angle, and coastal shelf slope.
Maximum Sustained Wind Speed (mph)
Radius of Maximum Winds (miles)
Storm Forward Speed (mph)
Angle of Approach to Coastline (degrees, 0=parallel, 90=perpendicular)
Continental Shelf Slope (1/x, e.g. 1000 means 1:1000)
Nearshore Water Depth (feet)
Estimate Storm Surge
function stoCalc() { const resultDiv = document.getElementById('sto-result');
const wind = parseFloat(document.getElementById('sto-wind').value); const rmax = parseFloat(document.getElementById('sto-rmax').value); const forward = parseFloat(document.getElementById('sto-forward').value); const angle = parseFloat(document.getElementById('sto-angle').value); const slope = parseFloat(document.getElementById('sto-slope').value); const depth = parseFloat(document.getElementById('sto-depth').value);
// --- Input Validation --- const errors = []; if (isNaN(wind) || wind 250) errors.push("Wind speed must be between 1 and 250 mph."); if (isNaN(rmax) || rmax 200) errors.push("Radius of maximum winds must be between 1 and 200 miles."); if (isNaN(forward) || forward 60) errors.push("Forward speed must be between 1 and 60 mph."); if (isNaN(angle) || angle 90) errors.push("Approach angle must be between 0 and 90 degrees."); if (isNaN(slope) || slope 10000) errors.push("Shelf slope denominator must be between 10 and 10000."); if (isNaN(depth) || depth 300) errors.push("Nearshore depth must be between 1 and 300 feet.");
if (errors.length > 0) { resultDiv.innerHTML = '⚠ ' + errors.join('⚠ ') + ''; resultDiv.style.display = 'block'; return; }
// --- Unit Conversions --- // Convert wind speed from mph to m/s const V_ms = wind * 0.44704;
// Convert rmax from miles to km const R_km = rmax * 1.60934;
// Convert depth from feet to meters const d_m = depth * 0.3048;
// Shelf slope as a ratio (rise/run) const S = 1.0 / slope;
// --- Core Formula --- // Storm surge height based on empirical SLOSH-derived formula: // // Step 1: Base surge from wind stress over shelf // H_base = (Cd * rho_air * V^2 * L) / (rho_water * g * d) // where L = fetch length = R_km * 1000 (meters) // Cd = drag coefficient (wind-speed dependent) // rho_air = 1.225 kg/m^3 // rho_water = 1025 kg/m^3 // g = 9.81 m/s^2 // // Step 2: Bathymetric amplification factor // A_bathy = sqrt(d_ref / d_m) where d_ref = 10 m reference depth // // Step 3: Forward speed enhancement // A_forward = 1 + 0.005 * V_forward_ms // // Step 4: Approach angle factor // A_angle = sin(angle_rad) (perpendicular = max surge) // // Step 5: Shelf slope factor // A_slope = (S_ref / S)^0.25 where S_ref = 1/1000 reference slope // Shallower slope (larger denominator) = higher surge // // Final: H_surge = H_base * A_bathy * A_forward * A_angle * A_slope
const Cd = V_ms ' + '' + H_surge_ft.toFixed(1) + ' ft' + ' (' + H_surge_m.toFixed(2) + ' m)' + '' + 'Storm Category:' + category + '' + 'Risk Level:' + '' + risk + '' + 'Base Wind Setup (H_base):' + (H_base * 3.28084).toFixed(2) + ' ft' + 'Bathymetric Factor:' + A_bathy.toFixed(3) + '' + 'Forward Speed Factor:' + A_forward.toFixed(3) + '' + 'Approach Angle Factor:' + A_angle.toFixed(3) + '' + 'Shelf Slope Factor:' + A_slope.toFixed(3) + '' + ''; resultDiv.style.display = 'block'; }
#### Formula
H_surge = H_base × A_bathy × A_forward × A_angle × A_slope
Base Wind Setup (H_base): H_base = (Cd × ρair × V2 × L) / (ρwater × g × d)
- Cd = wind drag coefficient (0.0012–0.0018, speed-dependent)
- ρair = 1.225 kg/m³, ρwater = 1025 kg/m³
Amplification Factors:
- A_bathy = √(dref / d) — shoaling amplification (dref = 10 m)
- A_forward = 1 + 0.005 × Vforward — forward speed enhancement
- A_slope = (Sref / S)0.25 — shelf slope factor (Sref = 1/1000)
#### Assumptions & References
- Drag coefficient Cd is wind-speed dependent per Large & Pond (1981): 0.0012 (<25 m/s), 0.0015 (25–50 m/s), 0.0018 (>50 m/s).
- This is an empirical estimate only. Actual surge depends on storm track, coastal geometry, tidal phase, and local topography. Use NOAA’s official SLOSH or ADCIRC models for emergency planning.
More Calculators
- Reciprocity Eligibility Calculator
- Moving Day Timeline and Labor Hours Calculator
- National Health Expenditure Per Capita Calculator
- Medical Service Wait Time Estimator
- Loan Repayment Plan Comparison Calculator
- Federal Loan Interest Rate Calculator
- Moving Container vs Full-Service Mover Cost Comparison Calculator
- Miami Tourism Seasonality Revenue Estimator
- Average Daily Rate (ADR) Calculator
- Hospitality Staff Labor Cost Calculator
- Nevada Hotel Occupancy Tax Calculator
- Nevada Liquor License Fee Estimator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...