Connect with us

North Carolina

North Carolina to develop drone program to respond to natural disasters

Published

on

North Carolina to develop drone program to respond to natural disasters


RALEIGH, N.C. (WTVD) — A federal grant will help state transportation officials create a program that guides the agency’s use of drones when it responds to natural disasters like hurricanes.

The U.S. Department of Transportation announced the award of a $1.1 million grant to the N.C. Department of Transportation’s Division of Aviation on Monday.

NCDOT was one of 47 recipients nationwide to receive a grant.

“This will make us better prepared for natural disasters. With what we saw during Helene, Florence and other natural disasters, when you’re not able to use highway infrastructure to get goods and assets to an area, it seriously limits your ability to provide life-saving care and quick response to people in need,” said Nick Short, interim director of NCDOT’s Aviation Division.

Advertisement

Staff will use the grant to develop a program in which a drone can be placed in a community before a storm and then deployed remotely to start collecting images of damage and deliver emergency supplies.

While this program will be conducted in Lumberton, state aviation officials expect to evaluate the technology for disaster response deployment at other locations in North Carolina.

For more information on the federal grant program, click here.

Copyright © 2024 WTVD-TV. All Rights Reserved.



Source link

Advertisement
Continue Reading
Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

North Carolina

Major Differences in 2026 Spring Camp For NC State

Published

on

Major Differences in 2026 Spring Camp For NC State


RALEIGH — Throughout March, NC State football returned to its practice fields and began its preparations for the 2026 season. Things were very different for Dave Doeren and his staff this spring compared to a year ago for several unique reasons, but most of them were positive ones.

The Wolfpack had many different newcomers to integrate this season, both from the transfer portal and the recruiting class, but it seemed to go seamlessly in spring camp for Doeren and the coordinators. Continuity and a veteran presence helped NC State feel as though it could be in for a very successful 2026 season, potentially cracking that 10-win mark for the first time under Doeren.


No new coordinators

Advertisement

NC State defensive coordinator DJ Eliot coaches during a practice. | Courtesy of NC State Athletics

Advertisement

During the 2025 offseason, Doeren embarked on a major overhaul of his coaching staff. Defensive coordinator Tony Gibson left the Wolfpack for a head coaching position at Marshall, with DJ Eliot replacing him during the offseason. Doeren elevated quarterback coach Kurt Roper to offensive coordinator to replace Robert Anae after a rough 2024 campaign.

The changes at both coordinator spots meant spring football was a bit of a mess, with two new schemes going in and the entire team learning the new systems. The complete defensive overhaul became even more difficult due to a surplus of injuries, which shortened the roster significantly. That forced Eliot and Doeren to explore the spring transfer portal for players like Cian Slone and Sabastian Harsh. With that window gone, NC State adjusted to its new reality in 2026.

Advertisement

NC State offensive coordinator Kurt Roper watches the Wolfpack. | Courtesy of NC State Athletics

Advertisement

Eliot, Roper and Doeren all explained how much easier things were with the schemes installed this offseason, as there were enough players around from the 2025 season to teach some of the tendencies and points of emphasis on the field where the coaches can’t always communicate.

Doeren still finds himself coaching more of the basics than he did before the transfer portal era, but it’s been an easier adjustment than anticipated for the veteran head coach. It also seems to be igniting a new fire as he heads into his 14th season, something that became particularly evident when he shot down retirement rumors during the 2025 campaign.

Advertisement

Experienced transfers

NC State WR Joshisa “JoJo” Trader stretches during a practice with the Wolfpack during the spring term. | Photo credit: @joshisathe1 (X)
Advertisement

The other part of spring camp that made coaching easier for Doeren, Eliot and Roper was the fact that many of the transfers the team brought in had extensive experience already. JoJo Trader, Popo Aguirre and Chance Robinson all played for the Miami Hurricanes, contributing to varying degrees to a deep College Football Playoff run. Harvey Dyson also played in the CFP with Tulane.

Advertisement

Translating a playbook to players already accustomed to playing at a very high level is much easier than teaching it to an entirely new group, as the Wolfpack had a year ago. The hope is that those veteran players will help NC State take another step, rather than just maintaining the position they finished in at the end of the 2025 season.




Source link

Continue Reading

North Carolina

North Carolina advisory group recommends legalizing marijuana

Published

on

North Carolina advisory group recommends legalizing marijuana


