Overview¶
The ModelHub is a comprehensive collection of machine learning models and algorithms designed for hazard monitoring, prediction, and analysis. We aim to provide pre-trained models, training pipelines, and tools for developing custom hazard assessment models.
Models¶
Hazard Prediction Models¶
Weather Forecasting, coupling ACE2 with Amtmospheric River Index (Richard Zhuang and Brandon Kerns), and Clima-X (Aditya Grover). Examples of AR tracking and forecast here
Heatwave Forecasting (Greg Hakim)
Storm Detector, detecting thunderstorm from seismic and weather data using deep learning (Akash Kharita, Alexandra Anderson-Frey, Marine Denolle)
Earthquake Wavefields: deep learning models for data-driven full wavefield and peak ground motions reconstruction (nowcasting) and forecasting (lead Yiyu Ni)
Ground Failure Modeling: Surrogate model to predict liquefaction and ground failure potential index (lead Morgan Sanger), and its coupling to wavefields (Yiyu Ni & Morgan Sanger)
Large Earthquake Detection: deep learning model to detect earthquakes are strong ground motions in seisbench ecosystem.
Flood Hazard Models¶
Flood Forecasting: Flood forecasting using stream gauge data, SWE, and meteorological products.
Flash Flood Detection
Landslide Susceptibility Models (TBD)¶
Data-Driven Reduced Order Modeling of Landlab modeling for landscape evolution/erosion and debris flow modeling.
Susceptibility Mapping: Random forests and gradient boosting for landslide susceptibility
Triggering Models: Models linking precipitation and seismic triggers to landslide occurrence
Run-out Prediction: Neural networks for estimating landslide travel distance
Landslides Detection using high temporal resolution of multi-sensor geophysical networks (seismic, infrasound, tilt, DAS) and high spatial resolution remote sensing imagery (sentinel+SAR) with Akash Kharita, Scott Henderson, and collab with AI2.
Hydromechanical Model data-driven approach to turn multi-sensor raw data (non co-located seismic, geodetic, meteorological sensors) into real time hydromechanical properties (Manuela Köpfli)
Model Architecture¶
This is the draft of a common framework.
Deep Learning Models¶
# Example: Using a pre-trained flood detection model
from gaia_hazlab.models import FloodDetectionModel
# Load pre-trained model
model = FloodDetectionModel.from_pretrained('flood-v1.0')
# Make predictions
predictions = model.predict(satellite_image)Traditional ML Models¶
# Example: Landslide susceptibility mapping
from gaia_hazlab.models import LandslideSusceptibility
# Initialize and train model
model = LandslideSusceptibility(algorithm='random_forest')
model.fit(X_train, y_train)
# Generate susceptibility map
susceptibility_map = model.predict_map(terrain_features)Model Development¶
Training Pipeline¶
Our standardized training pipeline includes:
Data Preparation: Automated data loading and preprocessing
Feature Engineering: Domain-specific feature extraction
Model Training: Optimized training with hyperparameter tuning
Validation: Cross-validation and performance evaluation
Deployment: Model packaging and versioning
Custom Model Development¶
Create custom models using our framework:
from gaia_hazlab.models import BaseHazardModel
class CustomHazardModel(BaseHazardModel):
def __init__(self, config):
super().__init__(config)
# Custom initialization
def train(self, data):
# Custom training logic
pass
def predict(self, inputs):
# Custom prediction logic
passModel Performance¶
Benchmarking¶
All models in the ModelHub are benchmarked against:
Baseline models (traditional statistical approaches)
State-of-the-art published methods
Domain-specific metrics and standards
Performance Metrics¶
We evaluate models using:
Classification: Accuracy, F1-score, ROC-AUC, Precision-Recall
Regression: RMSE, MAE, R², Bias
Spatial: Intersection over Union (IoU), Dice coefficient
Probabilistic: Calibration, Brier score, Log-likelihood
Model Registry¶
Model Versions¶
All models are versioned using semantic versioning
Each version includes model weights, configuration, and metadata
Reproducible training environments documented
Model Cards¶
Each model includes a comprehensive model card with:
Model description and intended use
Training data and preprocessing steps
Performance metrics and limitations
Ethical considerations and biases
Citation and attribution
Deployment¶
Model Serving¶
Deploy models for inference:
# Deploy model as API endpoint
from gaia_hazlab.serving import ModelServer
server = ModelServer(model='flood-detection-v1.0')
server.start(port=8000)Batch Processing¶
Process large datasets efficiently:
# Batch prediction
from gaia_hazlab.batch import BatchPredictor
predictor = BatchPredictor(model='landslide-susceptibility-v2.1')
results = predictor.process_dataset(input_data, batch_size=32)Contributing Models¶
To contribute a model to the ModelHub:
Follow our [model contribution guidelines]({{ github_org_url }}/{{ book_repo }}/blob/main/CONTRIBUTING.md)
Ensure model meets quality standards
Provide complete documentation and model card
Submit a pull request for review
Model Citation¶
When using models from the ModelHub, please cite:
GAIA HazLab Team. (2024). [Model Name]. GAIA HazLab ModelHub.
https://gaia-hazlab.github.ioFuture Developments¶
Upcoming additions to ModelHub:
Foundation models for multi-hazard assessment
Transfer learning capabilities across hazard types
Federated learning for privacy-preserving model training
Automated machine learning (AutoML) for rapid model development