GREAT-UPD 开源软件实战:从数据准备到UPD产品生成全流程解析
2026/5/16 21:43:41 网站建设 项目流程

1. GREAT-UPD开源软件入门指南

第一次接触GREAT-UPD这个工具时,我完全被它复杂的文件结构搞懵了。作为武汉大学李星星教授团队开发的GNSS相位小数偏差估计工具,它在精密单点定位领域确实是个利器,但上手门槛也确实不低。经过几个月的实际使用,我总结出了一套适合新手的操作流程。

GREAT-UPD的核心功能是估计卫星端的未校准相位延迟(UPD),这对于恢复模糊度的整数特性至关重要。简单来说,就像我们在测量时需要先校准尺子一样,UPD估计就是帮我们找到每颗卫星的"测量尺误差"。软件支持GPS、GLONASS、Galileo和北斗系统,不过要注意它对北斗三号的支持可能有限。

工具包的结构看似复杂,但其实我们日常操作只需要关注几个关键部分:

  • bin目录存放可执行程序
  • sample data里有现成的示例数据
  • util文件夹包含实用的批处理脚本

建议新手先从sample data入手,跑通整个流程后再处理自己的数据。我在第一次使用时直接用自己的数据,结果因为文件路径问题卡了一整天。

2. 数据准备全流程详解

2.1 三大核心数据获取

数据准备是UPD估计的基础,也是最容易出错的部分。我们需要准备三类关键数据:

  1. DCB数据:使用util/batch_process下的download_dcb.py脚本
python3 download_dcb.py -y 2023 -d 150 -l 1 --dst=./dcb_files

这里有个坑要注意:脚本帮助信息里的文件名写错了,实际是download_dcb.py而非dcb_download.py。我刚开始直接复制帮助里的命令,结果报错找了半天原因。

  1. 观测数据:download_obs.py脚本需要配合测站列表文件
# 先创建测站列表文件station.lst echo "abpo" > station.lst echo "abmf" >> station.lst python3 download_obs.py -y 2023 -d 150 -l 1 --dst=./obs_files --site=station.lst

重要提示:默认的CDDIS数据源已经停用,需要修改脚本第21行,将域名改为"igs.gnsswhu.cn"。

  1. 导航电文:download_nav.py的修改更复杂些,除了改域名,还需要调整文件路径逻辑。建议直接参考我修改好的版本:
# 在download_nav.py中添加这行 str_nav_m = f"BRDM00DLR_S_{new_year:04}{new_doy:03}0000_01D_MN.rnx.gz"

2.2 数据预处理技巧

拿到原始数据后,周跳探测是关键预处理步骤。GREAT-UPD提供了PreEdit工具,但配置起来需要些技巧:

  1. 环境准备
cd util/PreEdit/Linux chmod +x GREAT-PreEdit export LD_LIBRARY_PATH=./
  1. 配置文件调整: 建议复制sample data中的PreEdit_Linux.ini模板,重点修改:
  • work_dir:设置绝对路径更稳妥
  • ambflag_dir:指定周跳文件输出位置
  • minimum_elev:建议设为7度,过滤低高度角数据

实测发现,直接修改XML配置比用INI文件更直观。特别是处理多系统数据时,在XML里可以清晰看到各系统的配置参数。

3. UPD估计实战操作

3.1 运行环境配置

在开始UPD估计前,需要确保:

cd bin/Linux chmod +x GREAT-UPD export LD_LIBRARY_PATH=./

3.2 关键参数设置

upd_Linux.ini是核心配置文件,几个易错参数需要特别注意:

[project] satsys = G # 系统选择:G/G/R/E/C upd_mode = WL+NL # 估计模式:WL/NL/EWL组合 [process] sat_rm = G04 # 需要排除的卫星

我建议新手先从GPS系统(G)开始尝试,等熟悉流程后再处理多系统。曾经因为同时选了GREC四个系统,结果参数冲突导致程序崩溃。

3.3 分步执行策略

  1. 宽巷(WL)估计
upd_mode = WL

WL组合相对稳定,适合首次运行测试流程。

  1. 窄巷(NL)估计
upd_mode = NL

需要先完成WL估计,因为NL估计依赖WL结果。

  1. 超宽巷(EWL)估计
upd_mode = EWL ambflag_dir = ./ambflag23 # 必须使用23频周跳文件

EWL估计需要额外的IFCB文件,这是最容易出错的部分。

4. 常见问题解决方案

4.1 文件路径问题

路径错误是新手最常遇到的问题。建议:

  • 尽量使用绝对路径
  • 检查各级目录权限
  • 文件名避免空格和特殊字符

我曾经因为路径中包含中文目录名导致脚本无法运行,这个坑浪费了半天时间。

4.2 数据缺失处理

当某些卫星数据缺失时,程序可能异常终止。解决方法:

  1. 在sat_rm参数中预先排除问题卫星
  2. 检查DCB文件是否包含所有需要的卫星
  3. 确认观测数据时间跨度是否一致

4.3 结果验证技巧

生成UPD产品后,建议通过以下方式验证:

  1. 检查结果文件时间序列的连续性
  2. 对比不同测站的估计结果一致性
  3. 绘制UPD时间序列图,观察是否符合预期特性

util/upd_analysis目录下的分析脚本可以帮助可视化结果。我在实际项目中就曾通过可视化发现了一个卫星的异常波动,后来证实是数据质量问题。

整个流程走下来,最大的体会是:GNSS数据处理就像做实验,前期准备越充分,后期就越顺利。GREAT-UPD虽然学习曲线陡峭,但一旦掌握,就能为精密定位研究提供很大帮助。建议新手多利用sample data练习,遇到问题时仔细查看log文件,通常都能找到线索。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询