Connect with us

Maine

Penn State Hockey vs. UMaine Hockey Score And Live Updates – FloHockey

Published

on

Penn State Hockey vs. UMaine Hockey Score And Live Updates – FloHockey


Penn State Hockey and Maine will cap off the regional semifinals of the 2025 NCAA Hockey Tournament with a spot in the regional final for Allentown.

Maine has been a top team all season, especially in rankings. They also won the Hockey East conference to receive an automatic bid to the tournament for the 21st time in the program’s history. Taylor Makar led the team with 18 goals and 12 assists on the season.

Penn State is coming into the tournament as the hottest team after putting together an impressive second half of the season and making it to the Big Ten semifinals. Aiden Fink was a big reason for the Nittany Lions’ success, with 52 points, which is best for third in the country.

The winner will face UConn in the Allentown Regional Finals on March 30.

Advertisement

Follow along for live updates, scores, and highlights from Maine vs. Penn State, and remember to refresh for new updates.

Dowiak’s Third Goal Of The Period

Penn State 3, Maine 1

Penn State Is On Fire Right Now! – 1st 1′

Penn State 3, Maine 1

Another goal was scored in the first period for Penn State, and even after Maine’s challenge, the Nittany Lions went up 3-1.

Advertisement

Here Is A Look At The Goal

Penn State 2, Maine 1

Matt DiMarsico Gives Penn State The Lead – 1st 5′

Penn State 2, Maine 1

JJ Wiebusch goes from scoring to setting up his team with an assist to Matt DiMarsico, as Penn State is now in the lead.

Penn State With The Equalizer

Maine 1, Penn State 1

Advertisement

Goal By Taylor Makar

Maine 1, Penn State 1

Penn State Answers Right Back – 1st 14′

Maine 1, Penn State 1

Well, that didn’t take long. JJ Wiebusch quickly gets the Nittany Lions on the board and ties it up on the power play.

Advertisement

Maine Scores First – 1st 15′

Maine 1, Penn State 0

Taylor Makar scores to open things up with an early score, and the Black Bears are on top.

The Last Game Of The First Round Is Underway – 1st 20′

Maine 0, Penn State 0

Both teams are ready to get things started as the puck drops.

Penn State Fans Are Hype

Maine Is Locked In

How To Watch Maine vs. Penn State Hockey

Penn State vs. Maine hockey will be live on ESPN2 at 8:30 p.m. ET on Friday, March 28.

NCAA Hockey Tournament Bracket 2025

Here’s the NCAA Hockey Tournament regional schedule. 

Thursday, March 27

  • 2:00 p.m. ET – Boston University vs. Ohio State (ESPNU/ESPN+) – Toledo, Ohio Regional
  • 5:00 p.m. ET – No. 4 Western Michigan vs. Minnesota State (ESPNU/ESPN+) – Fargo, N.D. Regional
  • 5:30 p.m. ET – No. 2. Michigan State vs. Cornell (ESPN+) – Toledo, Ohio Regional
  • 8:30 p.m. ET – Minnesota vs. UMass (ESPN2/ESPN+) – Fargo, N.D. Regional

Friday, March 28

  • 2:00 p.m. ET – No. 1 Boston College vs. Bentley (ESPNU/ESPN+) – Manchester, N.H. Regional
  • 5:00 p.m. ET – UConn vs. Quinnipiac (ESPNU/ESPN+) – Allentown, Pa. Regional
  • 5:30 p.m. ET – Providence vs. Denver (ESPN+) – Manchester, N.H. Regional
  • 8:30 p.m. ET – No. 3 Maine vs. Penn State (ESPN2/ESPN+) – Allentown, Pa. Regional

Saturday, March 29

  • 4:00 p.m. or 6:30 p.m. ET – Fargo Regional Final (ESPNU/ESPN+)
  • 4:00 p.m. or 6:30 p.m. ET – Toledo Regional Final (ESPNU/ESPN+)