North Carolina advisory group recommends legalizing marijuana for adults

Advertisement

PUMP STATION AND IS NOT INTENDED FOR PUBLIC USE. A NORTH CAROLINA STATE ADVISORY GROUP WANTS LAWMAKERS TO LEGALIZE MARIJUANA FOR ADULTS IN A TIGHTLY REGULATED SYSTEM. THE RECOMMENDATION CAME IN AN INTERIM REPORT FROM THE NORTH CAROLINA ADVISORY COUNCIL ON CANNABIS. THE GROUP SAYS LEGALIZATION FOR ADULTS 21 AND OLDER WOULD MAKE CANNABIS USE SAFER BY REPLACING UNREGULATED SALES WITH TESTED, CONTROLLED PRODUCTS. IT COULD ALSO GENERATE MILLIONS IN TAX REVENUE FOR THE STATE, ACCORDING TO THE MARIJUANA POLICY PROJECT, NORTH CAROLINA IS ONE OF A HANDFUL OF STATES THAT DO

Advertisement

North Carolina advisory group recommends legalizing marijuana for adults

Updated: 9:46 PM EDT Apr 6, 2026

Editorial Standards

Advertisement

A North Carolina state advisory group wants lawmakers to legalize marijuana for adults in a tightly regulated system.The recommendation came in an interim report from the North Carolina Advisory Council on cannabis. Officials said legalization for adults 21 and older would make cannabis use safer by replacing unregulated sales with tested, controlled products.It could generate millions in tax revenue for the state.According to the Marijuana Policy Project, North Carolina is one of a handful of states that do not allow either medical or recreational use of marijuana.Watch: NOWCAST streaming newscastsNAVIGATE: Home | Weather | Watch NOWCAST TV | Local News | National | News We Love |Keep up with the latest news and weather by downloading the WXII app here

A North Carolina state advisory group wants lawmakers to legalize marijuana for adults in a tightly regulated system.

The recommendation came in an interim report from the North Carolina Advisory Council on cannabis. Officials said legalization for adults 21 and older would make cannabis use safer by replacing unregulated sales with tested, controlled products.

Advertisement

It could generate millions in tax revenue for the state.

According to the Marijuana Policy Project, North Carolina is one of a handful of states that do not allow either medical or recreational use of marijuana.

Watch:NOWCAST streaming newscasts

Advertisement

NAVIGATE: Home | Weather | Watch NOWCAST TV | Local News | National | News We Love |

Keep up with the latest news and weather by downloading the WXII app here

Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

Advertisement

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

Advertisement

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

Advertisement

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.wxii12.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.wxii12.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

Advertisement

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

Advertisement

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

Advertisement

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

Advertisement

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

Advertisement

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.wxii12.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.wxii12.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

Advertisement

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

Advertisement

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Loading more articles…

Advertisement



Source link

Continue Reading

North Carolina

Carrie Everett, crowned Miss North Carolina in 2024, dies of stomach cancer, family says

Published

on

Carrie Everett, crowned Miss North Carolina in 2024, dies of stomach cancer, family says


Carrie Everett, who was crowned Miss North Carolina in 2024, has died of stomach cancer, family members tell WRAL News.

Everett’s parents told WRAL News their daughter died late Sunday night, asking for privacy. They shared the following statement:

“Carrie Everett transitioned on Easter Sunday with her family and friends surrounding her with love. The family is spending time together as they celebrate her memory. They ask that you continue to pray for them [and] celebrate her memory.”

Everett attended North Carolina Central University, where she majored in vocal performance. She was diagnosed with stomach cancer in July 2025, when she was 21, after scans found masses in her abdomen.

Advertisement

In March, family members posted on a GoFundMe page that Everett’s chemotherapy treatments weren’t working and shared plans to move her out of state for treatment. 

Everett spoke to WRAL News last year after the diagnosis, sharing her plans to go back to college and her dreams of becoming a gospel singer.

A year earlier, after claiming her Miss North Carolina title, she told WRAL News her parents immigrated to the United States from West Africa. Growing up, she said her family struggled with finances, and the journey to the crown was a challenging one, and many of the gowns she wore during the pageant were borrowed or from thrift stores. 

Everett was the fourth Black woman to win the title since the pageant began in 1937. She dreamed of working in girl’s education and creating accessibility for future generations.

Advertisement



Source link

Continue Reading

Trending