GeoWatch

GeoWatch is a geospatial monitoring tool designed to visualize and analyze real-time data from various sources using MQTT, PostGIS, Grafana, Streamlit, and Leafmap. This project provides insights into dynamic geographical data through interactive visualizations and real-time data processing.

Overview

GeoWatch allows users to monitor and visualize geospatial data in real-time. It integrates several technologies to facilitate environmental monitoring, urban planning, and other applications requiring geospatial analysis.

Technologies

GeoWatch is built using the following technologies:

  • PostgreSQL with PostGIS: Spatial database management.
  • MQTT: Real-time data streaming.
  • Grafana: Advanced data visualization.
  • Streamlit: Interactive web applications.
  • Leafmap: Geospatial data visualization on maps.

Setup

  1. Start the services using Docker Compose:

    docker-compose up --watch
    
  2. Initialize the database:
    The PostGIS database will be initialized automatically with the provided SQL scripts in the postgis folder.

  3. Access the application:

    • Streamlit app: Navigate to http://localhost:8501.
    • Grafana dashboard: Navigate to http://localhost:3000.

Usage

After setting up the project, you can use GeoWatch to visualize and analyze geospatial data:

  1. Publish MQTT messages with geospatial information.
  2. Use the Streamlit interface to interact with the map and view live updates.
  3. Utilize Grafana for advanced visualizations of historical data.

Example MQTT Data Structure

When publishing MQTT messages, ensure your data follows this structure:

{
    "node_id": "example_node",
    "geometry": {
        "type": "Point",
        "coordinates": [longitude, latitude]
    },
    "properties": {
        "status": "active",
        "style": {
            "color": "blue",
            "border_color": "black"
        },
        "temp": 25.0
    }
}

License

This project is licensed under the MIT License - see the LICENSE file for details.