AquaNexus

Understand Water. Detect Risks. Find Solutions.

AquaNexus is a global water intelligence platform that transforms environmental data into an interactive geospatial workspace. Explore locations worldwide, investigate historical rainfall, compare precipitation patterns, examine weather forecasts and modelled river discharge, and discover satellite scene metadata—all through one platform built around traceable evidence and scientific honesty.

Source Code Python FastAPI Next.js React TypeScript Tailwind CSS License


🏆 The Inspiration

Water is one of the most important resources on our planet, yet understanding water-related conditions across different regions can be surprisingly complicated.

Rainfall records, weather forecasts, river-discharge estimates, and satellite imagery catalogues often live across different platforms. Even when the information is available, understanding what it means requires context.

A rainfall deficit does not automatically prove water scarcity. Heavy rainfall does not necessarily mean a flood has occurred. A modelled river-discharge estimate is not the same as a direct measurement.

We wanted to build a platform that brings environmental information together without hiding these important distinctions.

That led to one question:

What if people could investigate water conditions anywhere in the world through one interactive platform—and understand not only what the data shows, but also its source, limitations, and reliability?

AquaNexus is our answer.


❌ The Problem

Problem Why It Matters
🌍 Fragmented environmental data Investigating a location can require switching between multiple data providers and mapping tools.
📊 Limited historical context Individual rainfall values are difficult to interpret without a comparable historical baseline.
🌦️ Confusing data classifications Historical reanalysis, forecasts, and modelled estimates represent different types of evidence.
🔎 Incomplete geographic coverage Data availability varies by location, and missing values must not be mistaken for normal conditions.
🛰️ Disconnected satellite information Discovering available satellite scenes often requires a separate catalogue-search workflow.
🎯 Unsupported conclusions Environmental data can be misleading when its limitations and uncertainty are not communicated clearly.

The deeper challenge is connecting location, environmental evidence, historical context, and interpretation in one accessible experience.

AquaNexus approaches this challenge by making the data easier to explore while keeping its limitations visible.


✅ The Solution

AquaNexus connects global geospatial exploration with real environmental data providers and Python-based analysis services.

Instead of treating environmental information as disconnected numbers, the platform gives users a workspace for investigating locations, comparing historical conditions, exploring forecasts, and examining available evidence.

1. 🌍 Explore Locations Worldwide

Users can search for places, enter coordinates, or select locations on an interactive global map.

The primary map uses MapLibre GL, with a raster-map fallback that preserves essential navigation and location selection when WebGL is unavailable.

2. 📈 Investigate Historical Rainfall

Explore 30-, 60-, and 90-day precipitation time series using Open-Meteo Archive data based on ERA5 reanalysis.

This provides historical context for investigating precipitation patterns at a selected location.

3. 🔍 Compare Historical Conditions

AquaNexus compares a selected precipitation period with a compatible period from a previous year.

Anomaly calculations are only produced when the required series are complete and compatible, avoiding unsupported comparisons when the evidence is insufficient.

4. 🌦️ Explore Weather Forecasts

Access seven-day precipitation forecasts and daily weather conditions through Open-Meteo.

Historical data and forecasts remain separate, so users can distinguish previous conditions from modelled expectations about the future.

5. 🌊 Examine Modelled River Discharge

AquaNexus retrieves river-discharge estimates through Open-Meteo Flood using GloFAS data.

The values are explicitly identified as modelled estimates rather than direct gauge measurements.

6. 🛰️ Discover Satellite Scene Metadata

Search the Copernicus Data Space Ecosystem STAC catalogue for available satellite scenes, footprints, and acquisition dates.

This helps users discover relevant satellite data without claiming that water-body classification or change detection is already implemented.

7. 🧠 Generate Evidence-Grounded AI Analysis

An optional, key-gated AI integration generates narrative analysis based on the actual location summary.

The integration reports an unconfigured state when the required configuration is absent rather than pretending that AI analysis has been completed.

8. 💾 Save and Revisit Study Areas

Users can create, retrieve, update, and delete saved study areas through the platform's API-backed persistence layer.

This makes it possible to return to locations and continue an investigation.


🔄 The AquaNexus Intelligence Workflow

            ┌────────────────────────┐
            │   Select a Location    │
            │  Place / Coordinates   │
            └────────────┬───────────┘
                         │
                         ▼
            ┌────────────────────────┐
            │   Gather Environmental │
            │        Evidence        │
            └────────────┬───────────┘
                         │
             ┌───────────┼───────────┐
             ▼           ▼           ▼
        ┌─────────┐ ┌──────────┐ ┌───────────┐
        │ Rainfall│ │ Forecasts│ │ Satellite │
        │ History │ │ & Weather│ │ Metadata  │
        └────┬────┘ └────┬─────┘ └─────┬─────┘
             └───────────┼─────────────┘
                         ▼
            ┌────────────────────────┐
            │ Python Analysis Services│
            │ Baselines / Aggregation│
            └────────────┬───────────┘
                         │
                         ▼
            ┌────────────────────────┐
            │ Traceable Results      │
            │ Source / Time / Units  │
            │ Classification / Gaps  │
            └────────────┬───────────┘
                         │
                         ▼
            ┌────────────────────────┐
            │ Explore and Interpret  │
            │ Environmental Evidence │
            └────────────────────────┘

