Dashboard
WebGIS Map
Data Collection
Alerts
Documentation
16
Geothermal Manifestations
Critical Hazard — Slope EXP-047
Very High hazard level detected. Immediate review required.
2 hours ago · Email sent to client
Geothermal Anomaly — 96.2°C Surface Temp
Surface temperature exceeds 95°C threshold at GTH-003.
5 hours ago · Email sent to client + receptionist
Progress Delay — EIGIS-GIE-2026-002
No observations recorded in 8 days for active project.
1 day ago · Email sent
All Points
Surface Geological
Structural
Geothermal
EIGIS Map Legend
Geothermal Manifestations
Amhara Region
Current Extent
UTM 37N
Coordinate System
Critical Hazard — Slope EXP-047 · Very High
Very High hazard level detected at site EXP-047 in Dam Site Investigation project. Immediate review and action required. Factor of safety estimated below 1.0.
2 hours ago · Recipients: client@gie.gov, reception@gie.gov · Status: Sent
Geothermal Anomaly — 96.2°C Surface Temperature
Surface temperature at GTH-003 exceeds 95°C threshold. Potential near-boiling manifestation requiring safety protocols. pH measured at 2.1 (extremely acidic).
5 hours ago · Recipients: client@gie.gov, reception@gie.gov · Status: Sent
Progress Delay — EIGIS-GIE-2026-002
No observations recorded in 8 days for active Dam Site Investigation project. Field data collection may be behind schedule.
1 day ago · Recipients: client@gie.gov, reception@gie.gov · Status: Sent
Data Quality — Missing GPS Coordinates
3 submitted observations lack GPS coordinates. Spatial queries and map rendering affected.
3 hours ago · Status: Pending
Sample Lab Results — 5 Tests Completed
Laboratory results are now available for samples S-01 through S-05 from field trip FT-2026-012.
6 hours ago · Status: Info
📐 Database Schema
PostGIS 3.4 with 14 normalized tables supporting 3 interconnected themes:
Core: projects, personnel, field_trips, observations, photos, audit_log
Surface Geological: soil_profiles, soil_horizons, rock_descriptions, lithological_units
Structural: discontinuity_measurements, slope_stability, rock_mass_classifications, landslide_inventory
Geothermal: geothermal_manifestations, geothermal_gradients
Sampling: samples (unified), geochemistry_results
Future: geophysical_surveys, drilling_data, petrography
⚡ Spatial Indexing Strategy
GiST indexes on all geometry columns for O(log n) spatial queries
Composite GiST indexes on (geom, observation_type) for filtered rendering
Geography-cast indexes for ST_DWithin radius queries
Materialized views (mv_dashboard_metrics, mv_map_clusters) for dashboard latency <50ms
ST_ClusterDBSCAN for adaptive zoom-level clustering
🔌 API Endpoints (FastAPI)
Method Endpoint Description
GET /api/health System health check
POST /api/projects Create project
GET /api/projects List projects
POST /api/observations Create observation
GET /api/observations/map WebGIS map points
POST /api/soil-profiles Create soil profile + horizons
POST /api/rock-descriptions Create rock description
POST /api/discontinuities Add discontinuity measurement
POST /api/discontinuities/bulk Bulk discontinuity insert
POST /api/slope-stability Create slope assessment
POST /api/geothermal-manifestations Create geothermal record
POST /api/samples Create sample
POST /api/samples/bulk Bulk sample insert
POST /api/sync/observations Mobile data sync
GET /api/spatial/nearby Find nearby observations
GET /api/dashboard/metrics Real-time metrics
GET /api/alerts List alert queue
📧 Email Alert Triggers
Hazard Critical: Auto-email client + receptionist when slope hazard ≥ High
Geothermal Anomaly: Surface temp >95°C or pH outside 2–10 triggers alert
Progress Delay: No observations in 7+ days for active projects
Data Quality: Missing GPS on submitted observations
Unreviewed Hazard: High hazard observations not yet reviewed
🏗️ Microservices Architecture
API Service: FastAPI (Python 3.11) — REST API with async connection pool
Frontend: React + Leaflet — SPA with WebGIS vector workspace
Database: PostgreSQL 16 + PostGIS 3.4 — Primary data store
Object Storage: MinIO/S3 — Geotagged photo storage
Email Service: SMTP via aiosmtplib — Async notification dispatch
Cache: Redis (optional) — Session & tile caching
Monitoring: /api/health endpoint for load balancer checks
🔗 Third-Party Integration
OpenAPI 3.0 spec at /api/openapi.json
Interactive Swagger UI at /api/docs
ReDoc documentation at /api/redoc
GeoJSON output from all spatial endpoints
WMS/WFS compatibility via GeoServer bridge
Mobile sync endpoint with batch processing
Webhook support for alert notifications