工点设备坐标计算与分析工具 (Web版)
工点设备坐标计算与分析工具 (Web版)
📖 简介 (Introduction)
本项目是一个轻量级的、纯前端的地理空间数据处理工具,专门用于解决工程现场设备的坐标校正问题。
它旨在替代传统的 Python 脚本处理流程,通过一个独立的 HTML 文件,让不具备编程环境的工程人员也能快速完成以下任务:
- 数据清洗:自动识别并剔除严重的 GNSS 漂移点(Outliers)。
- 中心计算:基于鲁棒统计学方法(中位数、密度加权)计算工点的理论中心坐标。
- 自动化报告:一键导出包含分析备注和异常明细的 Excel 报表。
注意:所有计算均在浏览器本地完成,数据不会上传至任何服务器,确保工程数据的安全性。
✨ 核心功能 (Features)
- 零环境依赖:无需安装 Python、Anaconda 或 Pandas,双击 HTML 文件即可运行。
- 多格式支持:兼容
.xlsx,.xls,.csv格式的坐标数据文件。 - 多维度算法:
- 算术平均值 (Mean):适用于理想分布数据。
- 中位数 (Median):抗噪性强,排除极端值干扰。
- 密度加权中心 (Density Weighted):模拟核密度估计(KDE),自动寻找数据最密集的区域。
- 智能异常检测:
- 基于 Haversine 公式计算球面距离。
- 自动标记偏移超过 1000m 的异常设备。
- 自动计算中心点偏移量,并给出“推荐坐标类型”建议。
- 批量处理:支持按“所属项目”和“所属工点”双重分组,一次性处理成百上千个工点。
🛠️ 算法说明 (Algorithm Strategy)
为了在浏览器端实现高效且准确的计算,本项目对原始 Python 算法进行了适配:
- 距离计算:采用标准的 Haversine Formula 计算地球表面两点间的弧长,地球半径取值
R = 6371000米。 - 密度中心 (Density Center):
- 原 Python 脚本使用
scipy.stats.gaussian_kde进行高斯核密度估计。 - Web 版采用 反距离加权 (IDW) 变体。以中位数为参考锚点,权重 $w_i$ 与距离 $d_i$ 成反比: \(w_i = \frac{1}{d_i + 1}\)
- 该方法在寻找“主要数据簇”的效果上与 KDE 高度一致,且大幅降低了前端计算负荷。
- 原 Python 脚本使用
🚀 快速开始 (Usage)
- 获取工具:下载仓库中的
index.html文件。 - 运行:直接使用 Chrome、Edge 或 Firefox 浏览器打开该文件。
- 导入数据:点击上传区域或直接拖拽 Excel/CSV 文件。
- 导出结果:预览计算结果无误后,点击“下载计算结果”按钮获取分析报表。
📊 数据格式要求 (Input Format)
输入文件的第一行必须包含表头,且必须包含以下列名(顺序不限):
| 列名 | 说明 | 示例 |
|---|---|---|
| 所属项目 | (可选) 项目名称,若无则自动填充默认值 | 某边坡 |
| 所属工点 | (必填) 具体工点名称 | ZK120+300 |
| 设备编码 | (必填) 设备的唯一ID | SENSOR_001 |
| 经度 | (必填) WGS84或其他坐标系经度 | 103.456789 |
| 纬度 | (必填) WGS84或其他坐标系纬度 | 30.123456 |
| 设备名称 | (可选) 设备别名 | GNSS位移计-01 |
🤝 贡献与反馈 (Contribution)
如果您在使用过程中发现 Bug 或有新的功能建议(例如增加坐标系转换功能),欢迎提交 Issue 或 Pull Request。
📄 许可证 (License)
MIT License. 允许在个人、商业及科研项目中自由使用。