q21·intermediate
After days of monsoon rain, is the hillside above my village about to slide?
landdisaster-responsehydrologypublic-health Datasets: 5 30–60 min
▶ Find the data for your area
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.
Current AOI:
83.5, 27.8 → 84.5, 28.6 (Kaski / Myagdi mid-hills, Nepal (monsoon landslide belt))After days of monsoon rain, is the hillside above my village about to slide?
What you can answer
- The landslide-hazard probability for your area from the LHASA nowcast (
p_landslide, 0–1), for any day in the 2015–2021 archive - Multi-day rainfall accumulation over the slope from IMERG (the trigger that primes the soil)
- How steep the terrain is above the village (slope from SRTM) — steepness is a core LHASA input
- Whether rainfall is still climbing or easing in the hours before a decision, using the half-hourly Late run
- Which sub-areas of a district are most exposed by overlaying nowcast hazard on steep, populated valleys
- Roughly how many people live in the high-hazard area — overlay free WorldPop population and count people inside high-probability pixels, then name the district with geoBoundaries (verified: ~1.67M people in the default Kaski box, district Kaski)
What you can NOT answer with these alone
- The exact hour or spot a slope will fail — LHASA is a regional ~1 km hazard signal, not a slope-specific failure prediction
- Deep-seated or earthquake-triggered slides — LHASA targets shallow, rain-triggered landslides only
- Failures with no rain trigger (undercutting, construction, irrigation, snowmelt) — outside the rainfall-driven model
- Casualties or damage — you can now estimate people exposed (WorldPop overlay below), but actual deaths, injuries, and property loss depend on building strength, timing, and warning, which these layers don’t capture
Code template
Verified locally. LHASA carries two collections with the same short_name — pass
version="2.0.0"to get the current model. v2 archive runs 2015 → Feb 2021 and the nowcast variable isp_landslide(a 0–1 probability, not a 0/1/2 category). For live near-real-time hazard, use the LHASA portal directly.
import earthaccess
import xarray as xr
import numpy as np
earthaccess.login(strategy="netrc")
# AOI: Kaski / Myagdi mid-hills, Nepal — monsoon landslide belt
aoi = (83.5, 27.8, 84.5, 28.6) # W, S, E, N
# A real monsoon window inside the LHASA v2 archive (deadly 2020 Nepal season)
rain_window = ("2020-07-10", "2020-07-15")
nowcast_window = ("2020-07-14", "2020-07-15")
# 1. LHASA daily landslide nowcast — probability of a rain-triggered landslide
nowcast = earthaccess.search_data(short_name="Global_Landslide_Nowcast",
version="2.0.0", # disambiguate the two collections
bounding_box=aoi, temporal=nowcast_window)
nc = xr.open_dataset(earthaccess.open(nowcast[:1])[0]) # global lat/lon grid
p = nc["p_landslide"].sel(lat=slice(aoi[1], aoi[3]), # 0–1 hazard probability
lon=slice(aoi[0], aoi[2]))
# 2. IMERG half-hourly Late — multi-day rainfall accumulation (the trigger)
imerg = earthaccess.search_data(short_name="GPM_3IMERGHHL",
bounding_box=aoi, temporal=rain_window)
rain = xr.open_mfdataset([earthaccess.open([g])[0] for g in imerg],
group="Grid")["precipitation"] # variables live in /Grid
rain_mm = (rain * 0.5).sum("time") # half-hour rates → mm total
# 3. SRTM 30m DEM → slope (LHASA uses steepness; recompute locally for the hillside)
dem = earthaccess.search_data(short_name="SRTMGL1", bounding_box=aoi)
# Read tiles, mosaic, compute slope = arctan(gradient) in degrees
# 4. Flag danger: high probability AND steep slope AND heavy multi-day rain
# danger = (p > 0.5) & (slope_deg > 25) & (rain_mm > 100)
# 5. Who's exposed — free WorldPop population + geoBoundaries place names (no NASA login)
import requests, rasterio
from rasterio.windows import from_bounds
import geopandas as gpd
from shapely.geometry import Point
meta = requests.get("https://www.worldpop.org/rest/data/pop/wpic1km?iso3=NPL").json()
pop_url = next(f for f in meta["data"][-1]["files"] if f.endswith(".tif"))
open("npl_pop_1km.tif", "wb").write(requests.get(pop_url).content) # ~1 MB
with rasterio.open("npl_pop_1km.tif") as src:
pop = src.read(1, window=from_bounds(*aoi, transform=src.transform)).astype("float64")
pop[pop == src.nodata] = np.nan
print(f"People in AOI: {np.nansum(pop):,.0f}") # verified ~1.67M for this Kaski box
adm = gpd.read_file(requests.get(
"https://www.geoboundaries.org/api/current/gbOpen/NPL/ADM2/").json()["gjDownloadURL"])
print("District:", adm[adm.contains(Point(83.98, 28.21))].iloc[0]["shapeName"]) # 'Kaski'
# People below the danger pixels: resample `pop` onto the hazard grid, sum where danger is True.
Expected output
- Hazard map: today’s LHASA nowcast (moderate/high) clipped to the AOI
- Rainfall map: multi-day IMERG accumulation (mm) over the slopes
- Slope map: SRTM-derived steepness (degrees), highlighting >25° terrain
- Combined danger flag: steep + soaked + high-nowcast pixels nearest the village
- Statistics: peak accumulated rainfall (mm); area under high hazard (km²); steepest slope above the settlement
- Exposure: estimated people living in the high-hazard area (WorldPop), with the district named (geoBoundaries)
Caveats
- LHASA is a hazard nowcast, not a forecast or a prediction of failure — treat “high” as elevated risk warranting caution, not a guarantee a slope will move.
- IMERG Late has ~12-hr latency and orographic under-bias in steep terrain (Himalaya, Cordillera) — it tends to underestimate mountain rainfall vs gauges.
- ~1 km nowcast vs 30 m terrain mismatch — the nowcast cannot resolve the single hillside above one village; use slope/aspect to localize within a hazard cell.
- Archive ends Feb 2021 — the GES DISC v2 record covers 2015–2021, ideal for studying past monsoon seasons; for today’s hazard use the live LHASA portal, not this archive.
- Local ground signs still matter — cracks, tilting trees, muddy springs, and rumbling are faster warnings than any satellite product.
- Not a substitute for official warnings — defer to national disaster authorities for evacuation decisions.
Cross-DAAC composition
GES DISC (LHASA nowcast + IMERG) + LP DAAC (SRTMGL1) — two DAACs, uniform Earthdata Login.
Sources
- LHASA landslide nowcast: https://gpm.nasa.gov/landslides/projects.html
- LHASA / global landslide hazard: https://landslides.nasa.gov/
- GPM IMERG: https://gpm.nasa.gov/data/imerg
- SRTM (SRTMGL1): https://lpdaac.usgs.gov/products/srtmgl1v003/
- WorldPop population (free, no login): https://www.worldpop.org/
- geoBoundaries (free CC-BY admin boundaries): https://www.geoboundaries.org/
Datasets used
📚 Problem Finder KB
2 matching entries in the Knowledge Base:
§14 Glossary
GPM
Global Precipitation Measurement (NASA mission)
IMERG
Integrated Multi-satellitE Retrievals for GPM