Storm Surge Height Estimator

ANALife Services AuthorityNational 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)

Amplification Factors:

#### Assumptions & References

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References