Logo Lanfrica

nka-coder/flood-forecast

Domain:

climate

Record type:

software
Creator:
nka
Host:
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": …