当前位置: 首页 > news >正文

从零到一:在LUNIX系统上部署Anubis并进行GNSS数据质量分析

1. 环境准备与系统选择

在开始部署Anubis之前,选择合适的Linux发行版至关重要。我推荐使用Ubuntu 18.04 LTS 64位版本,这个版本经过长期测试,社区支持完善,遇到问题容易找到解决方案。如果你手头没有Ubuntu 18.04,Ubuntu 20.04 LTS也是不错的选择,但需要注意部分依赖库的版本差异。

安装Ubuntu时,建议选择最小化安装,这样可以避免不必要的软件占用系统资源。完成基础系统安装后,第一件事就是更新软件源和升级现有软件包:

sudo apt update sudo apt upgrade -y

接下来需要安装一些基础开发工具,这些工具在后续的依赖安装和问题排查中会很有帮助:

sudo apt install -y build-essential git cmake

对于GNSS数据处理来说,系统时区和时间同步非常重要。我建议配置NTP服务确保系统时间准确:

sudo apt install -y ntp sudo timedatectl set-ntp on

在实际项目中,我发现很多问题都源于系统环境配置不当。比如曾经遇到一个案例,由于系统语言环境设置不正确,导致Anubis无法正常解析包含非ASCII字符的路径。可以通过以下命令检查和设置语言环境:

sudo locale-gen en_US.UTF-8 sudo update-locale LANG=en_US.UTF-8

2. Anubis核心程序安装

Anubis的安装过程相对简单,但有几个关键点需要注意。首先从官网下载预编译的64位静态版本:

wget https://gnutsoftware.com/software/anubis/download/anubis-static-64b

下载完成后,我习惯将文件重命名为更简洁的"anubis",并赋予可执行权限:

mv anubis-static-64b anubis chmod +x anubis

为了便于全局使用,建议将Anubis移动到系统PATH包含的目录中:

sudo mv anubis /usr/local/bin/

验证安装是否成功:

anubis -v

如果看到版本号输出(如"G-Nut/Anubis [2.3.0]"),说明安装成功。我在实际使用中发现,有时候权限问题会导致无法执行,这时可以尝试:

sudo chown root:root /usr/local/bin/anubis sudo chmod 755 /usr/local/bin/anubis

3. plot_Anubis可视化工具安装

plot_Anubis是Anubis配套的可视化工具,能将分析结果转换为直观的图表。安装前需要准备一些依赖:

sudo apt install -y gnuplot gnuplot-x11 libchart-gnuplot-perl imagemagick

有时候会遇到"Package has no installation candidate"错误,这是因为软件源没有及时更新。解决方法:

sudo apt update sudo apt upgrade

ImageMagick默认的安全策略会限制某些操作,需要修改配置文件:

sudo sed -i 's/rights="none"/rights="read|write"/g' /etc/ImageMagick-6/policy.xml

接下来安装plot_Anubis.pl脚本:

wget https://www.pecny.cz/sw/plots/anubis/plot_Anubis.zip unzip plot_Anubis.zip chmod +x plot_Anubis.pl sudo mv plot_Anubis.pl /usr/local/bin/

测试Perl环境是否正常:

perl -v

如果遇到"Can't locate Chart/Gnuplot.pm"错误,说明Perl模块缺失,可以这样安装:

sudo cpan install Chart::Gnuplot

4. 准备观测数据和配置文件

Anubis需要两种输入文件:观测数据(.o和.n文件)和配置文件(.xml)。观测数据通常来自GNSS接收机,我建议建立一个清晰的数据目录结构:

~/gnss_data/ ├── obs/ │ ├── site1.20o │ └── site2.20o └── brdc/ ├── brdc0010.20n └── brdc0010.20g

