Snow Forecast

Winter Park Snow & Weather

Live forecast
51°F
Partly Cloudy
Winter Park, CO · Tonight
Next 24 hours
0"
Next 3 days
0"
Friday
79° / 51°
Mostly Sunny then Chance Showers And Thunderstorms
28% precip
Saturday
75° / 50°
Partly Sunny then Showers And Thunderstorms
76% precip
Sunday
72° / 50°
Mostly Sunny then Chance Showers And Thunderstorms
54% precip
Monday
72° / 48°
Partly Sunny then Showers And Thunderstorms Likely
57% precip
Tuesday
71° / 47°
Slight Chance Rain Showers then Showers And Thunderstorms Likely
57% precip
Wednesday
72° / 47°
Mostly Sunny then Chance Showers And Thunderstorms
38% precip
Thursday
72°
Slight Chance Rain Showers then Chance Showers And Thunderstorms
44% precip
Source: U.S. National Weather Service · weather.gov Updated Aug 20, 9:27 PM
{ICND:SCRIPT_BEGIN contenteditable="true" data-click="true"} (function(){ /* ---- EDIT THESE to change location ---- */ var LAT = 39.8869, LON = -105.7625, PLACE = "Winter Park, CO"; /* --------------------------------------- */ var body = document.getElementById('sv-snow-body'); var updEl = document.getElementById('sv-snow-updated'); var NS = 'https://www.w3.org/2000/svg'; function icon(text, isDay){ var t = (text||'').toLowerCase(), k='partly'; if(/snow|flurr|blizzard|wintry|sleet|ice|freezing/.test(t)) k='snow'; else if(/thunder|t-storm|tstorm/.test(t)) k='storm'; else if(/rain|shower|drizzle/.test(t)) k='rain'; else if(/fog|haze|smoke|mist/.test(t)) k='fog'; else if(/overcast|mostly cloudy|cloudy/.test(t)) k='cloud'; else if(/sunny|clear|fair/.test(t)) k=(t.indexOf('partly')>=0||t.indexOf('mostly sunny')>=0)?'partly':'sun'; else if(/partly|mostly/.test(t)) k='partly'; var P = { sun:' ', partly:' ', cloud:'', rain:' ', snow:' ', storm:' ', fog:' ' }; return ''; } function toInches(uom, v){ if(v==null) return 0; if(!uom) return v/25.4; // assume mm if(uom.indexOf('cm')>=0) return v/2.54; if(/(:|\b)m$/.test(uom)) return v*39.3701; // meters return v/25.4; // mm (default) } function snowInWindow(grid, hours){ try{ var s = grid.properties.snowfallAmount; if(!s || !s.values) return null; var now = Date.now(), end = now + hours*3600*1000, mm=0, uom=s.uom; s.values.forEach(function(x){ var start = new Date(x.validTime.split('/')[0]).getTime(); if(start < end && start > now - 3600*1000) mm += toInches(uom, x.value); }); return mm; }catch(e){ return null; } } function fmtIn(v){ if(v==null) return null; if(v < 0.05) return '0"'; return (v<10 ? v.toFixed(1) : Math.round(v)) + '"'; } function esc(s){ return (s||'').replace(/[&<>]/g,function(c){return {'&':'&','<':'<','>':'>'}[c];}); } function render(periods, grid){ var cur = periods[0]; var s24 = snowInWindow(grid, 24), s72 = snowInWindow(grid, 72); var haveSnow = s24 !== null || s72 !== null; // build day cards (daytime periods, paired with following night for low) var days = ''; var count = 0; for(var i=0; i❄ ' +esc(snowM[1].replace(/\s+possible.*/i,'').trim())+'' : '' ; days +='
' + '
' +esc(p.name.replace('This ','').replace(' Afternoon','Today'))+'
' + '
'+icon(p.shortForecast, true)+'
' + '
'+p.temperature+'°'+(lo!=null?' / '+lo+'°':'')+'
' + '
'+esc(p.shortForecast)+'
' + (pop!=null && pop>0 ? '
'+pop+'% precip
' : '') + badge + '
'; count++; } var tiles = haveSnow ? ( '
' + '
Next 24 hours
'+(fmtIn(s24)||'0"')+'
' + '
Next 3 days
'+(fmtIn(s72)||'0"')+'
' + '
' ) : '
Snowfall
No snow in the forecast
'; body.innerHTML = '
' + '
' + '
'+icon(cur.shortForecast, cur.isDaytime)+'
' + '
'+cur.temperature+'°'+cur.temperatureUnit+'
' + '
'+esc(cur.shortForecast)+'
' + '
'+esc(PLACE)+' · '+esc(cur.name)+'
' + '
' + tiles + '
' + '
'+days+'
'; var now = new Date(); updEl.textContent = 'Updated ' + now.toLocaleString('en-US',{month:'short',day:'numeric',hour:'numeric',minute:'2-digit'}); } function fail(){ body.innerHTML = '
Live forecast is unavailable right now. ' + 'See the latest at OpenSnow ' + 'or weather.gov.
'; } function getJSON(url){ return fetch(url, { headers:{ 'Accept':'application/geo+json' } }) .then(function(r){ if(!r.ok) throw new Error(r.status); return r.json(); }); } function load(){ getJSON('https://api.weather.gov/points/'+LAT+','+LON) .then(function(pts){ var fURL = pts.properties.forecast, gURL = pts.properties.forecastGridData; return Promise.all([ getJSON(fURL), getJSON(gURL).catch(function(){ return { properties:{} }; }) ]); }) .then(function(res){ render(res[0].properties.periods, res[1]); }) .catch(fail); } load(); setInterval(load, 30*60*1000); // refresh every 30 min })();