Sunday, March 30

  • 4:30 p.m. ET or 7:00 p.m. ET – Manchester Regional Final (EPN2/ESPN+)
  • 4:30 p.m. ET or 7:00 p.m. ET – Allentown Regional Final (ESPN2/ESPN+)

Frozen Four 2025 Schedule

Thursday, April 10

  • 5:00 p.m. ET – Semifinal 1 – Enterprise Center | St. Louis, Mo.
  • 8:30 p.m. ET – Semifinal 2 – Enterprise Center | St. Louis, Mo.

Frozen Four 2025 National Championship

Saturday, April 12

  • 7:30 p.m. ET – National Championship Game – Enterprise Center | St. Louis, Mo.

Penn State Hockey Roster 2025

  • 2 – Carter Schade – Jr. – D – 5′ 11” – 185 lbs
  • 3 – Casey Aman – So. – D – 6′ 0” – 185 lbs
  • 4 – Simon Mack – Sr. – D – 5′ 10” – 180 lbs
  • 6 – Jimmy Dowd Jr. – Sr. – D – 5′ 9” – 170 lbs
  • 7 – Carson Dyck – Sr. – F – 6′ 0” – 180 lbs
  • 8 – Alex Servagno – Jr. – F – 5′ 9” – 170 lbs
  • 9 – Keaton Peters – Fr. – F – 5′ 10” – 195 lbs
  • 10 – Nick Fascia – Fr. – D – 6′ 2” – 185 lbs
  • 11 – Andrew Kuzma – Fr. – F – 6′ 0” – 195 lbs
  • 12 – Ben Schoen – Sr. – F – 5′ 8” – 165 lbs
  • 13 – Danny Dzhaniyev – Sr. – F – 5′ 5” – 155 lbs
  • 14 – Matt DiMarsico – So. – F – 6′ 0” – 180 lbs
  • 15 – Charlie Cerrato – Fr. – F – 6′ 1” – 195 lbs
  • 16 – Dylan Lugris – Sr. – F – 6′ 2” – 185 lbs
  • 17 – Nicholas DeGraves – Fr. – F – 6′ 0” – 185 lbs
  • 18 – Aiden Fink – So. – F – 5′ 10” – 160 lbs
  • 19 – Dane Dowiak – So. – F – 5′ 10” – 180 lbs
  • 20 – JJ Wiebusch – Fr. – F – 6′ 1” – 180 lbs
  • 21 – Braedon Ford – Fr. – F – 5′ 10” – 175 lbs
  • 23 – Tyler Paquette – Sr. – F – 6′ 3” – 215 lbs
  • 29 – Reese Laubach – So. – F – 6′ 0” – 170 lbs
  • 30 – John Seifarth – Jr. – G – 6′ 3” – 195 lbs
  • 33 – Noah Grannan – Jr. – G – 6′ 2” – 190 lbs
  • 35 – Arsenii Sergeev – Jr. – G – 6′ 4” – 195 lbs

