Real-time landslide hazard assessment combining MSWEP near-real-time precipitation, ECMWF HRES forecasts, and a static susceptibility map to produce daily hazard grids at 0.1° resolution over South/Southeast Asia.
Model_LHASA/
│
├── lhasa.py # Main entry point — runs full pipeline
├── ls_precip.sh # Merges MSWEP + HRES into one NetCDF
├── get_MSWEP.py # Downloads MSWEP NRT daily from Google Drive via rclone
├── get_HRES.py # Downloads ECMWF HRES 0.25° from ECMWF Open Data
│
├── static_data/ # !! YOU MUST PROVIDE THESE — not in repo !!
│ ├── hill.json # Hillslope mask (GeoJSON, EPSG:4326)
│ ├── hist_ari.nc # Historical ARI climatology (variable: p95)
│ └── sus_map.nc # Landslide susceptibility map (variable: sus_map)
│
├── MSWEP_NRT/ # Auto-created — MSWEP downloaded files land here
├── ECMWF_HRES/ # Auto-created — HRES downloaded files land here
├── input_data/ # Auto-created — merged precip files land here
├── output_data/ # Auto-created — final hazard NetCDFs land here
│ └── YYYYMMDD/
│ ├── lhasa_YYYYMMDD.nc # Day 1
│ ├── lhasa_YYYYMMDD_D2.nc # Day 2
│ ├── lhasa_YYYYMMDD_D3.nc # Day 3
│ └── lhasa_YYYYMMDD_D5.nc # Day 5
│
├── docs/
│ └── SETUP_AND_RUN.md # Full step-by-step guide (start here)
│
├── environment.yml # Conda environment spec
├── requirements.txt # pip requirements
├── .gitignore
├── LICENSE
└── README.md
| Variable | Description | Values |
|---|---|---|
ARI |
7-day weighted Antecedent Rainfall Index (mm) | float32 |
HeavyRain |
ARI exceeds historical 95th percentile | 1 or NaN |
ModerateHazard |
Heavy rain AND susceptibility > 2 | 1 or NaN |
HighHazard |
Heavy rain AND susceptibility ≥ 4 | 1 or NaN |
# Full pipeline — all 4 forecast days for a date
python lhasa.py 20250622 all
# Single day
python lhasa.py 20250622 1See docs/SETUP_AND_RUN.md for complete setup instructions.
- Python ≥ 3.10
- CDO ≥ 2.0, NCO (
ncatted,ncap2) - rclone (for MSWEP download)
- See
environment.ymlfor full Python package list
MIT License — see LICENSE.