DTM Pro 是一个基于 Python、PyQt5 和 Matplotlib 开发的桌面应用程序,专为数字地形模型 (DTM) 的三维可视化与综合地形分析而设计。
它集成了数据加载、TIN/格网建模、多种地形因子计算、交互式分析工具(如断面、视域、土方量)以及测量学常用工具于一体,提供了一个集成的地形处理工作流。
- 支持加载
.csv,.dat,.txt等格式的 XYZ 散点数据。 - 支持加载
.shp,.geojson等 GIS 矢量图层(如道路、边界)并叠加显示。 - 支持加载“对比 DTM” 数据,用于双曲面土方量计算。
- 提供数据 Z 值(高程)过滤器。
- 3D 视图:
- 渲染 TIN 三角网 (TIN Mesh) 模型。
- 渲染平滑格网 (Smoothed Grid) 曲面模型。
- 支持视角复位、鼠标滚轮缩放和中键平移。
- 2D 视图:
- 绘制 等高线图 (Contour),并支持自定义等高线间距。
- 渲染 坡度图 (Slope) 和 坡向图 (Aspect)。
- 渲染 差值图 (Difference Map) (需加载对比DTM)。
- 渲染 视域分析图 (Viewshed)。
- 界面:
- 支持暗色 (Dark) 与 玻璃 (Glass) 两种主题风格。
- 支持 2D/3D 视图独立弹窗查看器。
- 土方量计算:
- 支持基于基准面的单曲面挖填方计算。
- 支持基于对比 DTM 的双曲面挖填方计算。
- 视域分析 (Viewshed): 基于格网数据,在 2D 视图上交互式选择观察点,快速计算可视区域。
- 通视分析 (LOS): 交互式选择两点(观察点和目标点),分析两点间是否通视。
- 断面分析:
- 支持绘制单段断面线并弹出断面图。
- 支持绘制多段断面线(折线),并可批量导出断面图至 Word 报告。
- 分区统计 (Zonal Stats):
- 基于加载的矢量多边形图层。
- 统计每个多边形区域内的高程 (Elevation)、坡度 (Slope) 或坡向 (Aspect) 的最大/最小/平均/中位值等。
- 属性查询: 在 2D 视图上点击地图,查询任意点的 (X, Y) 坐标、插值高程 (Z)、所在三角面的坡度与坡向。
- 数据编辑:
- 添加数据点: 在 2D 视图上点击并输入 Z 值,动态添加新点。
- 删除数据点: 在 2D 视图上点击,删除距离最近的数据点。
- (数据编辑后,TIN 三角网会自动重新计算)
- 坐标转换: 空间直角坐标系 (XYZ) <-> 大地坐标系 (BLH) 互转。
- 前方交会: 计算前方交会点 P 的坐标。
- 水准闭合差: 计算闭合水准路线的闭合差并进行平差。
- 其他: 距离计算、地形图编号查询。
- 将 2D 分析图 或 3D 模型图 导出为高分辨率 PNG 图像。
- 将插值生成的格网数据导出为 ESRI ASCII Grid (
.asc) 文件。 - 一键生成包含项目概览、统计图表、分析地图和 AI 结论的 Word (
.docx) 综合报告。 - 导出修改后(增删点后)的
.csv数据。
- 界面 (UI): PyQt5
- 核心计算: NumPy, SciPy (Delaunay三角剖分, 线性插值)
- 数据处理: Pandas, GeoPandas
- 可视化: Matplotlib
- GIS/栅格处理: Rasterio, Rasterstats
- 报告/其他: python-docx, requests