Maine Hockey Roster 2025

  • 3 – Luke Antonacci – Jr. – D – 5′ 8” – 172 lbs
  • 4 – Brandon Holt – Jr. – D – 5′ 11” – 181 lbs
  • 6 – Liam Lesakowski – So. – D – 6′ 5” – 225 lbs
  • 7 – Brian Morse – Fr. – D – 6′ 1” – 180 lbs
  • 11 – Charlie Russell – So. – F – 5′ 11” – 173 lbs
  • 12 – Owen Fowler – Jr. – F – 5′ 9” – 190 lbs
  • 14 – Sully Scholle – So. – F – 5′ 10” – 176 lbs
  • 15 – Brandon Chabrier – Jr. – D – 6′ 0” – 184 lbs
  • 16 – Aidan Carney – Jr. – F – 6′ 4” – 210 lbs
  • 17 – Ross Mitton – Gr. – F – 5′ 10” – 192 lbs
  • 18 – Taylor Makar – Sr. – F – 6′ 4” – 210 lbs
  • 20 – Josh Nadeau – So. – F – 5′ 8” – 170 lbs
  • 21 – Jack Dalton – So. – D – 6′ 0” – 186 lbs
  • 22 – Harrison Scott – Sr. – F – 6′ 0” – 190 lbs
  • 23 – Grayson Arnott – Jr. – D – 5′ 9” – 155 lbs
  • 24 – Nolan Renwick – Sr. – F – 6′ 3” – 215 lbs
  • 25 – Nicholas Niemo – Jr. – F – 5′ 10” – 185 lbs
  • 26 – Thomas Freel – Jr. – F – 6′ 0” – 189 lbs
  • 27 – Lynden Breen – Gr. – F – 5′ 9” – 180 lbs
  • 28 – Anthony Calafiore – So. – F – 5′ 8” – 170 lbs
  • 29 – Thomas Pichette – Fr. – F – 5′ 11” – 188 lbs
  • 30 – Albin Boija – So. – G – 6′ 1” – 195 lbs
  • 34 – Bodie Nobes – So. – D – 5′ 10” – 190 lbs
  • 35 – Gage Stewart – Fr. – G – 6′ 1” – 194 lbs
  • 37 – David Breazeale – Sr. – D – 6′ 3” – 215 lbs
  • 38 – Oskar Komarov – Fr. – F – 6′ 0” – 200 lbs
  • 39 – Patriks Berzins – Fr. – G – 6′ 1” – 170 lbs
  • 44 – Frank Djurasevic – So. – D – 6′ 2” – 201 lbs

Penn State Hockey Schedule 2025

  • Oct 5, 2024 – Penn State 4, Alaska 3 (OT)
  • Oct 6, 2024 – Penn State 5, Alaska 0
  • Oct 12, 2024 – Penn State 2, Quinnipiac 3
  • Oct 25, 2024 – Penn State 3, St. Lawrence 2
  • Oct 26, 2024 – Penn State 3, St. Lawrence 1
  • Nov 1, 2024 – Penn State 1, Minnesota 3
  • Nov 2, 2024 – Penn State 0, Minnesota 1
  • Nov 15, 2024 – Penn State 4, Wisconsin 5 (OT)
  • Nov 16, 2024 – Penn State 3, Wisconsin 6
  • Nov 22, 2024 – Penn State 5, Michigan 6
  • Nov 23, 2024 – Penn State 6, Michigan 10
  • Nov 26, 2024 – Penn State 3, Colgate 2
  • Nov 27, 2024 – Penn State 7, Colgate 1
  • Dec 5, 2024 – Penn State 0, Ohio State 4
  • Dec 6, 2024 – Penn State 2, Ohio State 4
  • Dec 12, 2024 – Penn State 4, Army 1
  • Jan 3, 2025 – Penn State 3, Notre Dame 3 (SOL)
  • Jan 5, 2025 – Penn State 3, Notre Dame 0
  • Jan 10, 2025 – Penn State 4, Michigan State 6
  • Jan 11, 2025 – Penn State 2, Michigan State 2 (SOW)
  • Jan 17, 2025 – Penn State 4, Canisius 0
  • Jan 18, 2025 – Penn State 3, Canisius 2
  • Jan 24, 2025 – Penn State 6, Ohio State 6 (SOW)
  • Jan 25, 2025 – Penn State 3, Ohio State 2 (OT)
  • Jan 31, 2025 – Penn State 5, Michigan 4
  • Feb 1, 2025 – Penn State 3, Michigan 7
  • Feb 7, 2025 – Penn State 2, Wisconsin 0
  • Feb 8, 2025 – Penn State 6, Wisconsin 2
  • Feb 14, 2025 – Penn State 5, Notre Dame 3
  • Feb 15, 2025 – Penn State 3, Notre Dame 2
  • Feb 21, 2025 – Penn State 2, Michigan State 3
  • Feb 22, 2025 – Penn State 3, Michigan State 2
  • Feb 28, 2025 – Penn State 4, Minnesota 3 (OT)
  • Mar 1, 2025 – Penn State 3, Minnesota 5
  • Mar 7, 2025 – Penn State 5, Michigan 6
  • Mar 8, 2025 – Penn State 5, Michigan 2
  • Mar 15, 2025 – Penn State 3, Ohio State 4 (OT)
  • Mar 28, 2025 – Penn State vs. Maine (Neutral, Allentown, Pa. / PPL Center)

