2025.06 - 2026.03 / 工程实践项目

工程数据 GIS 可视化平台

围绕工程站点、水利气象、能源电力监测指标搭建的 GIS + 时序数据 + AI 助手平台,包含图层管理、后台运维、RAG/Agent、Docker/K8s 和 pytest/Vitest 测试。

工程数据 GIS 可视化平台

技术栈

FastAPI / Vue3 + TypeScript / Leaflet / Mapbox / ArcGIS / ECharts / PostGIS / TimescaleDB / Redis / Docker / K8s / pytest / Vitest / OpenAI API / RAG / Agent

项目说明

工程数据 GIS 可视化平台

工程数据 GIS 可视化平台架构图

项目背景

工程数据 GIS 可视化平台面向工程站点、水利监测点、气象采样点、能源功率采样点和电力负荷节点,提供地图图层、时序指标、后台运维、告警事件和 AI 辅助分析能力。平台以“空间位置 + 时间序列 + 工程指标”为核心数据结构,适用于水利、气象、能源、电力和工程巡检等场景。

核心模块

  • GIS 图层管理:支持 Leaflet、Mapbox、ArcGIS 风格的数据源,包含点位、线路、区域边界和热力图。
  • 时序数据服务:围绕雨量、水位、温度、功率、流量、负荷等指标提供统一查询接口。
  • 后台运维面板:展示 API、TimescaleDB/PostGIS、Redis、AI Assistant 服务状态及 ETL 任务。
  • 告警中心:记录站点离线、功率异常、雨量导入和阈值触发等事件。
  • AI 工程助手:基于平台文档和运行数据提供问答、异常解释、部署说明和日报摘要。
  • 测试与部署:提供 pytest、Vitest、Docker Compose、K8s Deployment / Service 示例。

技术实现

后端使用 FastAPI 组织 RESTful API,Pydantic 负责请求参数校验,服务层封装站点查询、时序聚合、图层配置、AI 检索和告警查询逻辑。空间数据采用 PostGIS 设计,时序数据采用 TimescaleDB / InfluxDB 思路管理,Redis 用于热点查询和任务状态缓存。

前端使用 Vue3 + TypeScript 设计控制台页面,包含图层面板、地图区域、统计卡片、趋势图、服务状态和 AI Assistant。地图层可替换为 Leaflet 或 Mapbox 实例,图表层可接 ECharts 折线图、柱状图和热力图。

关键接口

@router.post("/timeseries")
def station_timeseries(query: StationQuery):
    rows = query_series(query.station_ids, query.metric, query.start_time, query.end_time)
    return {"items": rows, "stats": metric_statistics(rows)}

GIS 图层配置

@router.get("/configs")
def layer_configs():
    return {
        "items": [
            {"id": "station-points", "provider": "leaflet", "layer_type": "point"},
            {"id": "river-lines", "provider": "mapbox", "layer_type": "line"},
            {"id": "admin-boundary", "provider": "arcgis", "layer_type": "polygon"},
            {"id": "rainfall-heatmap", "provider": "leaflet", "layer_type": "heatmap"},
        ]
    }

AI / RAG / Agent

AI 模块采用检索增强思路。平台先从 README、API 文档、数据库脚本、部署文档和运维记录中检索相关片段,再组织 Prompt 调用大模型接口。Agent 模式只开放只读工具,例如查询图层配置、站点摘要和最近告警,避免自动修改业务数据。

你是工程数据平台助手。请只根据给定资料回答。
如果资料不足,请提示需要人工确认。

用户问题:{question}
检索资料:{context}

Docker / K8s

平台提供 Docker Compose 启动 API、前端、TimescaleDB/PostGIS 和 Redis。K8s 目录中提供 API 与前端 Deployment / Service 示例,便于说明容器化部署、服务拆分、健康检查和配置管理。

测试

后端 pytest 覆盖站点筛选、时序数据查询、AI 检索、Agent 工具调用和 GeoJSON 输出;前端 Vitest 覆盖格式化函数和状态文案。测试用例用于保证核心逻辑在迭代后仍然可验证。

项目复盘

该项目将 GIS、时序数据库、行业指标、后台运维、AI 应用、RAG/Agent、Docker/K8s 和自动化测试组合为一个完整工程样例。项目重点在于工程组织和技术链路,而不是单一页面效果。后续可继续接入真实地图底图、真实 TimescaleDB 数据源和 OpenAI / Claude API。