GNSS Anubis 数据质量分析软件使用说明

最近需要分析一下采集的数据,只使用rtklib 里面的rtkplot 方便是挺方便的,但是好像有一些bug(例如:导出时不显示BDS卫星的信息),而且功能也不够多。。。所以想起来之前接触的Anubis,拿出来重新用用,一些操作记录一下。

一、安装

我是在Linux里面使用的,首先到官网下载https://gnutsoftware.com/software/anubis/download

把你下载的文件放到你的路径,打开终端,使用chmod +x anubis 和 ./anubis -V,查看版本号,出现出现如下内容即代表安装成功

二、配置文件

使用./anubis -X 2 > S_defaults.xml 生成默认配置文件

Anubis 配置文件编辑上一篇文章已经简要介绍过 G-Nut/Anubis 程序的配置和使用方式。但如果仅阅读过前文,你肯定还不能愉快顺畅地使用它。因为该程序的输入参数都集中配置文件中,我们需要根据自己的使用意图来编辑配置文件。 本文介绍 Anubis 程序配置文件的设置方法。该文件使用可扩展标记语言 XML(Extensible Markup Language)编写,因此在阅读本文前,你可能需要首先了解一下icon-default.png?t=N7T8https://www.gnss.help/2017/05/22/anubis-config/index.html这个博客里面写的比较详细,当然现在文件和之前的有点差别,但是实际上使用起来差别不是很大,主要是设置好:

全局配置项(包括需要处理的测站,处理的时间、采样的间隔)

质量检查配置项(可以看配置文件里面的英文,都有注释)

输入、输出数据配置项(日志文件等)

三、跑程序

来到对应文件夹,输入使用./anubis -x config.xml -v 9 进行anubis文件处理

config.xml是你的配置文件名字

一般会生成.xtr文件,这个文件可以用画图脚本进一步处理

四、画图

首先需要下载anubis画图脚本:https://www.pecny.cz/sw/plots/anubis/

再配置如下环境:

sudo apt-get install gnuplot

sudo apt-get install gnuplot-x11

sudo apt-get install libchart-gnuplot-perl

sudo apt-get install imagemagick

还需要对文件进行修改,注意只读文件不能直接修改,使用下面的进行修改

sudo vim /etc/ImageMagick-6/policy.xml

修改的内容:right=“none”——>right=“read|write”

来到plot_Anubis.pl路径,输入./plot_Anubis.pl,出现以下内容即可使用

里面也写了怎么操作注释

使用./plot_Anubis.pl --ifile .xtr --plot=”.png” --all --all --title=””画图  即可(确保你的画图脚本和.xtr文件在一个路径)

五、格式

由于现在画出来的图片是eps格式,可以写一个小脚本(convertbatch.sh)把eps格式转化成png格式(其它格式的也是类似的方法)

# 创建一个名为png的文件夹
mkdir -p png

# 循环处理所有EPS文件
for file in *.eps; do
  # 提取文件名(不包含扩展名)
  filename=$(basename "$file" .eps)

  # 使用convert命令将EPS转换为PNG,并设置分辨率为600dpi,调整大小为100%
  convert -density 600 "$file" -resize 100% "png/${filename}.png"
done

echo "转换完成!PNG图片已保存在png文件夹中。"
 

将这个脚本保存为一个文件,例如convertbatch.sh,再输入:

chmod +x convertbatch.sh
./convertbatch.sh

即可!

参考内容:

  1. Anubis 配置文件编辑 (gnss.help)
  2. https://blog.sciencenet.cn/blog-858128-1229676.html
关于 `NULL` 的概念以及其在不同编程环境中的定义和行为,可以从以下几个方面进行解释: ### 什么是 NULL? `NULL` 是一种特殊的指针值,在 C 和 C++ 中用于表示空指针。它的本质是一个特定的内存地址值——通常为零(0)。然而,这个零并不是作为普通的整数值被解析,而是作为一个特殊意义的内存地址来处理。 #### 在 C 语言中如何定义 NULL? C 语言标准库通过宏定义的方式实现 `NULL` 的功能[^2]。具体来说,它可能有两种形式: - 如果是在 C++ 环境下,则直接将其定义为常量 `0`。 - 而如果是在纯 C 环境下,则会将 `NULL` 定义成 `(void*)0`,即一个指向 void 类型的数据并具有值为 0 的指针。 以下是典型的定义方式之一: ```c #undef NULL #if defined(__cplusplus) #define NULL 0 #else #define NULL ((void *)0) #endif ``` 这种设计允许程序开发者能够跨平台一致地使用 `NULL` 来初始化或者比较指针变量而无需担心底层差异[^3]。 ### 关于 GCC 下遇到段错误的情况分析 当尝试解引用一个 `NULL` 指针时会发生未定义的行为,这可能导致运行时崩溃或所谓的“段错误”。这是因为操作系统不允许应用程序访问某些保留区域内的内存位置(比如地址 0),从而触发保护机制中断进程执行流程。 下面展示了一个简单的例子说明这种情况的发生过程: ```c #include <stdio.h> int main() { int *ptr = NULL; printf("%d\n", *ptr); // 尝试读取 NULL 所指向的内容, 导致段错误. } ``` ### 结论 综上所述,尽管可以安全地声明并将指针设置为 `NULL`,但在任何情况下都不应该试图操作该指针对应的实际数据存储单元,因为这样做几乎总是非法且危险的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值