Maine Hockey Schedule 2025

  • Oct 5, 2024 – Maine 4, Alaska 3 (OT)
  • Oct 6, 2024 – Maine 5, Alaska 0
  • Oct 12, 2024 – Maine 2, Quinnipiac 3
  • Oct 25, 2024 – Maine 3, St. Lawrence 2
  • Oct 26, 2024 – Maine 3, St. Lawrence 1
  • Nov 1, 2024 – Maine 1, Minnesota 3
  • Nov 2, 2024 – Maine 0, Minnesota 1
  • Nov 15, 2024 – Maine 4, Wisconsin 5 (OT)
  • Nov 16, 2024 – Maine 3, Wisconsin 6
  • Nov 22, 2024 – Maine 5, Michigan 6
  • Nov 23, 2024 – Maine 6, Michigan 10
  • Nov 26, 2024 – Maine 3, Colgate 2
  • Nov 27, 2024 – Maine 7, Colgate 1
  • Dec 5, 2024 – Maine 0, Ohio State 4
  • Dec 6, 2024 – Maine 2, Ohio State 4
  • Dec 12, 2024 – Maine 4, Army 1
  • Jan 3, 2025 – Maine 3, Notre Dame 3 (SOL)
  • Jan 5, 2025 – Maine 3, Notre Dame 0
  • Jan 10, 2025 – Maine 4, Michigan State 6
  • Jan 11, 2025 – Maine 2, Michigan State 2 (SOW)
  • Jan 17, 2025 – Maine 4, Canisius 0
  • Jan 18, 2025 – Maine 3, Canisius 2
  • Jan 24, 2025 – Maine 6, Ohio State 6 (SOW)
  • Jan 25, 2025 – Maine 3, Ohio State 2 (OT)
  • Jan 31, 2025 – Maine 5, Michigan 4
  • Feb 1, 2025 – Maine 3, Michigan 7
  • Feb 7, 2025 – Maine 2, Wisconsin 0
  • Feb 8, 2025 – Maine 6, Wisconsin 2
  • Feb 14, 2025 – Maine 5, Notre Dame 3
  • Feb 15, 2025 – Maine 3, Notre Dame 2
  • Feb 21, 2025 – Maine 2, Michigan State 3
  • Feb 22, 2025 – Maine 3, Michigan State 2
  • Feb 28, 2025 – Maine 4, Minnesota 3 (OT)
  • Mar 1, 2025 – Maine 3, Minnesota 5
  • Mar 7, 2025 – Maine 5, Michigan 6
  • Mar 8, 2025 – Maine 5, Michigan 2
  • Mar 15, 2025 – Maine 3, Ohio State 4 (OT)
  • Mar 28, 2025 – Maine vs. Penn State (Neutral, Allentown, Pa.)

Penn State Hockey Game Today

Penn State hockey takes on UMaine today, March 28, in the NCAA Men’s Hockey Tournament. Follow along for live updates from the game.

Where is the 2025 Men’s Frozen Four?

St. Louis will host the 2025 NCAA Men’s Frozen Four at Enterprise Center, the home of the NHL’s St. Louis Blues.

Advertisement

How Does The NCAA Hockey Tournament Work?

  • At the beginning of the tournament, teams will compete across four regional sites in single-elimination games, with four teams standing at the end.
  • There are two games in the regional semifinals between these teams for a chance at the regional finals.
  • The winners of the four sites will then advance to the Frozen Four in St. Louis, MO.
  • From there, the two winners will compete for the grand prize in a national championship.

Watch AHL, ECHL, USHL And More On FloHockey

