Are the coral reefs near me heading for a bleaching summer?
Draw a rectangle to pick your area of interest, then see what NASA data covers it (live, here in your browser) or download a ready-to-run notebook with your AOI pre-filled. The notebook runs in any Python environment — it needs a free Earthdata Login to fetch the data.
-81.8, 24.4 → -80.2, 25.2 (Florida Keys reef tract, USA)Corals bleach when the water around them stays too warm for too long — not from a single hot day, but from weeks of heat piling up. NASA's **MUR** product gives a daily, gap-free 1 km map of [sea surface temperature](/glossary/sea-surface-temperature/) everywhere on Earth, so you can watch a reef's water heat up through a summer and compare it to past years — even with no buoy nearby. **Verified locally.** For the Florida Keys reef tract (24.4–25.2 °N), the MUR `analysed_sst` field read **30.9 °C** on 10 Aug 2024 — already in the range where prolonged exposure stresses corals. The honest version of "is bleaching coming" is the **Degree Heating Weeks (DHW)** metric: NASA SST shows the temperature; NOAA's free **Coral Reef Watch** turns it into the official heat-stress score and bleaching alert levels.
Are the coral reefs near me heading for a bleaching summer?
Corals bleach when the water around them stays too warm for too long — not from a single hot day, but from weeks of heat piling up. NASA’s MUR product gives a daily, gap-free 1 km map of sea surface temperature everywhere on Earth, so you can watch a reef’s water heat up through a summer and compare it to past years — even with no buoy nearby.
Verified locally. For the Florida Keys reef tract (24.4–25.2 °N), the MUR analysed_sst field
read 30.9 °C on 10 Aug 2024 — already in the range where prolonged exposure stresses corals.
The honest version of “is bleaching coming” is the Degree Heating Weeks (DHW) metric: NASA SST
shows the temperature; NOAA’s free Coral Reef Watch turns it into the official heat-stress
score and bleaching alert levels.
What you can answer
- How warm the water over a reef is right now, and every day back to 2002 — MUR
analysed_sst(stored in kelvin; subtract 273.15 for °C) - Whether this summer is hotter than normal — build a per-day climatology from past years and plot this year’s anomaly (the warm departure that drives bleaching)
- How many days the reef sat above its bleaching threshold — count days over the local “maximum monthly mean + 1 °C”, the standard bleaching trigger
- The official heat-stress level — overlay NOAA Coral Reef Watch Degree Heating Weeks & bleaching alert area (free, no login) for the validated metric
- Water-clarity / productivity context — MODIS chlorophyll-a alongside, since murky or nutrient-loaded water interacts with heat stress
What you can NOT answer with these datasets alone
- Whether corals actually bleached — SST is the driver; confirmed bleaching needs in-water surveys or high-resolution imagery. Heat stress raises risk, it doesn’t prove an outcome.
- Reef-floor temperature exactly — MUR is a blended surface analysis at 1 km; a shallow back-reef lagoon can run warmer than the 1 km pixel average
- Species-level vulnerability — thresholds vary by species and by a reef’s past exposure
- Sub-kilometre detail — for a specific patch reef, 1 km is coarse; pair with finer L2 SST or in-situ loggers
Code template (Python, cloud-direct)
Verified locally.
MUR-JPL-L4-GLOB-v4.1, variableanalysed_sst, is a global daily NetCDF; open it lazily and slice your reef’s bounding box before reading so you never download the whole globe. Values are in kelvin.
import os, re, earthaccess, xarray as xr, numpy as np
# load Earthdata creds from .env without `source` (passwords can break the shell)
for line in open(".env"):
m = re.match(r'\s*(?:export\s+)?([A-Z0-9_]+)\s*=\s*(.*)\s*$', line)
if m: os.environ.setdefault(m.group(1), m.group(2).strip().strip('"').strip("'"))
earthaccess.login(strategy="environment") # free Earthdata Login
W, S, E, N = -81.8, 24.4, -80.2, 25.2 # your reef (Florida Keys)
g = earthaccess.search_data(short_name="MUR-JPL-L4-GLOB-v4.1",
temporal=("2024-08-10", "2024-08-11"))
ds = xr.open_dataset(earthaccess.open(g[:1])[0], engine="h5netcdf")
sst = ds["analysed_sst"].sel(lat=slice(S, N), lon=slice(W, E)) - 273.15 # K -> °C
print("mean reef SST:", round(float(sst.mean()), 2), "°C")
# bleaching pressure: days above the local threshold (here a simple 30 °C; for the
# real metric use NOAA Coral Reef Watch "MMM + 1 °C" and Degree Heating Weeks)
days = earthaccess.search_data(short_name="MUR-JPL-L4-GLOB-v4.1",
temporal=("2024-06-01", "2024-09-30"))
# ... loop days, slice bbox, count days where mean SST > threshold, accumulate DHWMake it yours → Set the reef bounding box, the season/years, and the MMM+threshold in the notebook, and toggle between self-computed DHW and the NOAA Coral Reef Watch product.
The robust trend (Theil–Sen + Mann–Kendall) at the heart of this question — runnable on synthetic data, right here. The full earthaccess code template further down does it on real NASA data (needs an Earthdata login).