| 基于GAMIT/GLOBK的GPS数据处理平台搭建 |
GPS[1]数据处理主要依靠专业的GPS数据处理软件,根据观测目标和要求精度的不同,应采用相应功能的软件,例如:个人用户手机导航只需打开手机的GPS定位功能,则内置于手机的导航软件会自行计算确定位置,无需人工干预;在工程上,一般会将数据从GPS接收机导入电脑,然后利用各接收机厂商自带的商业软件(如TGO)进行人工干预处理;而对于主要应用于地壳运动监测、大尺度国家测绘基准建设等领域的高精度毫米级定位来说,则需要借助专业的、人工参与度较高的高精度数据处理软件来实现,例如GAMIT/GLOBK软件、BERNESE以及GIPSY等。本文即以目前最具代表性、应用最为广泛的GAMIT/GLOBK软件为例,向读者全面详细地演示如何在Linux操作系统下搭建一个高效稳定的高精度GPS数据处理平台。GAMIT/GLOBK是一款科研性质的软件,没有商业支持,而且只有UNIX和Linux版本,没有Windows版的,在安装和使用时,都是以命令行的形式完成,没有操作界面,初学者在安装该软件时,会遇到各种各样的问题,比如不知道怎样配置、编译过程不断出错而找不到原因、路径设置等等,最终导致安装失败。本文的目的就是为了让刚刚步入高精度GPS数据处理领域从事应用研究工作的人员,能够在较短时间内从原理上掌握GAMIT/GLOBK软件的安装,尽量在安装软件上少走弯路,提高工作效率。
1 软件介绍 1.1 GAMIT/GLOBKGAMIT[2]软件最初在UNIX操作系统下设计运行,后期的版本通过不断完善,既可以在UNIX操作系统下运行,也可在Linux、Sun、HP以及Red Hat等操作系统下运行。1987年完成了基于UNIX操作系统的GPS数据处理软件,1992年研制人员对该软件进行改进,提高其自动化程度,并利用它进行IGS跟踪站网的GPS数据处理。GAMIT/GLOBK高精度数据处理软件不但精度高,而且开放源代码,使用者可以根据需要进行源程序的修改。目前,它已广泛应用于长距离、高精度、长时间的GPS数据处理,可用于解算卫星轨道参数、地面测站在某坐标系下的三维坐标、钟差、地球定向参数以及大气延迟等参数。GAMIT主要由MAKEX、ARC、MODEL、CLEAN、CFMRG以及SOLVE等几个主要程序模块及其他相关程序组成。其主要目的是综合处理多元测量数据,主要用于处理经过GAMIT解算后的GPS测量结果和用于处理SLR (人卫激光测距)数据及SINEX数据,其输出主要有测站坐标的时间序列、测站平均坐标和多时段轨道参数。
1.2 UbuntuUbuntu[3]是一个由全球化的专业开发团队建造的操作系统。Ubuntu项目完全遵从开源软件开发的原则,并且鼓励人们使用、完善和传播,因此使用该软件是完全免费的。目前已有大量各种各样基于GNU/Linux的操作系统,例如Debian、SuSE、Gentoo、RedHat以及Mandriva等。其中Debian是一个广受称道、技术先进且有着良好支持的发行版,Ubuntu正是基于Debian创建的一个可以为桌面和服务器提供最新且一贯的Linux系统。Ubuntu囊括了大量从Debian发行版精挑细选的软件包,同时保留了Debian强大的软件包管理系统,以便简易的安装或彻底的删除程序。与大多数发行版附带数量巨大的可用可不用的软件不同,Ubuntu的软件包清单只包含那些高质量的重要应用程序。Ubuntu提供了一个健壮、功能丰富的计算环境,既适合家用,又适用于商业环境,目前,Ubuntu包括桌面版、服务器版以及手机版等,在其官方网站均可免费下载获得安装文件。
1.3 gFTPFTP是数据处理中常用到的一个普通功能,主要用于各类数据在不同平台间的上传下载。gFTP是一个在*NIX上使用的(UNIX、Linux、BSD等等)自由的多线程FTP客户端,它与Windows下运行的CuteFTP等FTP工具极为类似,是一个完全免费的、开放源代码的ftp软件,具有非常高的安全性、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等特性。
1.4 C shellC shell[4]是一个交互式命令解释器和一种命令编程语言,采用的语法类似于C编程语言,用于编写shell程序, 以实现各种功能和完成任务。C shell的shell程序(通常称为shell脚本)包含将由shell执行的一系列命令并存储在Linux普通文件中,并且带有程序控制流命令或语句,以实现多路分支和命令块的重复执行。运行C shell脚本一般有3种方式:第1种是利用命令chmod将脚本文件可执行,然后在C shell环境下直接运行脚本文件即可;第2种是直接运行/bin/csh命令, 并将脚本文件名作为它的参数;第3种是最常用的方法,即不管当前是哪一种shell,强制脚本在C shell中执行,可以通过在脚本文件开始处添加#!/bin/csh来实现,然后为脚本文件增加执行权限后直接运行即可。
1.5 QOCAQOCA[5]是美国宇航局(NASA)喷气推进实验室(JPL)科研人员开发的空间大地测量资料、特别是GPS资料的后处理软件。具有灵活、计算速度快、功能多等优点,适用于以地形变化分析为主导的地球物理、构造运动及整体地球动力学研究,目前世界上约有40个国家的科研人员在使用,在其官方网址可申请下载该软件的安装文件。
1.6 TEQCTEQC[6]软件是美国的UNAVCO科研机构开发的用于GPS观测数据预处理的公开免费软件,该软件操作简单,功能强大,可对GPS观测数据的质量进行评定,是GPS数据处理中最常用到的一款软件。该软件的主要功能包括数据格式转换、数据编辑、数据质量检查等。
1.7 GMTGMT[7]是一款专业绘图软件,被广泛地应用于地球物理等相关学科,该软件功能非常强大,可用于绘制各种地理图,如地表高程图、各类等高线图以及海底地形图等等。该软件主要在Linux环境下使用,也有Windows版本的,但需要预先安装Cygwin等模拟软件。GMT使用起来和GAMIT类似,都是纯命令行方式,没有操作界面,用户需要输入各类命令和参数,然后根据资料库中的地理信息,生成ps格式的地图文件。
2 搭建流程及相关配置在官方网站(http://releases.ubuntu.com/lucid/)下载稳定版本Ubuntu 10.04.4 LTS (Lucid Lynx)的安装文件,其中有两个版本可供选择,一个是适用于几乎所有基于Intel、AMD等处理器的个人电脑,以及基于Intel处理器的苹果个人电脑;另外一个则适用于64位处理器的电脑。一般情况下选第一个即可,即在网页上点击PC (Intel x86) server install CD即可下载镜像文件,大小约670 MB。下载好后,需要制作成安装光盘,利用光盘刻录软件(例如光盘刻录大师,用360软件管家即可自动免费下载安装),选择刻录光盘映像功能,添加下载的映像文件(后缀名为iso),在具有刻录功能的光驱里放入CD光盘,即可完成制作。
选择一台准备用做数据处理的服务器、台式机或者笔记本,建议最好是将Ubuntu安装在一个没有其他操作系统的电脑上,尽量不要安装双系统,比如一台电脑既有Windows,又有Linux,如果是这种情况,常规都是首先安装Windows,然后预留一块空白磁盘区域安装Linux,这样一旦安装Linux失败,会导致Windows无法启动,更严重的情况是有可能导致Windows文件系统的数据丢失。因此建议直接用一台单独的电脑安装Ubuntu,以目前行情一台5 000元左右常规配置的台式机,足可以满足200个左右GPS连续观测站的日常数据处理工作需要。
在安装前,最好为电脑接上可以上网的网线,这样在安装过程中Ubuntu会自动配置网络设置并接入Internet。将Ubuntu安装光盘插入准备好的电脑光驱中,在BIOS里将电脑设置为首先从光盘启动,重启,进入Ubuntu安装界面,根据提示选择“中文(简体)”,之后系统开始自动安装,中途会暂停数次要求用户做相应的操作,依次为:选择“安装Ubuntu服务器版”-为Ubuntu设置主机名(例如GPS-pc)-选择“向导-使用整个磁盘并配置LVM”-选择要分区的磁盘(选择整个磁盘)-选择“移除现有的逻辑卷数据”-选择“安装全新的Ubuntu操作系统”-为Linux设置一个用户名和相应的密码-选择“自动安装安全更新”(如果已联网),至此,如果一切顺利的话,Ubuntu就安装成功了,具体安装时间与电脑配置及网速有关,一般耗时约半个小时。系统自动重启后便进入了Ubuntu操作系统。用户会发现刚进入的系统里没有任何界面,完全是命令行模式,这是因为这个版本的Ubuntu只具备最基本的Linux操作系统功能,用户可以根据自己的喜好选择不同风格类型的桌面进行安装,推荐安装经典的GNOME桌面。安装时,要确保电脑已经联网,并且以下提到的所有安装过程都是基于电脑已联网的前提。
Ubuntu与其他Linux操作系统相比,一个明显的优势是安装软件非常方便,只要配置好软件源(一般系统默认配置即可),直接输入软件名称,系统就会自动下载软件安装文件、自动编译、自动安装、自动设置路径,无需用户干预,用户需要做的仅仅是了解自己的需求,找到能够满足需求的软件以及如何使用该软件。在终端输入:sudo apt-get install ubuntu-desktop,即可安装GNOME桌面环境,由于要下载大量的安装文件,安装过程可能耗时较多,主要取决于网速,用户有时需要耐心等待。安装完成重启后便可进入经典的GNOME桌面系统,该桌面是一种让使用者容易操作和设定电脑环境的工具,目标是基于自由软件,为UNIX或者类UNIX操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,其某些方面类似于Windows,对于习惯了Windows操作风格且具备一定Linux基础知识的用户来说,使用GNOME桌面会十分得心应手,并且能够很快找到与自己专业领域结合的切合点,高效地为项目服务。第一次进入系统默认是英文环境,在系统-管理-语言支持中,选择“自动下载安装完整的中文支持”,重启后即可切换为中文环境。
在Linux系统下,一般都是利用各种命令来实现预定的功能,因此会经常用到终端,在应用程序附件中点击“终端”即可启动终端,或者使用快捷键ctrl+alt+T。当需要频繁启动终端时,使用快捷键的一个弊端是:打开的终端均在主目录下,还需要在终端中进行目录切换。因此为了方便使用,应把终端添加到右键菜单上,在终端输入如下命令即可实现:sudo apt-get install nautilus-open-terminal,这样在需要调用终端时,在工作目录点右键即可打开终端,并且打开的终端路径位于工作目录下。
在Ubuntu系统中,要想获得管理员权限,应使用sudo命令,而不是以root身份登录。sudo是一个允许系统管理员授权让普通用户执行部分或全部root命令的工具,这样可以减少root登陆系统的频率,以提高系统的安全性。sudo使一般用户不需要知道超级用户的密码即可获得root权限,在一般用户需要取得高级权限时,可在执行命令前加上sudo,此时系统将会询问该用户自己的密码,以确认终端前是否为该用户本人,回答正确后系统即将该命令的进程以超级用户的权限运行,之后的一段时间内(默认为5 min,可在/etc/sudoers自定义),使用sudo不需要再次输入密码。当使用鼠标打开某个文件夹时,会碰到需要以管理员的身份打开某个root权限的文件夹,为了使用方便,可以在右键添加“以root权限打开文件夹”,在终端输入如下命令即可实现:sudo apt-get install nautilus-gksu。
安装各种压解/解压缩工具,在终端输入:sudo apt-get install ncompress unrar p7zip-full unzip。
安装FTP工具,在终端输入:sudo apt-get install gFTP。
安装GMT绘图软件,在终端输入:sudo apt-get install GMT。
Linux和Windows生成的文本文件,回车符是不同的,在Windows下回车符是\\r\\n,在Linux下回车符是\\n,当在一种系统下生成的文件应用于另一种系统时,两者需要转换,一般使用dos2unix、unix2dos命令进行相互转换,但是从Ubuntu10.04开始不再使用这两个命令,而是改为todos和fromdos,用法和功能不变,在终端输入如下命令即可安装这两个小程序:sudo apt-get install tofrodos。
安装libx11-dev,在终端输入:sudo apt-get install libx11-dev。
安装gfortran,在终端输入:sudo apt-get install gfortran。
安装csh,在终端输入:sudo apt-get install csh。由于Ubuntu默认是bash,而GAMIT要求默认shell环境为csh,因此需将默认shell改为csh,在终端输入:chsh-s /bin/csh,重新登录后即可。在终端输入:echo $SHELL,即可显示当前shell状态。配置好以后,还要对C shell环境变量进行设置,一般情况下,在主文件夹下,会有一个.cshrc的隐藏文件用来控制C shell,如果没有,用户可以自己在主文件夹下新建一个同名的文件,并在里面输入配置信息。主要的配置内容和含义如下:
set path=(./bin/sbin/usr/bin/usr/sbin/usr/local/bin/usr/local/sbin/usr/games),设置系统搜索路径;
set path=($path/opt/gamit10.4/com);
set path=($path/opt/gamit10.4/gamit/bin);
set path=($path/opt/gamit10.4/kf/bin),设置GAMIT路径;
set path=($path/usr/lib/gmt/bin),设置GMT路径;
set path=($path/opt/qoca),设置QOCA路径;
set path=($path/opt/teqc),设置TEQC路径;
setenv HELP_DIR /opt/gamit10.4/help/,设置GAMIT帮助路径;
setenv INSTITUTE CEA,设置组织机构名称。
以上安装过程都顺利完成以后,就具备了安装GAMIT的基本环境,其中csh、libx11、gfortran是安装GAMIT的必备条件,必须要首先将这3个工具安装好,安装GAMIT才有可能成功。在安装GAMIT的时候,要特别注意的是,一定要以普通用户的身份去安装,而不是管理员root权限去操作,否则在以后使用GAMIT的时候,会出现调用上的困难,因为普通用户是无法调用root权限文件的。
GAMIT的安装不同于上述其他软件,虽然GAMIT也是免费软件,但是在使用前需要获得授权,给GAMIT联系邮箱发电子邮件进行申请,审核通过后会获得一组用户名和密码,利用用户名和密码即可在指定的FTP站点下载GAMIT安装文件。Linux中一般默认将第三方软件安装在/opt目录下,因此在/opt目录下新建一个文件夹,并根据GAMIT版本号命名(如gamit10.4),由于/opt属于root权限目录,因此要使用管理员权限才能在此目录下新建文件夹,建好之后,将新建文件夹权限放开,即设置为普通用户可读写,再以普通用户身份进入这个文件夹,将安装文件复制到当前目录,找到脚本文件install_software,为其赋予可执行权限,在终端输入:./install_software,之后安装程序会自动解压全部安装文件并执行安装,整个过程基本不用人工干预,只需根据提示输入是(y)或者否(n)。
GAMIT的安装对平台环境很敏感,经常会由于缺少某些库函数或者环境不具备而频繁报错退出,这时就需要读者根据报错提示查找原因,本文所述的安装过程及配置经过了多次测试,如果按照本文的安装步骤及要求进行操作,一般会顺利完成GAMIT的安装。需要注意的是,在解压安装文件之后,需要手动更改文件/libraries/Makefile.config的配置,用文件编辑器打开该文件,将其中的一组参数修改为:MAXSIT 99,MAXSAT 32,MAXATM 25,MAXEPC 2880。其中MAXSIT表示同时最多可解算的测站数,由于GAMIT的基本原理是大网解算,即将所有待估参数置于同一矩阵一次完成解算,随着测站数的增加,解算时间会成几何倍数增加,因此要同时兼顾一个网中的最多测站数和时间成本,测站数不宜太多,根据目前电脑的计算能力和经验,99为一个可接受的最大值。如果一个工程中测站太多,或者同时需要解算许多个测站,则应考虑分区解算,即分多个网单独解算,最后在GLOBK阶段进行合并。
3 平台测试选取中国地壳运动观测网络[8]27个测站1天数据进行平台测试,主要内容为测试平台的稳定性及各个软件的可用性。利用GAMIT软件进行数据处理时,数据准备是一项庞大而又繁重的工作,必须把所有需要的文件都一一准备好,缺少任何一个文件,程序都会报错退出[9]。有时可以通过错误报告找到具体缺少哪个文件,有时则需要根据经验来判断出错的原因。解算时需要的文件如表 1所示(以处理2008年年积日为123这天的数据为例)。
| 表 1 GAMIT运行文件表 Table 1 Running Files for GAMIT |
![]() |
一般情况下,按照GAMIT软件的惯例,首先要建立年/年积日的工作目录,然后将上述所有文件拷入目录下,每天1个目录,每期1个大目录。文件都准备好以后,以2008年年积日为123这天为例说明如下:①在年积日目录下打开终端,输入命令makexp,根据程序提示依次输入工程名cgs0、轨道名cgs0、年2008、年积日123、L文件名lcgs08.123、导航文件auto1 230.08 n、采样间隔30 s、起始时间0 0、历元数2 880;②生成星历表T文件,输入命令sh_sp3fit-f igs14772.sp3-o cgs0;③检查G文件,输入命令sh_check_sess-sess 123-type gfile-file gcgs08.123;④生成卫星时钟文件J文件,输入命令makej auto1230.08n jauto8.123;⑤检查J文件,输入命令sh_check_sess-sess 123-type jfile-file jauto8.123;⑥生成测站时钟K文件和观测值X文件,输入命令makex cgs0.makex.batch;⑦执行fixdrv命令生成批处理文件,输入命令fixdrv dcgs08.123;⑧执行批处理命令csh bcgs08.bat。
至此,GAMIT开始进行自动批处理解算,耗时与测站数量、数据质量、参数配置以及硬件条件等有关[10],本次解算耗时约2 h。解算完成后,屏幕显示Normal Stop,同时会生成各种结果文件,包括q文件、o文件和h文件等。通过各项精度指标分析结果均正常,接着开始进行整体平差生成时间序列,主要步骤如下:①利用htoglb命令生成GLOBK可以识别的二进制h文件;②利用glred命令将各网合并,生成大H文件;③利用globk命令计算得到测站坐标;④给出测站时间序列;⑤计算速度场。
通过顺利完成计算,可以得出结论,该计算平台运行稳定,在运行过程中,既没有报错,也没有死机,得到了需要的结果,证明所有的安装操作都是正确的,该平台可用于GPS数据的日常处理工作之中。
4 结束语GAMIT几乎可以装在任何版本的Linux上,比如SUSE、红帽子以及Fedora等等。笔者也曾在这些主流的Linux上安装使用GAMIT,对比发现,还是Ubuntu更好用一些,原因如下:Ubuntu系统永久免费使用,可以在其官方网站任意下载,无论是单位还是个人用户在使用时,都不需要考虑版权事宜,并且有一个专业的商业团队在持续开发和维护,有稳定的技术支持;Ubuntu界面友好,尤其是对于习惯了Windows操作风格的初学者,Ubuntu经典的GNOME桌面基本类似于Windows,文件管理、应用程序使用及系统配置等等都与Windows相近,用户很容易上手;Ubuntu支持绝大部分的硬件设备,几乎可以安装在任何配置的电脑上,用户一般不需要考虑驱动硬件的问题;Ubuntu用户众多,在使用过程中遇到任何问题,都可以在各种相关的论坛上找到解决方案和帮助,提高了项目执行的效率。
还有一个很重要原因,就是Ubuntu强大的软件管理功能及其海量的源,一般常用的软件,在确保源设置正确并且联网的前提下,用户只需要输入软件名称,系统即可自动完成分析、下载、安装、编译以及路径设置等工作,整个过程无需用户干预,高效方便,简单易用,对于非Linux开发人员来说,这种方式大大提高了工作效率。而且Ubuntu涵盖了海量的软件,即使像非常用的地球物理学领域专业软件GMT,亦可在Ubuntu软件管理器中找到,可见其覆盖面之广。
Ubuntu版本更新较快,一般每半年发布一个新版本,每个版本都有版本号和代号,例如Ubuntu 10.04.4 LTS,代号为Lucid Lynx,其中带有LTS的表示该版本是长期支持版。笔者曾经测试过在目前最新版本Ubuntu 14.04 LTS上安装GAMIT,整个安装过程都比较正常,没有报错,但是在使用时,会出现GAMIT部分模块无法正常运行的情况,例如当运行solve模块时,程序会停滞,既不报错退出,也不进行解算,这种问题对于初学者来说,很难发现和解决,出现这种问题的原因可能是在安装编译GAMIT某些模块的时候,就已经出错,但是安装程序并没有报错退出。GAMIT自2012年以来没有再推出新版本,根据/libraries/Makefile.config第283行可以发现,目前只测试到Linux内核3.0.0为止,而通过uname-a命令查看到最新版的Ubuntu内核是3.1.10,已经超出GAMIT的测试范围,因此在安装使用时容易出现问题。建议读者安装稳定的内核为2.6.32的Ubuntu 10.04.4 LTS。
| [1] | Kaplan E D, Hegarty C J. Understanding GPS Principles and Applications[M]. 2nd ed. Beijing: Publishing House of Electronics Industry, 2007 . |
| [2] | GAMIT/GLOBK[OL]. http://www-gpsg.mit.edu/~simon/gtgk/, 2014 |
| [3] | Ubuntu[OL]. http://www.ubuntu.com/global, 2014 |
| [4] |
Sarwar S M, Koretsky R, Sarwar S A. UNIX教程[M].金恩华, 邱敏, 夏科军.第2版.北京:机械工业出版社, 2006 Sarwar S M, Koretsky R, Sarwar S A. UNIX : The Textbook[M]. Jin Enhua, Qiu Min, Xiakejun. 2nd ed. Beijing: China Machine Press, 2006 |
| [5] | QOCA[OL]. http://gipsy.jpl.nasa.gov/qoca/, 2014 |
| [6] | TEQC[OL]. http://www.unavco.org/software/data-processing/teqc/teqc.html, 2014 |
| [7] | GMT[OL]. http://gmt.soest.hawaii.edu/, 2014 |
| [8] |
陈俊勇. 中国地壳运动观测网络简介[J].
测绘通报,1997,(2) : 8–15.
Chen Junyong. The Introduction About Crustal Movement Observation Network of China[J]. Bulletin of Surveying and Mapping,1997,(2) : 8–15. |
| [9] |
邢诚, 徐亚明, 周校, 等. IBIS-S系统检测方法研究[J].
测绘地理信息,2013,38(4) : 9–12.
Xing Cheng, Xu Yaming, Zhou Xiao, et al. Research on the Testing Methods for IBIS-S System[J]. Journal of Geomatics,2013,38(4) : 9–12. |
| [10] |
姚飞娟, 王建强, 刘伟, 等. GPS历元比较时间对齐方法[J].
测绘地理信息,2014,39(1) : 17–22.
Yao Feijuan, Wang Jianqiang, Liu Wei, et al. Time-aligned Method of GPS Epoch Comparison[J]. Journal of Geomatics,2014,39(1) : 17–22. |
2016, Vol. 41