FloHockey is the streaming home to some of the best hockey leagues in North America, including the AHL, ECHL and more. Check out the broadcast schedule to watch more hockey.

NHL Prospect Coverage On FloHockey

The best, and most complete coverage of the NHL minor league hockey and NHL Draft is found on FloHockey. Don’t miss the latest new prospect guides, rankings and more from Chris Peters and the FloHockey staff.

Join The Hockey Conversation On FloHockey Social





Source link

Maine

Meet the 10 central Maine softball players to watch in 2026

Published

on

Meet the 10 central Maine softball players to watch in 2026


Monmouth Academy’s Riley Smith slides into home plate during the Mustangs’ 4-0 win over Madison on May 26, 2025, in Monmouth. (Andree Kehn/Staff Photographer)

Ashley Shores, Lawrence senior utility: Shores is the reigning Kennebec Valley Athletic Conference Class B Player of the Year. She can play first base, the outfield and pitch, but will likely spend the bulk of her season behind the plate, guiding freshman starter Alea Williams.

Bella Loubier, Winslow junior catcher: A KVAC Class B second-team selection last season, Loubier is the top returner on a team that coaches believe could be a surprise in Class C North. She will be the leader of a young but talented squad under coach Michael Savage.

Hallie Coots, Nokomis junior utility: Coots was asked to wear many different hats as a sophomore for a young Warriors team, included time as both a pitcher and a catcher. She handled the duties well, earning KVAC B second-team honors. Now a junior, she’ll be a trusted veteran voice who will, once again, be asked to handle a variety of duties.

Advertisement

Kelsie Dunn, Erskine Academy junior pitcher: A KVAC Class B second-team selection last year, Dunn helped lead the Eagles to a Class B quarterfinal appearance. She’ll once again be the leader in the circle for a team that enters the new season with most of last season’s roster intact, creating higher expectations.

Lilly Clark, Erskine Academy senior shortstop: A multi-sport athlete, Clark is a captain who will be counted on to help the Eagles take another step forward. She was a KVAC Class B first-team selection last year.

Lydia Jones, Skowhegan senior infielder: A longtime starter for the River Hawks, Jones was a KVAC Class A second-team selection last season, helping guide a young roster to the North playoffs. She’ll again be relied on to guide a young but more experienced team.

Maddie Provost, Lawrence senior infielder: The Miss Maine Basketball and Varsity Maine Girls Basketball Player of the Year who will continue her career on the hardwood at Division I Holy Cross next season, Provost decided to wrap up her high school athletic career on the diamond, although she hadn’t played softball since middle school. Coach Joey Marcoux believes Provost will start the season at third base. Her athleticism and speed will be an immediate asset in the lineup.

Molly Takatsu, Gardiner sophomore infielder/pitcher: Takatsu produced quickly as a freshman last season and was rewarded with KVAC Class B second-team honors. She’ll be one of the top returning players for a team that once again carries three strong pitchers and will be fast on defense and on the basepaths.

Advertisement

Raegan King, Nokomis senior shortstop/center fielder: A strong athlete who will continue her softball career at Husson University, King has been a long-time contributor to the Warriors’ lineup with her bat, speed and positional flexibility. She’s the top returner for a squad that should make another strong run in the Class B North playoffs. She earned KVAC Class B first-team honors last season.

Riley Smith, Monmouth Academy senior outfielder: A Mountain Valley Conference first-team selection last season, Smith is an experienced outfielder who is an asset both at the plate and in the field. She’ll be a key contributor for the Mustangs, who should be a contender in the Class C South playoffs.



Source link

Advertisement
Continue Reading

Maine

Program doubles enrollment, expands to more Maine schools

Published

on

Program doubles enrollment, expands to more Maine schools


Central Maine Power is expanding its Union Trade Internship Program in 2026, increasing opportunities for Maine high school students to gain hands-on experience in the electric utility industry.

Advertisement

A sign for Central Maine Power, a subsidiary of Avangrid

Advertisement

CMP expands union trade internship program for Maine students

