Statistical ML model to forecast flood in villages in risk in Africa
# Flood Forecast REST API Deployment Guide
## Overview
This API provides flood forecasting capabilities for various sites in multiple countries. It uses historical rainfall data and machine learning models to predict flood risks based on current precipitation patterns.
## Prerequisites
- Docker installed on your system
- AWS CLI configured with appropriate permissions
- Access to the ECR repository containing the API image
- Store the dataset in an s3 bucket on your AWS account
## Deployment
### 1. Pull the Docker Image from AWS ECR
```bash
# Authenticate Docker with AWS ECR
aws ecr get-login-password --region eu-west-1 | docker login --username AWS --password-stdin 237710157910.dkr.ecr.eu-west-1.amazonaws.com
# Pull the image
docker pull
237710157910.dkr.ecr.eu-wes…
```
### 2. Environment Variables Configuration
Create a `.env` file with the following variables:
```ini
# S3 Configuration
S3_BUCKET=your-s3-bucket-name
S3_DATASET_PREFIX=dataset/gold
AWS_REGION=your-aws-region
# Optional AWS credentials (only needed if not using IAM roles)
# AWS_ACCESS_KEY_ID=your-access-key
# AWS_SECRET_ACCESS_KEY=your-secret-key
```
### 3. Run the Container
```bash
docker run -d \
--name flood-forecast-api \
-p 8000:8000 \
--env-file .env \
.dkr.ecr. .
amazonaws.com
```
### 4. Verify Deployment
Check the health endpoint:
```bash
curl
localhost
```
## API Endpoints
### 1. Root Endpoint
- **GET** `/`
- Returns a welcome message
### 2. Site List
- **GET** `/site-list`
- Returns a list of all available sites with their coordinates and rainy seasons
### 3. Historical Rain Data
- **GET** `/dataset/flood`
- Parameters:
- `country` (string): Country name (e.g., "cameroon")
- `sitename` (string): Site name (e.g., "garoua")
- Returns historical rain data for the specified site
### 4. Flood Forecast
- **POST** `/forecast/flood`
- Request Body:
```json
{
"country": "string",
"sitename": …