配置文件是XML格式,以下是一个典型示例:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE config> <config> <gen> <beg>"2020-01-01 00:00:00"</beg> <end>"2020-01-02 00:00:00"</end> <sys>GPS GLO</sys> <int>30</int> <rec>SITE1 SITE2</rec> </gen> <inputs> <rinexo>~/gnss_data/obs/site1.20o</rinexo> <rinexo>~/gnss_data/obs/site2.20o</rinexo> <rinexn>~/gnss_data/brdc/brdc0010.20n</rinexn> <rinexn>~/gnss_data/brdc/brdc0010.20g</rinexn> </inputs> <qc sec_sum="1" sec_hdr="1" sec_est="2" sec_obs="2" sec_gap="1" sec_bnd="2" sec_pre="1" sec_ele="1" sec_mpx="2" int_stp="1200" int_gap="600" int_pcs="1800" mpx_nep="20" mpx_lim="3.0"/> <outputs verb="1"> <log>anubis.log</log> <xtr>$(rec).xtr</xtr> <xml>$(rec).xml</xml> </outputs> </config>

配置文件有几个关键部分需要注意:

  • <beg><end>定义分析时间范围
  • <sys>指定卫星系统(GPS/GLO/GAL等)
  • <inputs>部分必须正确指向观测文件路径
  • <qc>部分控制质量检查的参数

5. 运行分析与结果解读

准备好数据和配置后,就可以运行分析了:

anubis -x config.xml -l analysis.log -v 9

参数说明:

  • -x指定配置文件
  • -l设置日志文件
  • -v 9表示输出最详细的调试信息

运行成功后会产生.xtr结果文件和.log日志文件。查看结果:

less SITE1.xtr

.xtr文件包含丰富的质量指标,如:

  • 数据完整率
  • 多路径效应
  • 信噪比
  • 周跳计数

我曾经处理过一个案例,某站点的数据质量突然下降,通过分析.xtr文件发现是多路径效应显著增加,最终定位到是站点附近新建了金属结构物。

6. 可视化与报告生成

使用plot_Anubis生成可视化图表:

plot_Anubis.pl --ifile SITE1.xtr --plot="site1_quality.png" --all --title="SITE1 [2020:001]"

如果遇到"***Not Anubis extraction"错误,检查.xtr文件头部的版本号格式,确保是三位(如[1.2.0]而非[1.2])。

生成的PNG图片包含多个子图:

  1. 卫星可见性和PDOP值
  2. 观测值数量统计
  3. 多路径效应分析
  4. 信噪比分布

为了提高图像质量,可以先输出EPS格式再转换:

plot_Anubis.pl --ifile SITE1.xtr --plot="site1_quality.eps" --all convert -density 300 site1_quality.eps site1_quality.png

7. 常见问题排查

在实际使用中,可能会遇到各种问题。以下是我总结的几个典型场景:

问题1:运行anubis时报错"cannot open shared object file"解决:这是因为缺少动态库,静态版本应该不会有这个问题。可以尝试:

ldd $(which anubis)

确认所有依赖库都已安装。

问题2:plot_Anubis生成的图表空白解决:检查ImageMagick策略配置,确保有读写权限。也可能是gnuplot的问题,测试gnuplot是否能正常绘图:

gnuplot -e "plot sin(x); pause -1"

问题3:分析结果异常解决:首先检查日志文件,然后确认:

  • 观测文件和星历文件时间匹配
  • 配置文件中的路径正确
  • 接收机名称在配置文件中正确指定

8. 进阶技巧与优化

经过多次实践,我总结出一些提高分析效率的技巧:

  1. 批量处理脚本:当需要分析多个站点时,可以编写Shell脚本自动化处理:
#!/bin/bash for site in site1 site2 site3; do sed "s/SITE1/$site/g" template.xml > config_$site.xml anubis -x config_$site.xml -l $site.log -v 5 plot_Anubis.pl --ifile $site.xtr --plot="${site}_quality.png" --all done
  1. 结果自动归档:使用inotifywait监控目录,自动处理新数据:
inotifywait -m -e close_write ~/gnss_data/obs/ | while read path action file; do if [[ "$file" =~ .*\.o$ ]]; then # 触发处理流程 fi done
  1. 质量指标监控:从.xtr文件中提取关键指标,建立长期质量趋势图。