Advertisement

Central Maine Power is expanding its Union Trade Internship Program in 2026, increasing opportunities for Maine high school students to gain hands-on experience in the electric utility industry.

WMTW logo

Updated: 11:47 AM EDT Apr 14, 2026

Editorial Standards

Advertisement

Central Maine Power is expanding its Union Trade Internship Program in 2026, increasing opportunities for Maine high school students to gain hands-on experience in the electric utility industry.Now in its second year, the 10-week paid program will double enrollment, expand to additional schools in central and southern Maine, and broaden training to include both line and substation operations. The program will serve 10 students ages 16 and older, selected through a competitive recruitment and interview process in partnership with participating schools.The internship runs from June to August and includes classroom instruction at CMP’s training center in Farmingdale, along with supervised field experience alongside union crews. Students will learn foundational skills such as pole climbing, bucket truck operation, breaker and transformer maintenance, and the safe use of tools and protective equipment. Participants will not work on live electrical wires.The program is aimed at strengthening the workforce pipeline for skilled trades while giving students early exposure to careers in the energy sector and supporting partnerships between CMP and Maine schools.

Central Maine Power is expanding its Union Trade Internship Program in 2026, increasing opportunities for Maine high school students to gain hands-on experience in the electric utility industry.

Now in its second year, the 10-week paid program will double enrollment, expand to additional schools in central and southern Maine, and broaden training to include both line and substation operations. The program will serve 10 students ages 16 and older, selected through a competitive recruitment and interview process in partnership with participating schools.

Advertisement

The internship runs from June to August and includes classroom instruction at CMP’s training center in Farmingdale, along with supervised field experience alongside union crews. Students will learn foundational skills such as pole climbing, bucket truck operation, breaker and transformer maintenance, and the safe use of tools and protective equipment. Participants will not work on live electrical wires.

The program is aimed at strengthening the workforce pipeline for skilled trades while giving students early exposure to careers in the energy sector and supporting partnerships between CMP and Maine schools.

Advertisement

