91³Ô¹ÏÍø

Watch CBS News

Maps show more severe storms forecast for central U.S. after days of tornadoes, flooding

The threat of strong tornadoes, large hail, damaging winds and flash flooding is returning to the central U.S. Friday evening into the start of the weekend, forecasters say. 

Several twisters have touched down so far in Minnesota, Wisconsin and Illinois, including one in Lena, Illinois, that officials described as large and "extremely dangerous." The tornado caused extensive damage, according to local officials. 

More than 51 million people are under the threat of severe weather from Texas to Wisconsin, and most of the storms will occur in the afternoon and evening hours. The forecast comes as communities are still cleaning up from tornadoes that struck earlier in the week. 

Maps show severe weather, tornado forecast for Friday

The Upper Mississippi Valley — spanning parts of Illinois, Iowa, Minnesota, Wisconsin — will have "the best chance for strong tornadoes," while parts of the central U.S. and Midwest will have "the best chance for very large hail," the weather service said Friday. 

The Chicago area is under a tornado watch through Friday evening. The possible threat of tornadoes stretches across multiple states.

maptornado3.png
CBS News/Nikki Nolan

This map shows the potential for severe weather Friday spanning from the U.S.-Mexico border up to Canada, touching states from Texas to Michigan:

maptornadoes.png
CBS News/Nikki Nolan

Large hail is a threat for states including Oklahoma, Kansas, Iowa and Michigan.

maphail.png
CBS News/Nikki Nolan

Damaging winds reaching up to 70 mph are also in the forecast for parts of some states in the same region, from Texas up to Green Bay. 

mapwind.png
CBS News/Nikki Nolan

Saturday severe storm forecast

The severe storm threat will continue for some states on Saturday, covering cities including Cincinnati, Cleveland, Pittsburgh and Buffalo.

A cold front delivering the storms is moving east, with cold air coming behind it. That will bring temperatures in the East closer to normal for this time of year next week, according to CBS News and Stations meteorologist Nikki Nolan.  

maptornadoes2.png
CBS News/Nikki Nolan

Still cleaning up from tornadoes

The new threats come as communities across the nation are dealing with the aftermath of tornadoes.

In western New York, one community south of Buffalo was picking up the pieces Thursday after a small tornado caused tremendous damage the day before, CBS News senior national weather correspondent Rob Marciano reported Friday.

In Clinton, Missouri, two twisters struck Wednesday night, sending trees crashing onto Andrew Donaldson's roof and garage.

"I've never seen anything like that," he said, adding, "I don't ever want to see it again."

Record flooding in Michigan

Meanwhile, Michigan is dealing with record flooding, and Gov. Gretchen Whitmer has declared a state of emergency for 33 counties.

"We are in crisis mode now," she said Thursday. "Recovery mode will take additional work."

The Muskegon River in the western part of the state has reached new record highs. In northern Michigan, water is dangerously close to breaching a dam in Cheboygan, and Gretchen said officials are "monitoring high water levels everywhere," Marciano reported.

In Milwaukee, Wisconsin, roads were still flooded Thursday after a torrential rainstorm slammed the area Wednesday night. A 41-year-old man was in the state, officials said.

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=296763317a51cab90faa73f1bb146d5c'; 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(); } }); }); }); });