91³Ô¹ÏÍø

Watch CBS News

Storm chaser captures video of tornado in southern Minnesota

Most people run to their basement during severe weather, but Melanie Metz instead runs toward the storm.

The National Weather Service confirms three tornadoes hit southern Minnesota Monday night in Amboy, Matawan and Elmore. That's on top of dozens of hail reports and even some gusts of wind nearing 60 MPH in southern parts of the state. 

The weather allowed Champlin based meteorologist and storm chaser Metz to capture some seriously captivating footage. Metz has been chasing storms for 25 years.

"I can't believe it, honestly. I mean, that's a long time when I started chasing it was before we even had smartphones, so I couldn't see radar when I was on the road. It's been a long time," she said.

Monday night, her vantage point was from Truman, Minnesota — near Fairmont. She met up with a fellow meteorologist and friend to stake out the storm. She captured some incredible videos, including one which depicted an intact, super cell tornado. Metz believes it the tornado NWS pegged in Amboy. 

"We ended up chasing this storm for quite a while until it finally started to organize and became a supercell and produced a couple of tornadoes right in front of us," she said.

Metz says the chase is thrilling, fascinating and combines her love of storms and photography. But—it's not something to try without experience.

"There's so much passion and excitement and energy in it, it's also very dangerous, and we have to remember that, because we can tend to forget that, especially now, with just so much video out there, tornadoes and people trying to get really close, it's important to remember how dangerous it can be," Metz said. "If you get in just the wrong spot, it can happen quickly."

Metz describes Monday night's storms as "potent" and "explosive." She says this kind of weather is typical in Iowa and Kansas this time of year, but it's a bit unusual for Minnesota in April.

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