`;
}

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’;

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

Advertisement

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

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;

Advertisement

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;

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.wmtw.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.wmtw.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 || ”;

Advertisement

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

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

Advertisement

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

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

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’;

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’);

Advertisement

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

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) {}

Advertisement

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;

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.wmtw.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.wmtw.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);
}
}
}
}

Advertisement

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

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

Advertisement

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

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

Advertisement

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…



Source link

Continue Reading

Maine

Carbon removal project supports Maine’s blue economy, broader marine health

Published

on

Carbon removal project supports Maine’s blue economy, broader marine health


Oceans absorb roughly 25 to 30 percent of the carbon dioxide (CO2) that is released into the atmosphere. When this CO2 dissolves in seawater, it forms carbonic acid, making the water more acidic and altering its chemistry. Elevated levels of acidity are harmful to marine life like corals, oysters, and certain plankton that rely on calcium carbonate to build shells and skeletons.

“As the oceans absorb more CO2, the chemistry shifts — increasing bicarbonate while reducing carbonate ion availability — which means shellfish have less carbonate to form shells,” explains Kripa Varanasi, professor of mechanical engineering at MIT. “These changes can propagate through marine ecosystems, affecting organism health and, over time, broader food webs.”

Loss of shellfish can lead to water quality decline, coastal erosion, and other ecosystem disruptions, including significant economic consequences for coastal communities. “The U.S. has such an extensive coastline, and shellfish aquaculture is globally valued at roughly $60 billion,” says Varanasi. “With the right innovations, there is a substantial opportunity to expand domestic production.”

“One might think, ‘this [depletion] could happen in 100 years or something,’ but what we’re finding is that they are already affecting hatcheries and coastal systems today,” he adds. “Without intervention, these trends could significantly alter marine ecosystems and the coastal economies that rely on them over time.”

Advertisement

Varanasi and T. Alan Hatton, the Ralph Landau Professor of Chemical Engineering, Post-Tenure, at MIT, have been collaborating for years to develop methods for removing carbon dioxide from seawater and turn acidic water back to alkaline. In recent years, they’ve partnered with researchers at the University of Maine Darling Marine Center to deploy the method in hatcheries.

“The way we farm oysters, we spawn them in special tanks and rear them through about a two-week larval period … until they’re big enough so that they can be transferred out into the river as the water warms up,” explains Bill Mook, founder of Mook Sea Farm. Around 2009, he noticed problems with production of early-stage larvae. “It was a catastrophe. We lost several hundred thousand dollars’ worth of production,” he says.

Ultimately, the problem was identified as the low pH of the water that was being brought in: The water was too acidic. The farm’s initial strategy, a common practice in oyster farming, was to buffer the water by adding sodium bicarbonate. The new approach avoids the use of chemicals or minerals.

“A lot of researchers are studying direct air capture, but very few are working in the ocean-capture space,” explains Hatton. “Our approach is to use electricity, in an electrochemical manner, rather than add chemicals to manipulate the solution pH.”

Advertisement

The method uses reactive electrodes to release protons into seawater that is collected and fed into the cells, driving the release of the dissolved carbon dioxide from the water. The cyclic process acidifies the water to convert dissolved inorganic bicarbonates to molecular carbon dioxide, which is collected as a gas under vacuum. The water is then fed to a second set of cells with a reversed voltage to recover the protons and turn the acidic water back to alkaline before releasing it back to the sea.

Maine’s Damariscotta River Estuary, where Mook farms is located, provides about 70 percent of the state’s oyster crop. Damian Brady, a professor of oceanography based at the University of Maine and key collaborator on the project, says the Damariscotta community has “grown into an oyster-producing powerhouse … [that is] not only part of the economy, but part of the culture.” He adds, “there’s actually a huge amount that we could learn if we couple the engineering at MIT with the aquaculture science here at the University of Maine.”

“The scientific underpinning of our hypothesis was that these bivalve shellfish, including oysters, need calcium carbonate in order to form their shells,” says Simon Rufer PhD ’25, a former student in Varanasi’s lab and now CEO and co-founder of CoFlo Medical. “By alkalizing the water, we actually make it easier for the oysters to form and maintain their shells.”

In trials conducted by the team, results first showed that the approach is biocompatible and doesn’t kill the larvae, and later showed that the oysters treated by MIT’s buffer approach did better than mineral or chemical approaches. Importantly, Hatton also notes, the process creates no waste products. Ocean water goes in, CO2 comes out. This captured CO2 can potentially be used for other applications, including to grow algae to be used as food for shellfish.

Varanasi and Hatton first introduced their approach in 2023. Their most recent paper, “Thermodynamics of Electrochemical Marine Inorganic Carbon Removal,” which was published last year in journal Environmental Science & Technology, outlines the overall thermodynamics of the process and presents a design tool to compare different carbon removal processes. The team received a “plus-up award” from ARPA-E to collaborate with University of Maine and further develop and scale the technology for application in aquaculture environments.

Advertisement

Brady says the project represents another avenue for aquaculture to contribute to climate change mitigation and adaptation. “It pushes a new technology for removing carbon dioxide from ocean environments forward simultaneously,” says Brady. “If they can be coupled, aquaculture and carbon dioxide removal improve each other’s bottom line.”

Through the collaboration, the team is improving the robustness of the cells and learning about their function in real ocean environments. The project aims to scale up the technology, and to have significant impact on climate and the environment, but it includes another big focus.

“It’s also about jobs,” says Varanasi. “It’s about supporting the local economy and coastal communities who rely on aquaculture for their livelihood. We could usher in a whole new resilient blue economy. We think that this is only the beginning. What we have developed can really be scaled.”

Mook says the work is very much an applied science, “[and] because it’s applied science, it means that we benefit hugely from being connected and plugged into academic institutions that are doing research very relevant to our livelihoods. Without science, we don’t have a prayer of continuing this industry.”

Advertisement



Source link

Continue Reading

Trending