Relative Humidity & Dew Point Calculator
ANA›Life Services Authority›National Calculator Authority›Relative Humidity & Dew Point Calculator
.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; } }
Relative Humidity & Dew Point Calculator
Calculate relative humidity from dry-bulb and dew point temperatures, or compute the dew point from temperature and relative humidity using the Magnus–Tetens formula.
Calculation Mode
Find Relative Humidity (from T and T_d) Find Dew Point (from T and RH)
Air Temperature (T)
°C °F K
Dew Point Temperature (T_d)
°C °F K
Air Temperature (T)
°C °F K
Relative Humidity (RH)
%
Calculate
function relToggleMode() { var mode = document.getElementById('rel-mode').value; document.getElementById('rel-mode-rh').style.display = mode === 'rh' ? '' : 'none'; document.getElementById('rel-mode-dp').style.display = mode === 'dp' ? '' : 'none'; document.getElementById('rel-result').innerHTML = ''; }
function relToC(val, unit) { if (unit === 'C') return val; if (unit === 'F') return (val - 32) * 5 / 9; if (unit === 'K') return val - 273.15; }
// Magnus formula constants (August-Roche-Magnus approximation) // Valid for -40°C to +60°C var MAGNUS_A = 17.625; var MAGNUS_B = 243.04; // °C
function satVaporPressure(tc) { // e_s(T) = 6.1078 * exp(a*T / (b+T)) [hPa] return 6.1078 * Math.exp((MAGNUS_A * tc) / (MAGNUS_B + tc)); }
function relCalc() { var res = document.getElementById('rel-result'); var mode = document.getElementById('rel-mode').value;
if (mode === 'rh') { var tRaw = parseFloat(document.getElementById('rel-temp-a').value); var tdRaw = parseFloat(document.getElementById('rel-dewp-a').value); var tUnit = document.getElementById('rel-unit-a').value; var tdUnit = document.getElementById('rel-unit-da').value;
if (isNaN(tRaw) || isNaN(tdRaw)) { res.innerHTML = '⚠ Please enter valid numbers for both temperatures.'; return; }
var T = relToC(tRaw, tUnit); var Td = relToC(tdRaw, tdUnit);
if (T 60) { res.innerHTML = '⚠ Air temperature must be between -40°C and 60°C for the Magnus formula.'; return; } if (Td 60) { res.innerHTML = '⚠ Dew point must be between -40°C and 60°C for the Magnus formula.'; return; } if (Td > T) { res.innerHTML = '⚠ Dew point temperature cannot exceed air temperature.'; return; }
var es_T = satVaporPressure(T); var es_Td = satVaporPressure(Td); var RH = (es_Td / es_T) * 100;
// Heat index (Steadman, valid when T >= 27°C and RH >= 40%) var hiNote = ''; var hiVal = null; if (T >= 27 && RH >= 40) { var HI = -8.78469475556 + 1.61139411 * T + 2.33854883889 * RH - 0.14611605 * T * RH - 0.012308094 * T * T - 0.0164248277778 * RH * RH + 0.002211732 * T * T * RH + 0.00072546 * T * RH * RH - 0.000003582 * T * T * RH * RH; hiVal = HI; hiNote = 'Heat Index' + HI.toFixed(1) + ' °C / ' + (HI*9/5+32).toFixed(1) + ' °F'; }
res.innerHTML = '### Results ' + '' + 'ParameterValue' + 'Relative Humidity (RH)' + RH.toFixed(2) + ' %' + 'Saturation Vapor Pressure at T' + es_T.toFixed(4) + ' hPa' + 'Actual Vapor Pressure (at T_d)' + es_Td.toFixed(4) + ' hPa' + 'Air Temperature' + T.toFixed(2) + ' °C / ' + (T9/5+32).toFixed(2) + ' °F' + 'Dew Point Temperature' + Td.toFixed(2) + ' °C / ' + (Td9/5+32).toFixed(2) + ' °F' + hiNote + '' + '' + relComfortLabel(RH) + '
';
} else { var tRaw2 = parseFloat(document.getElementById('rel-temp-b').value); var rhRaw = parseFloat(document.getElementById('rel-rh-b').value); var tUnit2 = document.getElementById('rel-unit-b').value;
if (isNaN(tRaw2) || isNaN(rhRaw)) { res.innerHTML = '⚠ Please enter valid numbers for temperature and relative humidity.'; return; } if (rhRaw 100) { res.innerHTML = '⚠ Relative humidity must be between 0% and 100%.'; return; }
var T2 = relToC(tRaw2, tUnit2);
if (T2 60) { res.innerHTML = '⚠ Air temperature must be between -40°C and 60°C for the Magnus formula.'; return; } if (rhRaw === 0) { res.innerHTML = '⚠ Relative humidity of 0% yields an undefined dew point.'; return; }
// Dew point via Magnus inversion: // T_d = b * [ln(RH/100) + aT/(b+T)] / [a - ln(RH/100) - aT/(b+T)] var lnRH = Math.log(rhRaw / 100); var gamma = lnRH + (MAGNUS_A * T2) / (MAGNUS_B + T2); var Td2 = (MAGNUS_B * gamma) / (MAGNUS_A - gamma);
var es_T2 = satVaporPressure(T2); var es_Td2 = satVaporPressure(Td2); var spreadC = T2 - Td2;
res.innerHTML = '### Results ' + '' + 'ParameterValue' + 'Dew Point Temperature (T_d)' + Td2.toFixed(2) + ' °C / ' + (Td29/5+32).toFixed(2) + ' °F' + 'Dew Point Depression (T − T_d)' + spreadC.toFixed(2) + ' °C' + 'Saturation Vapor Pressure at T' + es_T2.toFixed(4) + ' hPa' + 'Actual Vapor Pressure' + es_Td2.toFixed(4) + ' hPa' + 'Air Temperature' + T2.toFixed(2) + ' °C / ' + (T29/5+32).toFixed(2) + ' °F' + 'Relative Humidity' + rhRaw.toFixed(1) + ' %' + '' + '' + relComfortLabel(rhRaw) + '
'; } }
function relComfortLabel(rh) { if (rh
#### Formulas Used
Magnus–Tetens Saturation Vapor Pressure:
e_s(T) = 6.1078 × exp( a·T / (b + T) )
a = 17.625 (dimensionless) b = 243.04 °C T in °C, e_s in hPa (≡ mbar)
Relative Humidity from T and T_d:
RH = 100 × e_s(T_d) / e_s(T)
Dew Point from T and RH (Magnus inversion):
γ(T, RH) = ln(RH/100) + a·T / (b + T)
T_d = b·γ / (a − γ)
Heat Index (Steadman / Rothfusz, T ≥ 27°C, RH ≥ 40%):
HI = −8.785 + 1.611·T + 2.339·RH − 0.146·T·RH − 0.0123·T² − 0.0164·RH² + 0.00221·T²·RH + 0.000725·T·RH² − 0.00000358·T²·RH²
#### Assumptions & References
- The Magnus–Tetens formula is valid for temperatures between −40°C and +60°C and is accurate to within ±0.1% over that range.
- Constants a = 17.625 and b = 243.04°C are from Alduchov & Eskridge (1996), Journal of Applied Meteorology, 35, 601–609.
- The Heat Index regression equation is from Rothfusz (1990), NWS Technical Attachment SR 90-23, and is only valid when T ≥ 27°C (80°F) and RH ≥ 40%.
More Calculators
- Mortgage Payment Calculator
- Preventive Maintenance Schedule Calculator
- Refinance Break-Even Calculator
- Roof Lifespan and Replacement Cost Estimator
- License Renewal Deadline Calculator
- Interstate Moving Cost Estimator
- Filter Replacement Interval Calculator
- EPA 608 Certification Practice Score Estimator
- Airflow CFM Calculator — Blower and Ventilation Requirements
- HVAC System Lifespan & Replacement Cost Calculator
- Airflow CFM Calculator — Fan and Vent Sizing
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...