2025.06 - 2026.03 / 工程实践项目
工程数据 GIS 可视化平台
围绕工程站点、水利气象、能源电力监测指标搭建的 GIS + 时序数据 + AI 助手平台,包含图层管理、后台运维、RAG/Agent、Docker/K8s 和 pytest/Vitest 测试。
技术栈
FastAPI / Vue3 + TypeScript / Leaflet / Mapbox / ArcGIS / ECharts / PostGIS / TimescaleDB / Redis / Docker / K8s / pytest / Vitest / OpenAI API / RAG / Agent
项目说明
工程数据 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。