Michigan dark-sky map — light pollution by town
Michigan has 111 towns rated for light pollution here, from its darkest — West Bloomfield Township (Bortle 5) — to its brightest city cores, with 0 rating as genuinely dark or rural sky (Bortle 4 or better). Every town is listed with the nearest measurably darker town to drive to. It also holds 4 certified International Dark Sky Places, listed below with the nearest rated town to each. Ratings are a VIIRS satellite proxy, not survey-grade sky-brightness readings.
- Towns rated
- 111
- Darkest town
- West Bloomfield Township
- Genuinely dark towns
- 0
- Certified dark-sky places
- 4
0 rate as genuinely dark or rural sky (about Bortle 4 or better).
Certified dark-sky places in Michigan
4 sites in Michigan hold an International Dark Sky Place certification — awarded for actively protecting the night sky, not measured from orbit like the town ratings below. What each designation means →
| Place | Designation | Coordinates | Nearest rated town | Distance | That town's sky |
|---|---|---|---|---|---|
| Lake Hudson State Recreation Area | Dark-sky preserve | 41.836°N, 84.242°W | Adrian | 11 mi | B7 |
| Negwegon State Park | Dark-sky preserve | 44.856°N, 83.327°W | Alpena | 15 mi | B7 |
| The Headlands | Dark Sky Park | 45.783°N, 84.783°W | Sault Ste. Marie | 53 mi | B7 |
| Thompson's Harbor State Park | Dark-sky preserve | 45.342°N, 83.568°W | Alpena | 20 mi | B7 |
All Michigan towns by darkness
Darkest sky first, each with the nearest measurably darker town to drive to. Sort or filter below.
| Sky | Nearest darker sky | |||
|---|---|---|---|---|
| West Bloomfield Township | 5 | Suburban sky | 5.4 | Caledonia, WI — B4, 230 mi |
| Norton Shores | 5 | Suburban sky | 5.6 | Caledonia, WI — B4, 88 mi |
| Farmington Hills | 5 | Suburban sky | 7.3 | Caledonia, WI — B4, 230 mi |
| Allendale | 5 | Suburban sky | 7.4 | Caledonia, WI — B4, 100 mi |
| Grosse Ile | 5 | Suburban sky | 7.9 | Caledonia, WI — B4, 250 mi |
| Walker | 6 | Bright suburban sky | 8.0 | Allendale — B5, 10 mi |
| Haslett | 6 | Bright suburban sky | 8.2 | West Bloomfield Township — B5, 53 mi |
| Burton | 6 | Bright suburban sky | 8.3 | West Bloomfield Township — B5, 32 mi |
| Portage | 6 | Bright suburban sky | 9.3 | Allendale — B5, 57 mi |
| Clinton Township | 6 | Bright suburban sky | 10 | West Bloomfield Township — B5, 24 mi |
| Troy | 6 | Bright suburban sky | 11 | West Bloomfield Township — B5, 12 mi |
| Waterford | 6 | Bright suburban sky | 11 | West Bloomfield Township — B5, 9 mi |
| Saginaw Township North | 6 | Bright suburban sky | 12 | West Bloomfield Township — B5, 69 mi |
| New Baltimore | 6 | Bright suburban sky | 14 | West Bloomfield Township — B5, 34 mi |
| East Grand Rapids | 6 | Bright suburban sky | 15 | Allendale — B5, 18 mi |
| Auburn Hills | 6 | Bright suburban sky | 15 | West Bloomfield Township — B5, 11 mi |
| Comstock Park | 6 | Bright suburban sky | 15 | Allendale — B5, 15 mi |
| Grand Haven | 6 | Bright suburban sky | 17 | Norton Shores — B5, 8 mi |
| Rochester Hills | 6 | Bright suburban sky | 17 | West Bloomfield Township — B5, 13 mi |
| Holt | 6 | Bright suburban sky | 17 | West Bloomfield Township — B5, 58 mi |
| Beecher | 6 | Bright suburban sky | 17 | West Bloomfield Township — B5, 39 mi |
| Northview | 6 | Bright suburban sky | 18 | Allendale — B5, 19 mi |
| Canton | 6 | Bright suburban sky | 18 | Farmington Hills — B5, 13 mi |
| Muskegon Heights | 6 | Bright suburban sky | 18 | Norton Shores — B5, 3 mi |
| Kentwood | 6 | Bright suburban sky | 18 | Allendale — B5, 17 mi |
| Romulus | 6 | Bright suburban sky | 18 | Grosse Ile — B5, 14 mi |
| Beverly Hills | 6 | Bright suburban sky | 19 | Farmington Hills — B5, 8 mi |
| Cadillac | 6 | Bright suburban sky | 19 | Norton Shores — B5, 86 mi |
| Okemos | 6 | Bright suburban sky | 19 | West Bloomfield Township — B5, 54 mi |
| Saint Clair Shores | 6 | Bright suburban sky | 20 | Farmington Hills — B5, 25 mi |
| Niles | 6 | Bright suburban sky | 20 | Cedar Lake, IN — B5, 69 mi |
| Fenton | 7 | Suburban / urban transition | 20 | Burton — B6, 15 mi |
| Forest Hills | 7 | Suburban / urban transition | 21 | East Grand Rapids — B6, 6 mi |
| Big Rapids | 7 | Suburban / urban transition | 23 | Cadillac — B6, 39 mi |
| South Lyon | 7 | Suburban / urban transition | 24 | Canton — B6, 14 mi |
| Traverse City | 7 | Suburban / urban transition | 24 | Cadillac — B6, 37 mi |
| Cutlerville | 7 | Suburban / urban transition | 24 | Kentwood — B6, 2 mi |
| Alpena | 7 | Suburban / urban transition | 24 | Cadillac — B6, 110 mi |
| Escanaba | 7 | Suburban / urban transition | 24 | Suamico, WI — B5, 90 mi |
| Wixom | 7 | Suburban / urban transition | 25 | West Bloomfield Township — B5, 8 mi |
| Adrian | 7 | Suburban / urban transition | 25 | Sylvania, OH — B6, 21 mi |
| Clawson | 7 | Suburban / urban transition | 25 | Beverly Hills — B6, 4 mi |
| Owosso | 7 | Suburban / urban transition | 25 | Haslett — B6, 21 mi |
| Riverview | 7 | Suburban / urban transition | 26 | Grosse Ile — B5, 4 mi |
| Midland | 7 | Suburban / urban transition | 26 | Saginaw Township North — B6, 16 mi |
| Harper Woods | 7 | Suburban / urban transition | 27 | Saint Clair Shores — B6, 5 mi |
| Berkley | 7 | Suburban / urban transition | 27 | Beverly Hills — B6, 3 mi |
| Southgate | 7 | Suburban / urban transition | 27 | Grosse Ile — B5, 6 mi |
| Muskegon | 7 | Suburban / urban transition | 28 | Muskegon Heights — B6, 2 mi |
| Saginaw | 7 | Suburban / urban transition | 28 | Saginaw Township North — B6, 4 mi |
| Coldwater | 7 | Suburban / urban transition | 28 | Portage — B6, 35 mi |
| Sault Ste. Marie | 7 | Suburban / urban transition | 29 | Cadillac — B6, 165 mi |
| Westland | 7 | Suburban / urban transition | 29 | Canton — B6, 4 mi |
| Fraser | 7 | Suburban / urban transition | 29 | Clinton Township — B6, 4 mi |
| Farmington | 7 | Suburban / urban transition | 30 | Farmington Hills — B5, 1 mi |
| Mount Pleasant | 7 | Suburban / urban transition | 30 | Saginaw Township North — B6, 39 mi |
| Port Huron | 7 | Suburban / urban transition | 30 | New Baltimore — B6, 26 mi |
| Grosse Pointe Woods | 7 | Suburban / urban transition | 31 | Saint Clair Shores — B6, 4 mi |
| Marquette | 7 | Suburban / urban transition | 31 | Suamico, WI — B5, 135 mi |
| Grosse Pointe Park | 7 | Suburban / urban transition | 31 | Saint Clair Shores — B6, 9 mi |
| Southfield | 7 | Suburban / urban transition | 32 | Beverly Hills — B6, 4 mi |
| Holland | 7 | Suburban / urban transition | 32 | Allendale — B5, 15 mi |
| Garden City | 7 | Suburban / urban transition | 32 | Canton — B6, 8 mi |
| Grandville | 7 | Suburban / urban transition | 32 | Walker — B6, 6 mi |
| Monroe | 7 | Suburban / urban transition | 32 | Grosse Ile — B5, 20 mi |
| Shelby | 7 | Suburban / urban transition | 33 | Rochester Hills — B6, 6 mi |
| Sturgis | 7 | Suburban / urban transition | 33 | Portage — B6, 29 mi |
| Trenton | 7 | Suburban / urban transition | 33 | Grosse Ile — B5, 2 mi |
| Ionia | 7 | Suburban / urban transition | 34 | Northview — B6, 27 mi |
| Ypsilanti | 7 | Suburban / urban transition | 34 | Canton — B6, 8 mi |
| Wyoming | 7 | Suburban / urban transition | 34 | Kentwood — B6, 4 mi |
| Jenison | 7 | Suburban / urban transition | 36 | Walker — B6, 7 mi |
| Allen Park | 7 | Suburban / urban transition | 36 | Grosse Ile — B5, 10 mi |
| Warren | 7 | Suburban / urban transition | 37 | Saint Clair Shores — B6, 6 mi |
| Madison Heights | 7 | Suburban / urban transition | 37 | Beverly Hills — B6, 7 mi |
| Eastpointe | 7 | Suburban / urban transition | 38 | Saint Clair Shores — B6, 4 mi |
| Taylor | 7 | Suburban / urban transition | 39 | Romulus — B6, 7 mi |
| Inkster | 7 | Suburban / urban transition | 39 | Romulus — B6, 7 mi |
| Lincoln Park | 8 | City sky | 40 | Allen Park — B7, 2 mi |
| Dearborn Heights | 8 | City sky | 41 | Garden City — B7, 3 mi |
| Melvindale | 8 | City sky | 41 | Allen Park — B7, 3 mi |
| Rochester | 8 | City sky | 42 | Rochester Hills — B6, 2 mi |
| Ferndale | 8 | City sky | 43 | Madison Heights — B7, 2 mi |
| Battle Creek | 8 | City sky | 43 | Portage — B6, 22 mi |
| Roseville | 8 | City sky | 43 | Eastpointe — B7, 2 mi |
| Waverly | 8 | City sky | 44 | Holt — B6, 9 mi |
| Redford | 8 | City sky | 45 | Garden City — B7, 4 mi |
| Woodhaven | 8 | City sky | 47 | Trenton — B7, 3 mi |
| Oak Park | 8 | City sky | 48 | Southfield — B7, 2 mi |
| Jackson | 8 | City sky | 48 | Holt — B6, 28 mi |
| Wyandotte | 8 | City sky | 49 | Southgate — B7, 2 mi |
| Birmingham | 8 | City sky | 50 | Beverly Hills — B6, 2 mi |
| Hazel Park | 8 | City sky | 50 | Madison Heights — B7, 2 mi |
| Bay City | 8 | City sky | 50 | Saginaw Township North — B6, 11 mi |
| Hamtramck | 8 | City sky | 51 | Grosse Pointe Park — B7, 6 mi |
| Livonia | 8 | City sky | 51 | Garden City — B7, 3 mi |
| Novi | 8 | City sky | 53 | Wixom — B7, 4 mi |
| Pontiac | 8 | City sky | 54 | Auburn Hills — B6, 4 mi |
| Flint | 8 | City sky | 55 | Burton — B6, 4 mi |
| Highland Park | 8 | City sky | 55 | Madison Heights — B7, 6 mi |
| Wayne | 8 | City sky | 56 | Westland — B7, 3 mi |
| Kalamazoo | 8 | City sky | 64 | Portage — B6, 6 mi |
| Sterling Heights | 8 | City sky | 65 | Fraser — B7, 5 mi |
| Mount Clemens | 8 | City sky | 70 | Clinton Township — B6, 2 mi |
| East Lansing | 8 | City sky | 72 | Okemos — B6, 3 mi |
| Royal Oak | 8 | City sky | 72 | Madison Heights — B7, 2 mi |
| Dearborn | 8 | City sky | 78 | Allen Park — B7, 5 mi |
| Ann Arbor | 8 | City sky | 86 | Ypsilanti — B7, 7 mi |
| Grand Rapids | 9 | Inner-city sky | 112 | East Grand Rapids — B6, 3 mi |
| Lansing | 9 | Inner-city sky | 145 | Waverly — B8, 3 mi |
| Detroit | 9 | Inner-city sky | 347 | Hamtramck — B8, 4 mi |
Frequently asked questions
- Where are the darkest skies in Michigan?
- The darkest town tracked here is West Bloomfield Township, but the genuinely dark skies in Michigan are its 4 certified International Dark Sky Places — Lake Hudson State Recreation Area, Negwegon State Park, The Headlands, Thompson's Harbor State Park — listed further down with the nearest rated town to each.
- How many dark-sky towns does Michigan have?
- Of 111 towns rated here, 0 rate as genuinely dark or rural sky (about Bortle 4 or better) — good for seeing the Milky Way on a clear, moonless night.
- How are these light-pollution ratings measured?
- From VIIRS 2024 annual-average satellite night-lights, sampled at each town's center and mapped to a darkness class and an estimated Bortle band. It is a satellite upward-radiance proxy for planning, not a survey-grade sky-brightness reading. See the methodology page for details.
Explore
Bortle scale · Meteor showers · Dark-sky map · Search all towns