The workflow connects data retrieval with analysis and presentation. It does not claim to independently predict floods or automatically classify changes in water bodies.


✨ Key Features

Feature Description
🗺️ Interactive Global Map Explore locations with MapLibre GL, pan/zoom controls, location selection, and a raster fallback.
📍 Place and Coordinate Search Search global places through Open-Meteo Geocoding or enter coordinates directly.
📊 Historical Precipitation Investigate 30-, 60-, and 90-day precipitation time series.
📉 Historical Baseline Comparison Compare compatible precipitation periods and calculate supported anomalies.
🌦️ Seven-Day Forecast Explore upcoming precipitation and daily weather conditions.
🌊 Modelled River Discharge Access GloFAS-based discharge estimates with clear data classification.
🛰️ Satellite Scene Catalogue Search Copernicus STAC metadata, footprints, and acquisition dates.
🔬 NASA POWER Cross-Check Consult an additional reanalysis source for environmental investigation.
🧠 Optional AI Analysis Generate narrative analysis from an actual location summary when configured.
💾 Saved Study Areas Persist and manage study locations through the API.
🧾 Data Provenance Preserve source, timestamp, units, and classifications where available.
🛡️ Resilient Mapping Retain core map interactions when the WebGL renderer cannot initialize.

🏗️ How We Built It

AquaNexus is a full-stack geospatial application built around a separation of responsibilities between the frontend, backend, data providers, and scientific analysis.

The frontend provides the interactive experience. The Python backend retrieves and processes environmental data, performs calculations, and returns structured responses. The interface validates these responses before presenting the results.

Our core engineering principle is:

The frontend visualizes the evidence. Python handles the analysis. Data provenance explains what the results mean.

