Risk Assessment and Prediction - seojedaperez/IgnisMap GitHub Wiki

This document describes the comprehensive fire risk assessment and prediction capabilities of the IgnisMap system, covering real-time risk calculation, multi-factor analysis, AI-powered predictions, and tactical response planning.

Overview

IgnisMap implements a sophisticated risk assessment engine that combines weather data, vegetation indices, historical fire patterns, and AI analysis to provide accurate fire risk predictions and tactical recommendations. 1

Risk Assessment Architecture

The system uses a multi-layered approach to fire risk assessment, integrating various data sources and analysis services:

flowchart TD
    subgraph "Data Sources"
        Weather["Weather Data<br/>Open-Meteo API"]
        Satellite["Satellite Data<br/>NASA FIRMS"]
        Vegetation["Vegetation Indices<br/>NDVI, Dryness"]
        Historical["Historical Fire Data"]
    end
    
    subgraph "Risk Assessment Engine"
        RiskMeter["RiskMeter Component"]
        AzureService["azureService"]
        MicrosoftAI["microsoftAI Service"]
        BiodivService["biodiversityAssessmentService"]
    end
    
    subgraph "Analysis Outputs"
        RiskScore["Risk Score (0-100)"]
        RiskLevel["Risk Level<br/>(Low/Medium/High/Extreme)"]
        Factors["Contributing Factors"]
        Recommendations["Tactical Recommendations"]
    end
    
    Weather --> RiskMeter
    Satellite --> AzureService
    Vegetation --> MicrosoftAI
    Historical --> BiodivService
    
    RiskMeter --> RiskScore
    AzureService --> RiskLevel
    MicrosoftAI --> Factors
    BiodivService --> Recommendations
Loading

Core Risk Assessment Components

RiskMeter Component

The RiskMeter component serves as the primary interface for fire risk visualization and calculation. 2 It integrates weather data from the WeatherContext and uses the azureService to calculate comprehensive risk predictions. 3

Risk Calculation Process

sequenceDiagram
    participant RC as "RiskMeter Component"
    participant WC as "WeatherContext"
    participant AS as "azureService"
    participant MAI as "microsoftAI"
    
    RC->>WC: useWeather()
    WC-->>RC: currentWeather, loading
    
    alt Weather data available
        RC->>AS: predictFireRisk(currentWeather)
        AS-->>RC: FireRiskPrediction
        
        alt Microsoft AI configured
            RC->>MAI: assessFireRisk()
            MAI-->>RC: Enhanced prediction
        end
    end
    
    RC->>RC: calculateRisk()
    RC->>RC: updateRiskVisualization()
Loading

The risk calculation follows a structured approach where weather data triggers the assessment process. 4

Multi-Factor Risk Analysis

Weather-Based Risk Factors

The system analyzes multiple weather parameters to determine fire risk:

flowchart LR
    subgraph "Weather Factors"
        Temp["Temperature Factor<br/>Max: 40 points"]
        Humidity["Humidity Factor<br/>Max: 30 points"]
        Wind["Wind Speed Factor<br/>Max: 30 points"]
    end
    
    subgraph "Calculation Logic"
        TempCalc["(temperature - 15) × 2"]
        HumidCalc["(60 - humidity) × 0.75"]
        WindCalc["windSpeed × 1.5"]
    end
    
    subgraph "Risk Score"
        Total["Total Weather Risk<br/>Max: 100 points"]
    end
    
    Temp --> TempCalc
    Humidity --> HumidCalc
    Wind --> WindCalc
    
    TempCalc --> Total
    HumidCalc --> Total
    WindCalc --> Total
Loading

The weather-based risk calculation uses specific formulas for each factor. 5 Temperature contributes up to 40 points, humidity up to 30 points, and wind speed up to 30 points to the overall risk score.

Advanced Risk Factors

Beyond basic weather, the system incorporates additional risk factors:

flowchart TD
    subgraph "Environmental Factors"
        VegIndex["Vegetation Index<br/>NDVI Analysis"]
        Dryness["Vegetation Dryness<br/>Moisture Content"]
        Drought["Drought Index<br/>Regional Conditions"]
    end
    
    subgraph "Historical Analysis"
        PastFires["Historical Fires<br/>Last 12 months"]
        ActiveFires["Active Fire Proximity<br/>Current incidents"]
        Frequency["Fire Frequency<br/>Burn patterns"]
    end
    
    subgraph "Land Cover Analysis"
        Forest["Forest Coverage<br/>Fire-prone areas"]
        Grassland["Grassland Coverage<br/>Rapid spread zones"]
        Urban["Urban Interface<br/>WUI risk zones"]
    end
    
    VegIndex --> RiskCalc["Advanced Risk<br/>Calculation Engine"]
    Dryness --> RiskCalc
    Drought --> RiskCalc
    PastFires --> RiskCalc
    ActiveFires --> RiskCalc
    Forest --> RiskCalc
    Grassland --> RiskCalc
