South Dakota, 2025

Damaging Winds in South Dakota, June 29, 2025

June 29, 2025 · NWS ABR · 8 events in 4 counties and zones

Thunderstorms during the early morning hours of June 29th produced multiple wind gust observations in excess of 60 mph. A peak wind gusts of 70 mph was measured by the South Dakota Department of Transportation mesonet station near Stephan, and a South Dakota State University station near Highmore would observe a peak gust of 69 mph.

Where it happened

Every event with a place to put it. Tap one for its entry below.

  • Tornadoes
  • Tropical storms and surge
  • Floods
  • Wind
  • Hail
  • Winter weather
  • Heat and drought
  • Cold
  • Fire, smoke and dust
  • Marine and coastal
  • Other

Open the live radar over this ground

The toll

Deaths
0
Injuries
0
Property damage
None recorded
Crop damage
None recorded
Events
8

Deaths and injuries are direct and indirect together, as the offices filed them. Damage is property and crops in the dollars of the year, not adjusted for inflation, and only where an office estimated it.

What happened

The episode as NWS ABR wrote it up.

Thunderstorms during the early morning hours of June 29th produced multiple wind gust observations in excess of 60 mph. A peak wind gusts of 70 mph was measured by the South Dakota Department of Transportation mesonet station near Stephan, and a South Dakota State University station near Highmore would observe a peak gust of 69 mph.

What forecasters said that day

The local office's own words before the first event, as it sent them, from the Iowa Environmental Mesonet's archive of National Weather Service text.

NWS Aberdeen, SD wrote its last area forecast discussion before the first event at Jun 29, 3:40 AM CST, 29 minutes earlier.

Area forecast discussion, Jun 29, 3:40 AM CST, 29 minutes before
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Service Notice</title>
  <link rel="stylesheet" href="index.css">
</head>
<body>
  <main class="wrap">
    <section class="card" role="status" aria-live="polite">
      <div class="status" id="status">Temporary Notice</div>
      <h1 id="headline">This service is currently unavailable.</h1>
      <p id="message1">
        The site you requested is temporarily down for maintenance or an unexpected outage.
      </p>
      <p id="message2">
        Please try again in a few minutes.
      </p>
      <p class="small" id="detail">
        If you are an administrator, restore upstream service and remove the redirect/fallback rule when normal operations resume.
      </p>
    </section>
  </main>
  <script src="index.js"></script>
</body>
</html>
Hazardous weather outlook, Jun 29, 4:06 AM CST, 3 minutes before
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Service Notice</title>
  <link rel="stylesheet" href="index.css">
</head>
<body>
  <main class="wrap">
    <section class="card" role="status" aria-live="polite">
      <div class="status" id="status">Temporary Notice</div>
      <h1 id="headline">This service is currently unavailable.</h1>
      <p id="message1">
        The site you requested is temporarily down for maintenance or an unexpected outage.
      </p>
      <p id="message2">
        Please try again in a few minutes.
      </p>
      <p class="small" id="detail">
        If you are an administrator, restore upstream service and remove the redirect/fallback rule when normal operations resume.
      </p>
    </section>
  </main>
  <script src="index.js"></script>
</body>
</html>

In the hours before

Local storm report, Jun 28, 10:48 PM CST, 5 hours 21 minutes before
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Service Notice</title>
  <link rel="stylesheet" href="index.css">
</head>
<body>
  <main class="wrap">
    <section class="card" role="status" aria-live="polite">
      <div class="status" id="status">Temporary Notice</div>
      <h1 id="headline">This service is currently unavailable.</h1>
      <p id="message1">
        The site you requested is temporarily down for maintenance or an unexpected outage.
      </p>
      <p id="message2">
        Please try again in a few minutes.
      </p>
      <p class="small" id="detail">
        If you are an administrator, restore upstream service and remove the redirect/fallback rule when normal operations resume.
      </p>
    </section>
  </main>
  <script src="index.js"></script>
</body>
</html>
Special weather statement, Jun 29, 2:55 AM CST, 1 hour 14 minutes before
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Service Notice</title>
  <link rel="stylesheet" href="index.css">
</head>
<body>
  <main class="wrap">
    <section class="card" role="status" aria-live="polite">
      <div class="status" id="status">Temporary Notice</div>
      <h1 id="headline">This service is currently unavailable.</h1>
      <p id="message1">
        The site you requested is temporarily down for maintenance or an unexpected outage.
      </p>
      <p id="message2">
        Please try again in a few minutes.
      </p>
      <p class="small" id="detail">
        If you are an administrator, restore upstream service and remove the redirect/fallback rule when normal operations resume.
      </p>
    </section>
  </main>
  <script src="index.js"></script>