Core Architecture

                 ┌────────────────────────┐
                 │          User          │
                 └────────────┬───────────┘
                              │
                              ▼
                 ┌────────────────────────┐
                 │     Next.js 14 App     │
                 │ React · TypeScript     │
                 │ Tailwind · MapLibre    │
                 │ ECharts · Zod          │
                 └────────────┬───────────┘
                              │
                         /api/* proxy
                              │
                              ▼
                 ┌────────────────────────┐
                 │     FastAPI Backend    │
                 │ Python · Pydantic      │
                 │ HTTPX                  │
                 └────────────┬───────────┘
                              │
              ┌───────────────┼────────────────┐
              ▼               ▼                ▼
       ┌────────────┐  ┌─────────────┐  ┌─────────────┐
       │  Provider  │  │  Analysis   │  │ Provenance  │
       │  Adapters  │  │  Services   │  │   Models    │
       └─────┬──────┘  └─────────────┘  └─────────────┘
             │
       ┌─────┼──────────┬───────────┐
       ▼     ▼          ▼           ▼
   Open-   NASA      Copernicus   Geocoding
   Meteo   POWER     STAC         Services

🖥️ Frontend

The frontend uses:

  • Next.js 14 with the App Router
  • React for the interactive interface
  • TypeScript with strict type checking
  • Tailwind CSS for styling
  • MapLibre GL for the primary map
  • ECharts for data visualization
  • Zod for response validation

🐍 Python Backend

The backend uses:

  • FastAPI for API routes and application services
  • Pydantic for typed request and response models
  • HTTPX for asynchronous HTTP requests
  • Pytest for backend testing

Provider adapters isolate external-service logic, while analysis services handle aggregation, historical comparisons, indicators, and location summaries.

🔬 Environmental Data Sources

  • Open-Meteo Archive: Historical precipitation based on ERA5 reanalysis
  • Open-Meteo Forecast: Weather conditions and precipitation forecasts
  • Open-Meteo Flood: GloFAS-based modelled river discharge
  • NASA POWER: Additional reanalysis information for cross-checking
  • Copernicus Data Space Ecosystem STAC: Satellite scene catalogue metadata
  • Open-Meteo Geocoding: Global place search
  • OpenFreeMap and OpenStreetMap raster tiles: Map rendering and fallback mapping

🛡️ Reliability and Data Integrity

AquaNexus uses a same-origin API proxy so the browser communicates through the Next.js application while backend configuration remains server-side.

The analysis layer checks whether data is complete and compatible before producing historical anomalies. Provider status and data classification help distinguish successful retrieval from missing, unconfigured, or differently classified information.

Saved study areas are persisted using a JSON-file-backed store rather than an unnecessary database at this stage.


🧩 Challenges We Ran Into

1. Integrating Multiple Environmental Providers

Different providers offer different types of information and response structures. We needed a modular approach that could connect these services without placing all provider-specific logic inside API routes.

2. Preserving Scientific Meaning

Rainfall history, weather forecasts, reanalysis, and modelled discharge cannot be interpreted in the same way. The platform needed to distinguish these categories instead of presenting every value as a direct observation.

3. Producing Defensible Historical Comparisons

An anomaly is only meaningful when the selected period and historical baseline are compatible. AquaNexus checks data completeness and classification before producing the comparison.

4. Handling Missing Coverage

Not every provider covers every location equally. We designed the data workflow to report missing or unavailable information instead of silently filling gaps with invented values.

5. Building a Resilient Mapping Experience

The main map relies on WebGL, which may not initialize in every environment. A separate raster-map implementation allows essential map navigation and selection to continue without WebGL.

6. Keeping the Architecture Maintainable

We separated provider adapters, analysis services, provenance models, and frontend validation. This makes the system easier to test and helps keep scientific calculations independent of presentation code.


🏆 Accomplishments We're Proud Of

We're proud that AquaNexus goes beyond a map with a few weather values.

The platform connects several real environmental data workflows within a single geospatial experience.

Our key accomplishments include:

  • 🌍 Building an interactive global map with a non-WebGL fallback.
  • 📈 Implementing multiple historical precipitation windows and compatible baseline comparisons.
  • 🌦️ Separating historical data from forecast information.
  • 🌊 Integrating modelled river-discharge estimates with explicit classification.
  • 🛰️ Connecting to a satellite scene metadata catalogue.
  • 🔬 Adding a NASA POWER cross-check.
  • 💾 Implementing persistent study-area management.
  • 🧠 Providing an optional AI analysis integration grounded in a real location summary.
  • 🧪 Documenting 111 backend tests and 56 frontend tests.
  • 🛡️ Designing the application around data provenance and transparent limitations.

Most importantly, AquaNexus treats the reliability and meaning of environmental information as part of the product, not an afterthought.


🧠 What We Learned

Environmental intelligence requires more than displaying numbers.

We learned that the context behind a value can be just as important as the value itself.

  • Data provenance matters. Users should be able to understand where information comes from.
  • Classifications matter. Historical reanalysis, forecasts, and modelled estimates must remain distinguishable.
  • Validation matters. Incomplete or incompatible data should not produce misleading analytical results.
  • Architecture matters. Separating data providers, analysis, and presentation makes a complex application easier to maintain.
  • Resilience matters. Important interactions should continue working when a rendering technology is unavailable.
  • Honesty matters. A trustworthy platform must communicate what it cannot establish, not just what it can display.

These principles shaped AquaNexus into an evidence-focused environmental investigation platform.


🚧 Current Limitations

AquaNexus is a global water intelligence workspace, not a dedicated flood-prediction or satellite water-change detection system.

Current limitations include:

  • Satellite imagery: The satellite feature searches catalogue metadata; it does not yet classify water bodies or detect their changes.
  • Flood prediction: A dedicated flood-prediction model is not provided.
  • Ground measurements: A worldwide in-situ river-gauge aggregation system is not implemented.
  • Historical data: ERA5 archive data has a reporting lag, and geographic coverage varies between providers.
  • AI analysis: The optional integration requires configuration and is not active when unconfigured.

We document these boundaries because environmental software should never claim more certainty or functionality than its implementation supports.


🚀 What's Next

AquaNexus has several potential engineering improvements planned:

  • 🌧️ Add versioned historical precipitation baselines through Copernicus CDS.
  • 🗺️ Implement tiled precipitation raster overlays with explicit coverage limits.
  • ⚡ Introduce bounded caching for repeated provider requests.
  • 📍 Integrate a well-documented regional gauge network.
  • 🗄️ Migrate study-area persistence to a transactional database when multi-user or geographic-query requirements justify it.
  • 🔬 Expand environmental analysis through validated processing pipelines and reliable datasets.

Water-body change detection and dedicated flood prediction remain future possibilities, not completed features.


🌍 Our Vision

We believe environmental information should be easier to investigate, compare, and understand.

AquaNexus aims to connect global mapping, environmental data, historical context, and transparent analysis in one practical workspace.

Our goal is to help users explore water-related conditions while understanding the evidence behind the results and the limitations that remain.

Rather than manufacturing certainty, we want to make environmental investigation more accessible and trustworthy.


🎯 Final Thought

Water challenges are complex. Understanding them requires more than a single rainfall value, a forecast, or a map.

It requires context, reliable evidence, and transparency about what the data can actually establish.

AquaNexus brings those principles together in one global geospatial intelligence platform.

Understand the evidence. Explore the conditions. Make more informed decisions.

AquaNexus — Understand Water. Detect Risks. Find Solutions.

Built With

  • climate-change
  • copernicus-data-space-ecosystem
  • data-visualization
  • echarts
  • environmental-sustainability
  • fastapi
  • geospatial
  • httpx
  • javascript
  • maplibre-gl
  • nasa-power
  • next.js
  • open-meteo-api
  • openstreetmap
  • pydantic
  • pytest
  • python
  • react
  • rest-api
  • tailwind-css
  • typescript
  • water-management
  • zod
Share this project:

Updates

Submission history