Akash000-ui
Clean history: AI-Driven Flood Prediction System
664a316
Raw
History Blame Contribute Delete
1.9 kB
"""
Utility Functions
Helper functions for the flood prediction system
"""
import numpy as np
import pandas as pd
def classify_risk_level(probability):
"""
Classify flood probability into risk levels
Args:
probability (float): Flood probability (0-1)
Returns:
str: Risk level
"""
if probability >= 0.7:
return "HIGH"
elif probability >= 0.4:
return "MEDIUM"
else:
return "LOW"
def validate_coordinates(lat, lon):
"""
Validate latitude and longitude
Args:
lat (float): Latitude
lon (float): Longitude
Returns:
bool: True if valid
"""
if not (-90 <= lat <= 90):
return False
if not (-180 <= lon <= 180):
return False
return True
def format_prediction_response(probability, features=None):
"""
Format prediction response for API
Args:
probability (float): Flood probability
features (dict): Optional feature values
Returns:
dict: Formatted response
"""
response = {
'flood_probability': round(probability, 4),
'risk_level': classify_risk_level(probability),
'confidence': 'high' if abs(probability - 0.5) > 0.3 else 'medium'
}
if features:
response['features'] = features
return response
def print_banner(text):
"""
Print a formatted banner
Args:
text (str): Text to display
"""
width = len(text) + 4
print("\n" + "=" * width)
print(f" {text} ")
print("=" * width)
if __name__ == "__main__":
# Test utilities
print(classify_risk_level(0.85)) # HIGH
print(classify_risk_level(0.55)) # MEDIUM
print(classify_risk_level(0.25)) # LOW
print(validate_coordinates(17.385, 78.486)) # True
print(validate_coordinates(100, 200)) # False