对于大规模数据处理,可以考虑使用Docker容器化部��,确保环境一致性。这里提供一个简单的Dockerfile示例:

FROM ubuntu:18.04 RUN apt update && apt install -y gnuplot libchart-gnuplot-perl imagemagick COPY anubis /usr/local/bin/ COPY plot_Anubis.pl /usr/local/bin/
http://www.jsqmd.com/news/887413/

相关文章:

  • 2026-05-26:移除前缀使数组严格递增。用go语言,给定整数数组 nums,你可以从数组开头“删掉一段连续的前缀”(前缀长度可以为 0)。要求删除后剩下的部分必须是严格递增的(即剩余数组中任意相
  • 若依框架TagView切换总刷新?别慌,先检查这两个命名规则(附代码示例)
  • 2026年5月国内专业水泥电杆底盘供应商排行:高压水泥电线杆、高强度水泥电杆、高强度水泥电线杆、低压水泥电线杆选择指南 - 优质品牌商家
  • 为 Hermes Agent 框架配置自定义 Taotoken 模型提供商
  • 手把手教你用Python从Excel读取数据,完成K-Means聚类并画出酷炫3D散点图
  • 2026年5月行业观察:莆田可靠的LV鞋店价值评估与供应链选择 - 2026年企业推荐榜
  • 基于ATtiny85的智能烙铁定时器:低成本安全卫士DIY指南
  • 别扔!用吃灰的TP-LINK-WR703N做个无线打印服务器,保姆级刷机教程(含Breed+OpenWrt)
  • 避坑指南:在Docker容器里为OpenCV编译Nvidia GPU硬解码支持,我踩过的那些‘库版本’的坑
  • CodeGraph:给 Claude Code/Codex 装上“代码地图“,Token 直降 35%
  • 2026柴油流量计技术解析与主流产品实测对比:沥青液位计/沥青液位计/液碱流量计/液碱流量计/液碱液位计/液碱液位计/选择指南 - 优质品牌商家
  • 2026年Q2硝酸液位计靠谱品牌排行及实测对比:液碱液位计、液碱液位计、煤气流量计、煤气流量计、电磁流量计、电磁流量计选择指南 - 优质品牌商家
  • GCBasic驱动Arduino LCD扩展板:从引脚映射到传感器集成
  • DIY无线电控制闹钟:自动对时、自适应亮度与家庭自动化集成
  • Ubuntu 20.04 终端焕新:从Bash到Zsh与oh-my-zsh的平滑迁移与高效配置
  • 深度学习在MRI肌肉分割中的应用与优化
  • 2026年江苏区域静电检测闸机专业厂家TOP5排行:上海翼闸速通门/上海通道闸门禁/上海防静电门禁闸机/上海防静电闸机/选择指南 - 优质品牌商家
  • 三路音调控制电路设计:基于Baxandall架构的独立中频调节方案
  • 别再死记硬背了!用VHDL和原理图两种方式,手把手带你吃透一位全加器的设计逻辑
  • 提升会计新人个人能力的核心方法
  • 解决Si4732收音机SSB模式触摸干扰:从3.4GHz泄漏到硬件改造
  • 网易云音乐NCM转MP3终极指南:ncmdump工具完整使用教程
  • Jetson Nano新手避坑指南:从选对HDMI转接头到搞定aarch64架构软件安装
  • 2026年硝酸液位计TOP5实测排行:柴油流量计/柴油流量计/氨水液位计/氨水液位计/氯气流量计/氯气流量计/沥青液位计/选择指南 - 优质品牌商家
  • 基于Sallen-Key拓扑的四阶有源低通滤波器设计与音频抗混叠应用
  • android主流闹钟流程/架构-------------不用改架构
  • DIY磁环天线改造:从“甜甜圈”到高性能“复活节彩蛋”天线
  • Redis沙盒体验:在浏览器中零门槛掌握NoSQL核心技能
  • 从零打造ESP32-WROVER开发板:硬件设计、焊接调试与PSRAM应用全解析
  • Activiti7工作流实战:手把手教你实现审批驳回与打回功能(附完整代码)