q56·advanced

After this earthquake, where did the ground shift and the lights go out?

deformationhazards Datasets: 3 30–90 min
Real events · NASA Disasters / VEDA

Analysis-ready products for actual events that this question maps to — open each in the catalog, or browse them on the NASA Disasters Portal.

A big earthquake leaves two fingerprints that satellites can read from orbit. First, the ground physically moves. A quake can shove the land sideways or up by centimetres, sometimes metres, over a wide area. Second, the power goes out, and at night a satellite that photographs Earth's city lights can see exactly which neighbourhoods went dark. Put the two together and you get a map of where the shaking hit hardest.

After this earthquake, where did the ground shift and the lights go out?

A big earthquake leaves two fingerprints that satellites can read from orbit. First, the ground physically moves. A quake can shove the land sideways or up by centimetres, sometimes metres, over a wide area. Second, the power goes out, and at night a satellite that photographs Earth’s city lights can see exactly which neighbourhoods went dark. Put the two together and you get a map of where the shaking hit hardest.

Which data to use, and how

Use this dataset first: NASA Black Marble nightlights (short name VNP46A2). It’s a daily picture of how bright Earth’s surface is at night, basically a map of working electric lights. Compare the night before the quake to the night after and you see which areas lost power. That’s a fast, beginner-friendly stand-in for “where did damage happen?” The other approach, Sentinel-1 radar (see below), is far more precise about ground movement but much harder to process. Start with the lights.

Then do four steps (the runnable code further down does all of this; this is just the idea):

  1. Pick the disaster area. A small latitude/longitude box around the city or fault, plus a date just before the quake and a date just after.
  2. Grab a “before” night and an “after” night. Two clean, cloud-free nightlight images of your box.
  3. Subtract them. After minus before. Places where brightness dropped are where lights went out.
  4. Map the dark spots. Areas that lost the most light are your first guess at where power failed and damage clustered. Overlay this on where people live to decide where help is needed first.

That’s the whole idea. Below, “How a scientist answers this” names the exact tools, and the Run it cell does it live on synthetic data so you can see each step work, no login needed.

What you can find out

  • Where the lights went out. Black Marble nightlights before vs after flag neighbourhoods that lost power, a fast proxy for damage and disruption.
  • How much the ground moved, to the centimetre. Using InSAR (radar interferometry, see the gotchas below), you compare two Sentinel-1 radar passes from before and after the quake. The difference map shows exactly how the surface shifted, which traces out the buried fault that ruptured.
  • Visible destruction. Clear-sky before/after optical photos (the kind of imagery your eye understands) confirm collapsed buildings and other damage you can literally see.

What it can’t tell you

  • Building-by-building damage. These satellites show you area-wide patterns, not individual structures. Knowing whether one specific building is safe needs much higher-resolution imagery ordered on demand, or someone on the ground.
  • Ground movement under forests or where everything changed. InSAR needs the surface to look roughly the same in both radar passes. Dense vegetation or heavy disruption scrambles the radar signal (this is called decorrelation), so InSAR works best over bare or built-up ground, not jungle.
  • How many people were hurt. Everything here measures physical effects: moved ground, dark streets, broken buildings. None of it counts casualties. These are impact proxies, not a human toll.

Gotchas to watch for

  • Clouds and moonlight mess with nightlights. A cloudy night can hide the city, and a bright moon can wash the image out. Black Marble’s VNP46A2 product is already cleaned up for this (it’s “atmosphere- and moon-corrected”), but still pick clear nights close to the event so you’re comparing like with like.
  • A dark spot isn’t always damage. Lights can drop because of a routine blackout, a curfew, or just clouds, not only quake damage. Cross-check the dark areas against the ground-movement map and the visible photos before you trust them.
  • InSAR is genuinely advanced. Turning two radar scenes into a clean deformation map (an interferogram) takes careful processing, and it fails over vegetation or where the surface changed too much (decorrelation, mentioned above). If you’re new, lean on the nightlights first and treat InSAR as the next thing to learn, not the starting point.
  • Match your “before” and “after” carefully. Use dates as close to the quake as you can get clean data, and the same season and time of day. Comparing a clear winter night to a hazy summer one will show “changes” that are really just weather.

The real-data code

The Run it cell above runs this method on synthetic data with no login. Below is the whole recipe against the real archive: search for before/after nights, open the nightlight grids, subtract them, find where the lights went out, and map it. It needs a free Earthdata Login.

import earthaccess, numpy as np, xarray as xr
import matplotlib.pyplot as plt

earthaccess.login(strategy="netrc")

# The disaster area as (West, South, East, North) — Mandalay region, Myanmar
# (the 2025 earthquake struck on 28 March). Pick clear nights either side.
aoi = (95.8, 21.7, 96.3, 22.1)

# 1. Find a "before" night and an "after" night of Black Marble nightlights.
before_g = earthaccess.search_data(short_name="VNP46A2", bounding_box=aoi,
                                   temporal=("2025-03-25", "2025-03-27"))