</body>
</html>
Special weather statement, Jun 29, 3:37 AM CST, 32 minutes before
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Service Notice</title>
  <link rel="stylesheet" href="index.css">
</head>
<body>
  <main class="wrap">
    <section class="card" role="status" aria-live="polite">
      <div class="status" id="status">Temporary Notice</div>
      <h1 id="headline">This service is currently unavailable.</h1>
      <p id="message1">
        The site you requested is temporarily down for maintenance or an unexpected outage.
      </p>
      <p id="message2">
        Please try again in a few minutes.
      </p>
      <p class="small" id="detail">
        If you are an administrator, restore upstream service and remove the redirect/fallback rule when normal operations resume.
      </p>
    </section>
  </main>
  <script src="index.js"></script>
</body>
</html>
Special weather statement, Jun 29, 4:00 AM CST, 9 minutes before
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Service Notice</title>
  <link rel="stylesheet" href="index.css">
</head>
<body>
  <main class="wrap">
    <section class="card" role="status" aria-live="polite">
      <div class="status" id="status">Temporary Notice</div>
      <h1 id="headline">This service is currently unavailable.</h1>
      <p id="message1">
        The site you requested is temporarily down for maintenance or an unexpected outage.
      </p>
      <p id="message2">
        Please try again in a few minutes.
      </p>
      <p class="small" id="detail">
        If you are an administrator, restore upstream service and remove the redirect/fallback rule when normal operations resume.
      </p>
    </section>
  </main>
  <script src="index.js"></script>
</body>
</html>

The radar

The Aberdeen radar (KABR), 145 km away, was scanning. The volume nearest the first event began at 10:07 UTC.

Open the radar archive at this moment

Event by event

8 thunderstorm wind. Local standard time, as filed.

Thunderstorm Wind, Hughes

When
June 29, 4:09 AM CST
Where
Hughes County, 0.49 mi E of Harrold Arpt
Measured
58 kt (67 mph) measured gust
Reported by
Mesonet
Coordinates
44.530, -99.720

Thunderstorm Wind, Hyde

When
June 29, 4:14 AM CST
Where
Hyde County, 1.2 mi NW of Holabird
Measured
56 kt (64 mph) measured gust
Reported by
Mesonet
Coordinates
44.530, -99.600

Thunderstorm Wind, Hyde

When
June 29, 4:30 AM CST
Where
Hyde County, 1.48 mi W of Highmore Arpt
Measured
60 kt (69 mph) measured gust
Reported by
Mesonet
Coordinates
44.530, -99.460

Thunderstorm Wind, Hyde

When
June 29, 4:37 AM CST
Where
Hyde County, 0.85 mi NE of Stephan
Measured
56 kt (64 mph) measured gust
Reported by
Mesonet
Coordinates
44.260, -99.440

Thunderstorm Wind, Hyde

When
June 29, 4:48 AM CST
Where
Hyde County, 0.85 mi NE of Stephan
Measured
61 kt (70 mph) measured gust
Reported by
Mesonet
Coordinates
44.260, -99.440

Thunderstorm Wind, Hand

When
June 29, 4:49 AM CST
Where
Hand County, 0.69 mi N of Ree Hgts
Measured
50 kt (58 mph) measured gust
Reported by
Mesonet
Coordinates
44.530, -99.200

Thunderstorm Wind, Buffalo

When
June 29, 4:53 AM CST
Where
Buffalo County, 3.49 mi N of Gann Vly
Measured
55 kt (63 mph) measured gust
Reported by
Mesonet
Coordinates
44.080, -98.990

Thunderstorm Wind, Buffalo

When
June 29, 5:04 AM CST
Where
Buffalo County, 5.38 mi ENE of Ft Thompson
Measured
50 kt (58 mph) measured gust
Reported by
Mesonet
Coordinates
44.080, -99.330

What these are

Thunderstorm Wind
Winds from a thunderstorm of 50 knots (58 mph) or more, or lower winds that caused damage or casualties. Measured gusts are marked MG, estimated EG.

After NWS Directive 10-1605, the rules offices file Storm Data by.

The same day elsewhere

More

Every storm in South Dakota in 2025Every state in 2025This day in weather historyWarnings in South Dakota, June 2025

Sources

NOAA National Centers for Environmental Information, Storm Events Database, compiled from the National Weather Service’s monthly Storm Data. Complete through 2026-06; NCEI adds each month about 75 days after it ends and revises past years a few times a year. Rebuilt 2026-09-30. Each event’s entry at NCEI: 1275279, 1275280, 1275281, 1275282, 1275283, 1275286, 1275284, 1275287.