Skip to content

OperEvap Tech Stack Documentation

System Overview

The Desert Research Institute (DRI) operates a robust, production-grade system designed to accurately estimate reservoir evaporation. This sophisticated system leverages the Texas A&M Daily Lake Evaporation Model (DLEM) as the foundational model used to estimate reservoir evaporation rates.

The system integrates a comprehensive suite of processes including:

  • Data acquisition and processing
  • Advanced modeling capabilities
  • Secure data storage
  • Interactive data visualization

At the heart of the system is a powerful cloud computing infrastructure comprised of Google Cloud Platform and Google Earth Engine, providing unparalleled access to vast satellite and climate datasets with advanced data analysis capabilities. The system's core database, codebase, and API are securely hosted and maintained by DRI's IT staff on a virtual machine server.

System Architecture

graph TD
    %% External Data Sources
    subgraph "External Data Sources"
        A["Reservoir Elevation, Depth<br/>and Area<br/>Sources: USGS, CDEC, RISE,<br/>CPN_Hydromet, MB_Hydromet"]
    end

    %% Earth Engine
    subgraph "Earth Engine"
        B["Reservoir Metadata<br/>(Engine Feature<br/>Collection)"]
        C["Meteorological Data<br/>(Earth Engine Image<br/>Collections)"]
        D["Web Application<br/>(Earth Engine Application)"]
    end

    %% DRI Virtual Server
    subgraph "DRI Virtual Server"
        E["DLEM Model<br/>(Python)"]
        F[("Geodatabase<br/>(Postgres+PostGIS)")]
        G["API<br/>(FastAPI/Python)"]
    end

    %% Connections
    A --> E
    B --> E
    C --> E
    E --> F
    F --> G
    F --> D

    %% Styling
    classDef external fill:#e3f2fd,stroke:#1976d2
    classDef earthengine fill:#e8f5e8,stroke:#388e3c
    classDef driserver fill:#fff3e0,stroke:#f57c00
    classDef database fill:#fce4ec,stroke:#c2185b

    class A external
    class B,C,D earthengine
    class E,G driserver
    class F database

System Components

Data Acquisition & Processing

DRI manages the entire process of collecting and preparing hydrometeorological data, including:

  • Unit conversion for standardized data formats
  • Precomputation of relevant climate variables
  • Quality control procedures to ensure data accuracy

Modeling Engine (Python/Google Earth Engine)

The DLEM model is executed within a Python environment leveraging Google Earth Engine's cloud computing capabilities for:

  • Efficient processing of large datasets
  • Analysis of satellite and climate data
  • Integration of historical and current data sources

Geodatabase (PostgreSQL + PostGIS)

All system data is securely stored within a PostgreSQL database utilizing the PostGIS extension:

  • Reservoir metadata - Geographic and descriptive information
  • Ancillary input data - Supporting datasets for calculations
  • DLEM-derived evaporation estimates - Time series results

API (FastAPI/Python)

A FastAPI-based Application Programming Interface provides programmatic access to the geodatabase:

Web Application (Earth Engine)

An interactive web application built using the Earth Engine JavaScript API:

Technical Details

Infrastructure

The system is hosted by DRI on a virtual machine server running Rocky Linux 9.5 (Blue Onyx):

Operating System: Rocky Linux 9.5
Platform: el9 (RHEL-compatible)
Support End: 2032-05-31
Vendor: Rocky Enterprise Software Foundation (RESF)

Modeling Engine Implementation

DRI employs Python-based scripts leveraging the Earth Engine Python API that:

  • Seamlessly integrate historical and current climate raster data from Earth Engine
  • Combine Earth Engine data with reservoir-related data from external sources
  • Utilize Earth Engine's robust processing capabilities
  • Calculate area-averaged daily DLEM evaporation estimates for each reservoir

Data Storage Schema

Time series data generated by the modeling engine is ingested into the PostgreSQL geodatabase:

  • Timeseries Table: Each variable, reservoir, and time step as distinct entries
  • Feature Table: Reservoir geometries and spatial information
  • Feature Metadata Table: Associated descriptive metadata
  • PostGIS Extension: Efficient spatial data management and queries

All tables are accessible via API endpoint requests, enabling targeted and efficient data retrieval.

Data Access Methods

Programmatic Access

The FastAPI web framework serves as the API layer, providing:

  • RESTful endpoints for data retrieval
  • JSON-formatted responses
  • Authentication and rate limiting
  • Comprehensive documentation

Interactive Visualization

The Earth Engine Web Application offers:

  • Real-time data visualization
  • Interactive mapping interface
  • Time series plotting capabilities
  • Export functionality for analysis