after_g  = earthaccess.search_data(short_name="VNP46A2", bounding_box=aoi,
                                   temporal=("2025-03-29", "2025-03-31"))

# 2. Open the granules (VNP46A2 is gridded HDF5-EOS) and read the moon- and
#    atmosphere-corrected radiance, masking out poor-quality / fill pixels.
def read_lights(grans):
    fhs = earthaccess.open(grans)
    ds = xr.open_mfdataset(fhs, group="HDFEOS/GRIDS/VNP_Grid_DNB/Data Fields",
                           engine="h5netcdf", combine="by_coords")
    rad = ds["Gap_Filled_DNB_BRDF-Corrected_NTL"].astype("float32")
    qf  = ds["Mandatory_Quality_Flag"]            # 0 = high quality, 255 = fill
    rad = rad.where((qf == 0) & (rad < 6.5e4))    # drop fill (65535) & bad pixels
    return rad.squeeze()

before = read_lights(before_g)
after  = read_lights(after_g)

# 3. Subtract: after − before. Negative = brightness dropped = lights went out.
#    Align the two grids first (same tile, but be safe), then difference.
after, before = xr.align(after, before, join="inner")
delta = after - before

# 4. Verdict — how much of the lit area went dark, and by how much.
was_lit = before > 1.0                            # nW/cm2/sr: only count lit ground
went_dark = (delta < -0.5) & was_lit
frac_dark = float(went_dark.sum() / was_lit.sum())
drop = float(delta.where(was_lit).mean())
print(f"{frac_dark:.0%} of the lit area dimmed after the quake; "
      f"mean change over lit ground = {drop:+.2f} nW/cm2/sr "
      f"({'lights out' if drop < 0 else 'no net dimming'})")

# 5. Map the dark spots (the first guess at where power failed / damage clustered).
delta.plot(cmap="RdBu", vmin=-15, vmax=15, cbar_kwargs={"label": "Δ radiance (after−before)"})
plt.title("Mandalay nightlights: where the lights went out"); plt.tight_layout(); plt.show()

# Before you trust it: a dark patch can be cloud/curfew, not damage — cross-check the
# dark spots against a Sentinel-1 (SENTINEL-1A_SLC) InSAR deformation map and optical
# before/after photos, and only compare clear, like-for-like nights (see the gotchas).

Where the data comes from

Everything here comes from NASA through one free login (Earthdata Login). The Black Marble nightlights (VNP46A2) are built from the VIIRS instrument on the Suomi-NPP satellite. The Sentinel-1 radar (SENTINEL-1A_SLC) is a European Space Agency mission whose data NASA also distributes. The optional optical before/after photos come from Sentinel-2 or commercial Planet imagery. This question supports the Respond phase of the NASA Disasters program, which uses exactly this kind of fast satellite mapping to guide help after a disaster.

Sources

How a scientist answers this
Parameters
Ground deformation from a Sentinel-1 InSAR pair: interferometric phase difference between one pre-event and one post-event SAR acquisition (C-band, ~5.6 cm wavelength), unwrapped to line-of-sight displacement in centimetres (one fringe ≈ 2.8 cm half-wavelength). Power-loss proxy from Black Marble VNP46A2 moonlight-corrected, gap-filled nightlight radiance (nW·cm⁻²·sr⁻¹) pre vs post; optical Sentinel-2/Planet pre/post for visible collapse.
Method
Form the co-event interferogram, remove flat-Earth and topographic phase (DEM-corrected), unwrap to recover the line-of-sight deformation field around the rupture; separately difference post-minus-pre Black Marble radiance to flag neighbourhoods that went dark, then overlay deformation and outage on population/building layers to triage shaking impact.
Validation
Check interferometric coherence and mask decorrelated (vegetated/heavily-changed) pixels; sanity-check the deformation field against the published fault model/aftershock distribution, and confirm nightlight drops are not artefacts of cloud, moon phase, or snow before attributing to outage.
In plain EnglishRadar measures how far the ground physically shifted (down to centimetres), night-light images show which neighbourhoods lost power, and clear-sky photos confirm collapsed buildings — together they map where the shaking hit hardest.

Make it yours → Set your event date and AOI, pick the bracketing Sentinel-1 acquisitions and the pre/post Black Marble nights in the notebook.

🧪 Virtual Mock Lab stand-in data · runs in your browser · no login

A safe place to practise the method on SENTINEL-1A_SLC. The code is the real earthaccess workflow, but we feed it stand-in data shaped like the real product — so you can run it, change the numbers, and break it without an account. When you want the real data, use the recipe under “The real-data code” above, or download the notebook below.

editable · runs in your browser
Recipe ready · not yet run The recipe and the Virtual Mock Lab above are ready to use. We haven't yet run this question end-to-end on real data, so it has no verified answer yet — only the questions we've actually computed carry one. That's the honest line between a method and a result.