Sentinel-V7 Deep Hydrological Bi-LSTM
Model Summary
Sentinel-V7 Deep Hydrological Bi-LSTM is a specialized recurrent neural sequence model engineered for real-time flood risk scoring and inundated area forecasting. It maps multi-sensor remote sensing inputs (Copernicus Sentinel-1 SAR radar backscatter, digital elevation models, river network proximity, ECMWF GEOGloWS river discharge, and precipitation metrics) to a continuous flood vulnerability metric.
The model is packaged in Keras 3 format along with its fitted Scikit-Learn MinMaxScaler (scaler.joblib), ensuring seamless deployment on edge systems and cloud microservices.
- Architecture: Dual Bidirectional LSTM + Batch Normalization + Spatial Dropout + Dense Regression Core
- Framework: Keras 3 (
keras>=3.0.0) / TensorFlow (tensorflow>=2.15.0)
- Inputs: 8 Normalized Hydrological & Radar Features
- Output: Continuous Flood Risk Score
8 Input Telemetry Features
| Index |
Feature Key |
Unit |
Description |
| 0 |
elevation |
meters |
Hydrographic topographic elevation (ASL) |
| 1 |
river_dist |
km |
Distance to nearest primary river or drainage artery |
| 2 |
rainfall_mm |
mm |
Instantaneous rainfall intensity |
| 3 |
runoff_mm |
mm |
Urban runoff accumulation volume |
| 4 |
soil_moisture |
fraction [0-1] |
Soil saturation percentage |
| 5 |
river_discharge |
$\text{m}^3/\text{s}$ |
Upstream river volumetric flow rate |
| 6 |
pop_density |
persons/$\text{km}^2$ |
Gridded demographic density proxy |
| 7 |
sar_vh |
dB |
Copernicus Sentinel-1 IW GRD SAR backscatter ($VH$ polarization) |
Quickstart & Standalone Inference
Installation
pip install keras tensorflow scikit-learn joblib numpy huggingface_hub
Running Inference via Python
from huggingface_hub import hf_hub_download
import keras
import joblib
import numpy as np
# 1. Download model and scaler
model_path = hf_hub_download(repo_id="abdullahashraf122/sentinel-v7-deep-flood-lstm", filename="bi_lstm_flood_model_v7_deep.keras")
scaler_path = hf_hub_download(repo_id="abdullahashraf122/sentinel-v7-deep-flood-lstm", filename="scaler.joblib")
# 2. Load artifacts
model = keras.models.load_model(model_path)
scaler = joblib.load(scaler_path)
# 3. Predict on raw physical values
# [elevation, river_dist, rainfall_mm, runoff_mm, soil_moisture, river_discharge, pop_density, sar_vh]
raw_features = np.array([[120.0, 1.2, 145.0, 43.5, 0.88, 1250.0, 3500.0, -28.5]])
scaled_input = scaler.transform(raw_features).reshape(1, 1, 8)
risk_score = float(model.predict(scaled_input)[0, 0])
print(f"Predicted Flood Vulnerability Score: {risk_score:.4f}")
Model Training & Provenance
- Training Corpus: Trained over 83.98 Million spatial telemetry samples from
master_flood_intelligence_80m.csv.
- Streaming Protocol: Stream-generator with RAM protection and EarlyStopping convergence monitoring.
- Source Subfolder:
HUFP_SENTINEL_V6.
License
Released under the MIT License.