当前位置: 首页 > 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.gsyq.cn/news/1386437.html

相关文章:

  • 2026年5月国内专业水泥电杆底盘供应商排行:高压水泥电线杆、高强度水泥电杆、高强度水泥电线杆、低压水泥电线杆选择指南 - 优质品牌商家
  • 2026年5月行业观察:莆田可靠的LV鞋店价值评估与供应链选择 - 2026年企业推荐榜
  • 别扔!用吃灰的TP-LINK-WR703N做个无线打印服务器,保姆级刷机教程(含Breed+OpenWrt)
  • 避坑指南:在Docker容器里为OpenCV编译Nvidia GPU硬解码支持,我踩过的那些‘库版本’的坑
  • 2026年江苏区域静电检测闸机专业厂家TOP5排行:上海翼闸速通门/上海通道闸门禁/上海防静电门禁闸机/上海防静电闸机/选择指南 - 优质品牌商家
  • android主流闹钟流程/架构-------------不用改架构
  • 从理论推导到代码实现:手把手教你用Python/Numpy写出守恒形式的NS方程求解器
  • 手把手教你用C++和倍福ADS库在Ubuntu上读写PLC变量(附完整CMake配置)
  • 2026年Q2国内主流超声治疗仪品牌排行盘点:经颅磁疗仪/膝盖超声波治疗仪/超声波治疗器/超声波治疗理疗/便携超声波治疗仪/选择指南 - 优质品牌商家
  • 三、Tucker 分解:从高阶PCA到多维数据压缩的实战解析
  • Redis沙盒体验:在浏览器中零门槛掌握NoSQL核心技能
  • 【DeepSeek安全测试辅助实战指南】:20年攻防专家亲授3大高危漏洞自动识别技巧
  • ARM AArch32通用定时器寄存器架构与CNTHPS_TVAL详解
  • 别再自己画库了!手把手教你用立创EDA+AD19快速搞定原理图库(以BMI088为例)
  • 迁移中国服务器数据到美国服务器
  • 卡内基梅隆大学等机构联合提出:让AI在“温故“中“知新“
  • 从零打造复古辉光管腕表:高压驱动、低功耗与微型化设计实战
  • 新手村任务:成为一个架构师需要哪些装备?
  • 同传译前准备之韬定律?华为「韬(τ)定律」一、提出背景2026年5月25日,华为董事、半导体业务部总裁何庭波在上海ISCAS 2026(国际电路与系统研讨会)上,正式发表韬(τ)定律,这是中国首
  • 基于ESP32与CCS811的室内空气质量监测系统:从传感器原理到物联网实践
  • 番茄小说下载器终极指南:三步构建你的离线阅读自由王国
  • Python装饰器高级模式:从日志到AOP的完整实现
  • 基于LM22678的树莓派硬盘专用电源设计:解决供电不稳与电流冲击
  • 从Office功能区的“局外人“到“掌控者“:Office RibbonX Editor深度指南
  • 如何在5分钟内免费搭建你的第一个工业级虚拟PLC系统
  • Linux设置命令行无操作超时退出的解决方案
  • 基于THAT1240芯片的平衡-非平衡音频转换器设计与实践
  • 基于ESP32/ESP8266的本地化无线门铃通知系统设计与实现
  • DIY无线电控制闹钟:自动对时、自适应亮度与家庭自动化集成
  • DeepSeek代码审计避坑手册:5类被90%团队忽略的AI模型注入风险及实时拦截方案