Architecture Overview
Fire Aware combines satellite observations (NASA FIRMS, NOAA HRRR), provincial fire service telemetry (BCWS), national meteorological watches (ECCC), and ground-level environmental stations into a unified, high-frequency spatial stream.
1. Satellite & Agency Ingestion
Automated 60-second polling pipelines synchronize BCWS fire points, VIIRS thermal detections, and ECCC alert polygons directly to backend memory stores.
2. Real-Time Telemetry Processing
Micro-climate stations stream particulate (PM2.5, PM10) and ambient metrics. Raw measurements pass through calibration heuristics and zero-spike rejection.
3. Client Visualization Engine
MapLibre GL and Cesium elevation renderers project 2D/3D topological layers, interactive evacuation corridors, and synchronized time-series charts.
Public REST API Endpoints
All public endpoints return standard JSON format and support Cross-Origin Resource Sharing (CORS). No authentication token is required for read-only community endpoints.
/api/sensors
Cache: 30 seconds
Returns current readings for all active ground stations (AQI, PM2.5, CO₂, Temperature, Humidity, Coordinates).
curl -X GET https://fire-aware.app/api/sensors
/api/sensors/:id/history
Time Series: 24 Hours
Retrieves 24-hour historical telemetry time series for the specified station ID, sampled at 15-minute intervals.
curl -X GET https://fire-aware.app/api/sensors/station-04/history
/api/wildfires/current
Cache: 60 seconds
GeoJSON FeatureCollection containing active BC Wildfire Service fire perimeters, ignition points, and stages of control.
curl -X GET https://fire-aware.app/api/wildfires/current
/api/sensor-data
Requires X-Station-Token
Station telemetry submission gateway with payload signature verification and numeric range enforcement.
Telemetry JSON Schema
Incoming station packets must conform strictly to the following JSON structure. Values outside physical bounds will trigger calibration rejection flags.
{
"stationId": "STATION_BC_KAMLOOPS_04",
"timestamp": "2026-09-04T04:15:00.000Z",
"metrics": {
"aqi": 42, // Calculated Air Quality Index [0 - 500]
"pm25": 10.2, // Fine Particulate Matter in µg/m³ [0 - 1000]
"pm10": 18.5, // Coarse Particulate Matter in µg/m³ [0 - 2000]
"co2": 418, // Carbon Dioxide in ppm [350 - 5000]
"temperature": 24.6, // Ambient Celsius [-40.0 - 55.0]
"humidity": 38.2, // Relative Humidity % [0.0 - 100.0]
"pressure": 1014.2 // Barometric Pressure in hPa [800 - 1100]
},
"diagnostics": {
"batteryVoltage": 4.12, // Solar LiFePO4 battery voltage
"rssi": -68, // Wi-Fi / LoRa signal strength in dBm
"firmware": "v3.2.1" // Station firmware build tag
}
}
Station Sensor Hardware Specifications
| Component | Transducer | Measurement Range | Accuracy | Sampling Interval |
|---|---|---|---|---|
| Particulate Matter | Sensirion SPS30 Laser Optical | 0.3 to 10 µm (0–1000 µg/m³) | ±10% @ 100–1000 µg/m³ | 60 seconds |
| Temp & Humidity | Sensirion SHT45 High-Precision | -40°C to 125°C, 0–100% RH | ±0.1°C, ±1.0% RH | 30 seconds |
| Barometric Pressure | Bosch BME680 MEMS Sensor | 300 to 1100 hPa | ±0.6 hPa (absolute) | 60 seconds |
| Microcontroller | Espressif ESP32-S3 (Dual 240MHz) | Hardware Crypto, 8MB PSRAM | Hardware HMAC-SHA256 | Always-on low power |
Canadian Forest Fire Weather Index (FWI) Documentation
Looking for the mathematical formulas, moisture timelags, and percentile exceedance algorithms powering the Fire Weather Index? Review the dedicated interactive FWI Climatology portal with synthetic dataset generator.