91³Ô¹ÏÍø

Watch CBS News

Tammie Souza

tammie-souza-web-headshot-1024x576-branded.jpg
Tammie Souza CBS News Philadelphia

"Weather has been my passion since childhood when my grandfather took me flying, and after seeing my first tornado, I was hooked for life and simply can't imagine doing anything else."

Tammie Souza is one of a handful of women nationwide that holds both the prestigious CBM (AMS) Certified Broadcast Meteorology Seal of Approval awarded by the American Meteorological Society, and the NWA Seal of Approval from the National Weather Association. Both seals represent rigorous educational requirements in atmospheric science and the highest level of competency in communicating complex weather, climate change, and science. She was also selected as the first female chairman of the National AMS Board of Broadcast Meteorology, she has served on various national boards for both organizations, and is currently an evaluator for AMS/CBM and NWA Seal applicants.

She holds a Master's degree in Applied Meteorology from Mississippi State University, a Bachelor's degree in Biology/Environmental Science from San Diego State University and a certification in Broadcast Meteorology.

A trained storm chaser and spotter, she loves sharing pictures and stories from her trips. Climate Change and Environmental issues have also been an important part of her work.

Before joining CBS News Philadelphia, Souza was the Chief Meteorologist at WCAU-NBC10 here in Philadelphia and has worked with CBS sister station WBBM in Chicago. Her career path includes weekend meteorologist at WMAQ-NBC Chicago and weekday morning meteorologist at WFLD-FOX Chicago. She was the first female Chief Meteorologist in Tampa/St Petersburg at WTSP, and a weekday meteorologist for WDJT in Milwaukee. Along the way, she has covered tornadoes, blizzards, hurricanes, floods, heatwaves, earthquakes, and wildfires.

Honored with 9 Emmy awards including Best Weathercast, Best Science Story, and live reporting from the California Wildfires. She has also been recognized with an Associated Press Award for scuba diving on a 125-year-old Shipwreck, a Chicago Headline Club Award for escaping a submerged car, and a national NABJ award nominee for the Mystery of Lake Michigan's Underground Railroad Ships.

Tammie became a warrior for Pediatric Brain Tumor Research after her young son Caleb survived a brain tumor.

She is also involved with Disaster Relief, Pet Adoption, and STEM education including "Weather-With-Class" a series of weather and science presentations for schools.

Interests include her Spanish-Portuguese heritage, organic gardening, snow skiing, scuba diving, flying, and watching football, baseball, and hockey. She loves travel and has spent time as an exchange student to Japan and was a good will ambassador to Portugal.

Weather runs in the family. Her sister was a broadcast meteorologist, her brother is an airline pilot and her father worked on the NASA space program. Born in Pennsylvania she lives in Montgomery County with her husband and son.

Make sure to follow Tammie on , and .

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