Loading

The advanced risk calculation incorporates vegetation factors (25% of total risk), drought conditions (15%), land cover analysis (10%), and historical fire patterns (10%). 6

AI-Powered Risk Assessment

Microsoft AI Integration

The system leverages Microsoft Azure AI services for enhanced risk assessment:

flowchart TD
    subgraph "Input Data"
        WeatherInput["Weather Data<br/>Temperature, Humidity, Wind"]
        VegInput["Vegetation Data<br/>NDVI, Dryness Index"]
        HistInput["Historical Fires<br/>Past incidents"]
    end
    
    subgraph "Microsoft AI Processing"
        TextAnalysis["Text Analytics<br/>Data interpretation"]
        RiskCalc["AI Risk Calculation<br/>Multi-factor analysis"]
        Confidence["Confidence Scoring<br/>Prediction reliability"]
    end
    
    subgraph "AI Output"
        AIRiskScore["AI Risk Score<br/>0-100 scale"]
        AIFactors["Factor Breakdown<br/>Detailed analysis"]
        AIRecommendations["AI Recommendations<br/>Tactical guidance"]
    end
    
    WeatherInput --> TextAnalysis
    VegInput --> RiskCalc
    HistInput --> Confidence
    
    TextAnalysis --> AIRiskScore
    RiskCalc --> AIFactors
    Confidence --> AIRecommendations
Loading

The Microsoft AI service processes multiple data inputs to generate comprehensive risk assessments. 7 It calculates individual factor contributions and combines them into an overall risk score with confidence metrics.

AI Risk Factor Calculation

The AI service uses sophisticated algorithms to weight different risk factors:

  • Temperature Factor: Up to 40 points based on deviation from baseline (15°C)
  • Humidity Factor: Up to 30 points with inverse relationship to moisture
  • Wind Factor: Up to 30 points based on speed and spread potential
  • Vegetation Factor: Up to 25 points from NDVI analysis
  • Dryness Factor: Up to 25 points from vegetation moisture content
  • Historical Factor: Up to 10 points from past fire incidents 8

Comprehensive Risk Assessment

Multi-Domain Risk Analysis

The system generates comprehensive risk assessments across multiple domains:

flowchart TD
    subgraph "Risk Assessment Domains"
        HumanLife["Human Life Risk<br/>Population exposure"]
        Environmental["Environmental Risk<br/>Ecosystem impact"]
        Economic["Economic Risk<br/>Property & infrastructure"]
        Cultural["Cultural Risk<br/>Heritage sites"]
    end
    
    subgraph "Assessment Process"
        BiodivData["Biodiversity Data<br/>Species at risk"]
        InfraData["Infrastructure Data<br/>Critical facilities"]
        SpreadPred["Spread Prediction<br/>Fire behavior model"]
    end
    
    subgraph "Risk Calculation"
        WeightedCalc["Weighted Risk Calculation<br/>40% Human + 25% Environmental<br/>+ 25% Economic + 10% Cultural"]
        OverallRisk["Overall Risk Score<br/>Composite assessment"]
    end
    
    BiodivData --> HumanLife
    InfraData --> Environmental
    SpreadPred --> Economic
    
    HumanLife --> WeightedCalc
    Environmental --> WeightedCalc
    Economic --> WeightedCalc
    Cultural --> WeightedCalc
    
    WeightedCalc --> OverallRisk
Loading

The comprehensive risk assessment combines multiple risk domains using weighted calculations. 9 Human life risk receives the highest weight (40%), followed by environmental and economic risks (25% each), and cultural risk (10%).

Risk Assessment Generation

The biodiversityAssessmentService orchestrates the comprehensive risk assessment process:

sequenceDiagram
    participant Dashboard as "Dashboard Component"
    participant BAS as "biodiversityAssessmentService"
    participant Calc as "Risk Calculators"
    participant Output as "Risk Assessment"
    
    Dashboard->>BAS: generateRiskAssessment()
    BAS->>Calc: calculateHumanLifeRisk()
    BAS->>Calc: calculateEnvironmentalRisk()
    BAS->>Calc: calculateEconomicRisk()
    BAS->>Calc: calculateCulturalRisk()
    
    Calc-->>BAS: Individual risk scores
    BAS->>BAS: Calculate weighted overall risk
    BAS->>BAS: Generate evacuation priorities
    BAS->>BAS: Identify critical decision points
    
    BAS-->>Output: Complete risk assessment
    Output-->>Dashboard: Display risk metrics
Loading

The service generates detailed risk assessments including evacuation priorities and critical decision points. 10

Risk Visualization and Display

Risk Meter Interface

The risk assessment results are displayed through an interactive risk meter interface:

flowchart TD
    subgraph "Risk Meter Display"
        Gauge["Circular Risk Gauge<br/>0-100% visualization"]
        RiskIcon["Fire Icon<br/>Color-coded by risk level"]
        Percentage["Risk Percentage<br/>Numerical display"]
        Level["Risk Level<br/>Low/Medium/High/Extreme"]
    end
    
    subgraph "Risk Factor Cards"
        TempCard["Temperature Card<br/>Current temp + factor score"]
        HumidCard["Humidity Card<br/>Current humidity + factor score"]
        WindCard["Wind Card<br/>Current speed + factor score"]
    end
    
    subgraph "Assessment Details"
        Confidence["Confidence Score<br/>Prediction reliability"]
        Recommendations["Risk Recommendations<br/>Tactical guidance"]
        DataSource["Data Source<br/>Azure/Local algorithm"]
    end
    
    Gauge --> RiskIcon
    RiskIcon --> Percentage
    Percentage --> Level
    
    TempCard --> Confidence
    HumidCard --> Recommendations
    WindCard --> DataSource
Loading

The risk meter provides comprehensive visualization of current fire risk conditions. 11 Risk levels are color-coded: extreme (≥80) in coral, high (≥60) in burgundy, medium (≥40) in yellow, and low (<40) in green.

Dashboard Integration

The risk assessment integrates seamlessly with the main dashboard:

flowchart LR
    subgraph "Dashboard Overview"
        KeyMetrics["Key Metrics<br/>Active alerts, High risk count"]
        RiskMeterComp["Risk Meter Component<br/>Primary risk display"]
        ExecutiveSummary["Executive Summary<br/>Multi-domain risk scores"]
    end
    
    subgraph "Risk Data Flow"
        WeatherContext["Weather Context<br/>Real-time data"]
        RiskPrediction["Risk Prediction<br/>Calculated assessment"]
        RiskAssessment["Risk Assessment<br/>Comprehensive analysis"]
    end
    
    subgraph "Display Components"
        RiskCards["Risk Score Cards<br/>Human/Environmental/Economic"]
        TacticalPlans["Tactical Plans<br/>Response strategies"]
        AlertsList["Alerts List<br/>Active incidents"]
    end
    
    WeatherContext --> RiskPrediction
    RiskPrediction --> RiskAssessment
    RiskAssessment --> RiskCards
    RiskCards --> TacticalPlans
Loading

The dashboard orchestrates comprehensive analysis through parallel service execution. 12 When weather data becomes available, it triggers multiple analysis services simultaneously including wind analysis, biodiversity assessment, and tactical planning.

Real-Time Risk Updates

Continuous Risk Monitoring

The system implements real-time risk monitoring through reactive data flows:

sequenceDiagram
    participant Timer as "Update Timer"
    participant Weather as "Weather Service"
    participant Context as "Weather Context"
    participant RiskMeter as "Risk Meter"
    participant Assessment as "Risk Assessment"
    
    Timer->>Weather: Fetch latest weather data
    Weather-->>Context: Updated weather data
    Context->>RiskMeter: Trigger useEffect
    RiskMeter->>Assessment: Calculate new risk
    Assessment-->>RiskMeter: Updated risk prediction
    RiskMeter->>RiskMeter: Update visualization
Loading

The risk assessment updates automatically when new weather data becomes available. 4 The useEffect hook monitors weather data changes and triggers risk recalculation accordingly.

Notes

The IgnisMap risk assessment system provides comprehensive fire risk analysis through multiple integrated services. The RiskMeter component serves as the primary interface, while azureService and microsoftAIService provide the computational backbone. The system supports both Azure AI-powered analysis and local algorithm fallbacks for reliability. Risk assessments span multiple domains including human life, environmental, economic, and cultural impacts, with weighted calculations providing overall risk scores. The interface provides real-time updates and detailed factor breakdowns to support emergency response decision-making.

Wiki pages you might want to explore:

⚠️ **GitHub.com Fallback** ⚠️