91³Ô¹ÏÍø

Watch CBS News

Maps show Canada wildfire smoke forecast for U.S. as dozens of blazes burn out of control

Wildfire smoke from Canada is expected to move over the U.S., impacting air quality for millions of people on Friday and this weekend. Maps and satellite imagery show the large-scale impact of the blazes.

More than 90 fires out of 174 active blazes were burning "out of control" across Canada as of Thursday, according to the Canadian Interagency Forest Fire Center, forcing thousands of people to flee their homes. 

A state of emergency was in the province of Saskatchewan where over a dozen fires are raging. Earlier this week, were told to flee blazes in Manitoba, a neighboring province that borders North Dakota and Minnesota.

Satellite imagery from Thursday a massive smoke plume spanning 3,000 miles from Montana to the Atlantic. 

smoke.png
Canada wildfires have created a smoke plume stretching 3,000 miles from Montana to the Atlantic Ocean. NOAA/CIRA

Air quality alerts are covering parts of the Upper Midwest, including areas in Michigan's Upper Peninsula and northern Minnesota, as well as all of Wisconsin, . 

Air quality is expected to be "unhealthy for sensitive groups" on Friday in cities spanning from Madison, Wisconsin, to Duluth, Minnesota, according to the federal site . Air quality is forecast to be "moderate" in cities including Chicago, Minneapolis, St. Louis, Cincinnati and Detroit.

On Saturday, air quality is expected to worsen in parts of Minnesota, where it is forecast to be "unhealthy," AirNow said.

Maps show how thick the smoke is expected to be in the U.S. on Friday and Saturday.

forecast-smoke-fri-6pm.png
The wildfire smoke forecast for the U.S. on Friday, May 30, at 6 p.m. ET. CBS News
forecast-smoke-sat-6am.png
The forecast for wildfire smoke in the U.S. for Saturday, May 31, at 6 a.m. ET. CBS News
forecast-smoke-sat-6pm.png
The wildfire smoke forecast for the U.S. for Saturday, May 31, at 6 p.m. ET. CBS News

Canadian wildfire smoke led to sweeping air quality issues across the U.S. back in 2023, when hundreds of blazes were raging. Drought and record heat contributed to those fires, which in May and June that year created a record level of emissions.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=fd53910ecf4604072044ab7c46d9b028'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });