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-82. 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/anubis3. 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 upgradeImageMagick默认的安全策略会限制某些操作,需要修改配置文件:
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::Gnuplot4. 准备观测数据和配置文件
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图片包含多个子图:
- 卫星可见性和PDOP值
- 观测值数量统计
- 多路径效应分析
- 信噪比分布
为了提高图像质量,可以先输出EPS格式再转换:
plot_Anubis.pl --ifile SITE1.xtr --plot="site1_quality.eps" --all convert -density 300 site1_quality.eps site1_quality.png7. 常见问题排查
在实际使用中,可能会遇到各种问题。以下是我总结的几个典型场景:
问题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. 进阶技巧与优化
经过多次实践,我总结出一些提高分析效率的技巧:
- 批量处理脚本:当需要分析多个站点时,可以编写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- 结果自动归档:使用inotifywait监控目录,自动处理新数据:
inotifywait -m -e close_write ~/gnss_data/obs/ | while read path action file; do if [[ "$file" =~ .*\.o$ ]]; then # 触发处理流程 fi done- 质量指标监控:从.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/