GLOBK 分步进行网平差

GLOBK 是 GAMIT/GLOBK 程序的另一个主要组件。该程序使用卡尔曼滤波的方式对 GAMIT、GIPSY 和 Bernese 等产出的结果及经典大地测量和 SLR 观测数据进行处理,最后得到观测点的坐标、站速度、EOP 参数和卫星的轨道参数等。

与 GAMIT 操作类似,GLOBK 程序的操作也可以分为分步处理和批处理两种方式。本文将试图介绍使用 GLOBK 程序对 GAMIT 基线解算结果以分步处理的方式进行网平差的过程。

阅读全文

Linux 系统安装 Mono

C# 是我非常喜欢的编程语言,但其开发跨平台应用的能力一直被人诟病,在 UNIX/Linux 操作系统上使用 Mono 是一个解决方案。Mono 是一个由 Novell 公司主持开发的项目。该项目的目标是创建一系列跨平台的 .Net 工具,包括 C# 语言编译器和公共语言运行时。Mono 项目不仅可以运行于 Windows 系统上,还可以运行于 Linux、Unix、macOS 和 Solaris 等操作系统。在微软的开源 .Net 项目 .Net Core 成熟之前,Mono 是跨平台运行 C# 程序的不二选择。

本文介绍在 Ubuntu 和 CentOS 操作系统安装 Mono 的过程,读者可作为参考。

阅读全文

Linux 系统搭建离线软件源

为运行 Linux 操作系统的计算机安装程序时,处理软件包的之间依赖关系是一个苦恼的问题。幸好主流的 Linux 发行版都有自己的解决方案:比如红帽系(CentOS、RHEL 和 Fedora)有 yum,Debian 系(Debian、Ubuntu 和 Deepin 等)有 dpkg,可以通过网络上的软件源来解决依赖问题。但是,如果你遭遇到龟速的网络甚至离线情况下,如何解决较大型软件的安装问题呢?搭建一个离线的软件源是一个好办法!

本文以 RHEL 和 Ubuntu 两种发行版为例,介绍主流 Linux 系统离线软件源的搭建方法。因为软件源搭建属于权限较高的操作,所以文中的操作最好在 root 账户下执行。

阅读全文

GAMIT 批处理基线解算

前文已经介绍过使用 GAMIT 程序分步基线解算的过程。本文将介绍 GAMIT 批处理基线解算的流程。

首先说明,分步和批处理两种方式只是操作上的不同。如果使用的观测数据、解算配置等其他条件一致,两种方式的解算结果也是相同的。但相比分步操作,批处理方式确实可是大大节省操作时间,而且因为不必重复输入相同参数,出错概率也可以相应降低。

GAMIT 批处理基线解算的功能主要依赖于 sh_gamit 脚本命令,该脚本使用 C Shell 语言编写。如果你有兴趣深入研究其代码实现,它位于 GAMIT/GLOBK 安装目录的 com 文件夹内。

阅读全文

文件名大小写批量转换

由于 GAMIT/GLOBK 程序在进行基线解算时,只能识别小写字母命名的观测文件,大写字母命名的文件在解算时容易出错。因此,在数据处理之前要先做好文件名的标准化。对于大量数据,手动进行文件重命名既费时又费力,而用一个程序完成这项工作最好不过了。

本文介绍我写的两个脚本:sh_low2upsh_up2low,实现对指定文件夹内的所有文件进行文件名的大小写转换。脚本使用 C Shell 语言编写,适用于 UNIX/Linux 操作系统。

阅读全文

RINEX 与 Compact RINEX 格式的转换

RINEX 格式和 Compact RINEX(CRINEX,即 RINEX D-文件)格式都是常用的 GNSS 观测数据保存格式,说到这两个数据格式之间的转换,你首先想到的可能是 rnx2crxcrx2rnx 两个程序。不错,本文将介绍这两个程序的使用方法,但不仅仅是这两个程序。实际上,你还能从本文了解更多其他的扩展方法。

阅读全文

GAMIT/GLOBK 更新方法

GAMIT/GLOBK 软件经常会进行更新,其中的更新分为两种:共用表文件更新和程序更新。

共用表文件的更新可以为 GAMIT/GLOBK 提供最新的观测数据的解算支持,如果不及时更新这些文件,可能会造成观测日期较晚的数据不能解算;而程序更新为 GAMIT/GLOBK 程序提供 Bug 修复和功能的增加,如果程序更新不及时,可能无法使用最新的功能。

本文将试图讲述 GAMIT/GLOBK 软件的更新策略和方法。

阅读全文

GAMIT 分步进行基线解算

使用 GAMIT/GLOBK 软件进行 GNSS 数据处理时,我们习惯将处理方式分为两种——分步操作和批处理。你或许已经发现,GAMIT/GLOBK 软件是一个没有图形界面的程序,只能在终端中使用它。其中,GAMIT 主要进行基线解算,而 GLOBK 用来对基线解算成果进行网平差。但实际上这套程序并不是只由这两个软件组成的,GAMIT/GLOBK 将整个数据处理划分为很多小的过程,每个过程对应一个小程序,每个小程序实现一个小功能。我们使用这套程序进行数据处理就是按照数据处理的流程依次操作这些小程序,最终得到需要的成果。

所谓分步处理,就是按照数据处理流程利用 GAMIT/GLOBK 所提供的小程序逐步完成整个数据处理流程。但是分布处理使用得多了你会发现:大多数时候所做的处理流程都是相同的,后来便发展出了两个脚本 sh_gamitsh_glred,将基线解算和网平差中重复的操作封装起来。我们将使用这两个脚本进行数据处理的过程称为 “批处理”。

现在的 GAMIT/GLOBK 程序包含许多的脚本,可以提供丰富的功能。这些脚本程序保存在程序安装目录的 com/ 文件夹中。但本文专注于介绍分步基线解算的流程。

阅读全文

Ubuntu 操作系统安装 GAMIT

Ubuntu OS 无疑是目前最流行的 Linux 发行版,虽然网络上 Ubuntu 系统安装 GAMIT/GLOBK 软件的教程多如牛毛,但质量却良莠不齐。作者在此处进行整理,以供读者进行参考。我操作时所用的 Ubuntu 版本为 16.04 LTS,GAMIT/GLOBK 版本为 10.6。但是鉴于 GAMIT/GLOBK 程序安装方法一直无甚大变化,因此本安装流程也适用于 10.5、10.7 等版本,读者在参考时只需作少量变通即可。

提示:为了顺利执行本文提到的操作,你需要先了解 Linnux 系统的 sudocd 命令。需要在终端中输入的命令,在本文中以 “$” 字符开头,但操作时该字符不需要键入。

阅读全文

CentOS 操作系统安装 GAMIT

有关 GAMIT/GLOBK 软件的 Ubuntu OS 下的安装博文已经很多了,但是在 CentOS 操作系统下的安装教程还不多。这里介绍一下我的安装过程。所用环境为 CentOS 7,GAMIT/GLOBK 版本为 10.61。但经过之后的测试,该安装流程其实也适用于 CentOS 和 GAMIT 的其他版本。

提示:在进行 GAMIT/GLOBK 软件的安装之前,你最好了解一下 Linux 的 sudicd 命令。该命令将用于在执行下文的一些操作时进行必要的文件目录跳转。在本文中,约定需要在终端中输入的命令以 “$” 字符开头。

阅读全文