电脑技术学习

在Linux操作系统下安装与运行GAMIT软件

dn001

  本文主要介绍了Linux操作系统中GAMIT的安装过程,并结合实例介绍了其使用方法。

  1、引言
  随着GPS技术的发展,在大地测量、工程测量、地球动力学、GPS气象学等多种学科中得到广泛的应用,精密解算GPS观测数据的软件也得到了重视与发展。国内外开发了许多GPS数据处理软件,主要有著名的美国麻省理工学院(MIT)和斯克里普斯海洋研究所(SIO)开发的GAMIT软件,美国宇航局(NASA)喷气推进实验室(JPL)研发的GIPSY-OASIS软件,以及瑞士伯尔尼大学天文研究所研制的BERNESE软件等几种。本文主要介绍GAMIT软件,其最主要的特点是其解算精度高,且免费开放源代码,用户可以根据需要对源程序做相应的修改,以便于科研工作。

  2、GAMIT简介
  GAMIT可以解算卫星轨道、测站坐标、大气延迟、整周模糊度等。它主要由以下几个模块组成:ARC(轨道积分)、MODEL(组成观测方程)、SINCLN(单差自动修复周跳)、DBLCLN(双差自动修复周跳)、CVIEW(人工交互式修复周跳)、CFMRG(用于创建SOLVE所需的M文件)、SOLVE(利用双差观测按最小二乘法求解参数)。

  GAMIT软件所需的数据是RINEX格式的,可以处理各种不同型号的GPS接收机采集的数据。目前,GAMIT软件支持在UNIX和LINUX操作系统上运行,本文以GAMIT 10.2和LINUX RedHat 9.0为例来讲解其安装与使用过程。

  3、软件的安装

  3.1 LINUX系统的安装

  首先确保电脑上有足够的空间来安装LINUX,在这推荐至少有10G的空闲空间。LINUX系统的安装可选择从光盘安装,硬盘安装或网络安装,一般选择从光盘安装。在光驱中插入安装光盘,从光盘引导后,根据安装向导的提示,就能完成LINUX系统的安装。

  3.2 LINUX编译器的更新
  LINUX系统的C和Fortran编译器系统默认的文件选项中MAXUNIT为100,而GAMIT软件源代码中则要求MAXUNIT为10000。如果不进行修改而直接进行GAMIT软件的安装,则会产生很多的警告性错误,造成安装后无法正常运行。安装GCC的步骤如下:用户可以从网站上(http://gcc.gnu.org)下载GCC编译器2.95.3或以上版本的源代码,拷贝至/usr/gcc目录下,进入该目录,用tar zxvf 命令将其解压后,找到gcc-2.95.3/libf2c/libI77/目录下的fio.h文件,用vi命令打开,将#define MAXUNIT 100这一行改为10000,保存后,退到/usr/gcc目录,重新进行编译和安装GCC。

  3.3 GAMIT系统的安装
  从麻省理工学院的FTP服务器(http://bowie.mit.edu)下载GAMIT软件包,其中包括了软件源代码和安装包。在LINUX系统中创建/usr/gamit目录,将GAMIT安装包目录/source下的文件拷贝至此,其中有安装批处理文件install_software和几个以.tar.Z结尾的压缩文件,以10.2版为例,分别为:


install_software 安装批处理文件

com.10.2.tar.Z 组件压缩包

gamit.10.2.tar.Z gamit软件压缩包

help.10.2.tar.Z 帮助系统压缩包

kf.10.2.tar.Z kf软件压缩包

libraries.10.2.tar.Z 库文件压缩包

templates.10.2.tar.Z 数据模块压缩包

maps.10.2.tar.Z 地图数据压缩包


  在安装软件前,要做一些相关配置。首先,要对安装程序的配置文件Makefile.config进行修改。与系统相关的设置主要是库文件和编译器的路径设置,在linux redhat 9.0下设置的路径为:


X11LIBPATH /usr/X11R6/lib

X11INCPATH /usr/X11R6/include/X11

与GPS数据处理相关的几个参数为:

MAXSIT 最大测站数 默认值45

MAXSAT 最大卫星数 默认值30

MAXATM 最大天顶延迟参数 默认值49

MAXEPC 最大历元数 默认值2880

  以上几个参数可根据用户的实际研究需要作相应的修改。其次,由于install_software是用C shell写的安装脚本,所以在运行install_software前要确保命令解释程序为C shell,且install_software具有可执行的属性,可用命令chmod +x为其添加可执行属性。


  做好这些准备就可以安装软件了,进入/usr/gamit目录,运行命令./install_software,然后根据屏幕给出的提示给予回应,就可以完成安装。

  3.4 设置软件路径
  等待上述安装过程结束之后,并不能正常运行GAMIT软件,要对.cshrc文件配置。把路径/usr/gamit/com、/usr/gamit/gamit/bin、/usr/gamit/kf/bin,加入到path。这样做是因为我们在控制台中运行程序时,使用的是bash shell,若不改写C shell配置文件,会导致系统无法从路径中调用到GAMIT的命令。这样GAMIT软件才算真正地完成了安装。

  4、运行实例
  本文选取了2006年,年积日为100天的安徽黄山(ahhs)、安徽马鞍山(ahma)、江苏常州(jscz)、江苏高邮(jsgy)、上海奉先(shfx)、上海浦东(shpd)6个国内的GPS观测站的观测资料。

  4.1 数据准备
  建立rinex、eph、tables目录和以年积日100命名的工作目录。在rienx目录中准备该天的所选用的各个观测站的观测文件o-files。在eph目录中准备导航文件auto1000.06n,GPS卫星星历igu13701.sp3,极移表pole.,TAI-UT1国际时间系统表ut1.,坏卫星信息文件svs_exclude.txt。在tables中建立:测站信息文件station.info,测段信息控制文件sestbl., 测站信息控制文件sittbl.,天线相位中心改正表antmod,dat,周跳的自动探测和修改命令表autcln.cmd,地球形状参数表gdetic.dat,跳秒表leap.sec,月亮表luntab.,章动表nutabl.,太阳表soltab.,星号对照表svnav.dat,接收机及其天线型号对照表rcvan.dat。


  上述的文件,可以在网站(ftp://lox.ucsd.edu)下载2006年底100天的卫星星历,以及2005年的太阳表、月亮表和章动表(这些表每年都要更新,因此要下载所处理数据当年的),其余的文件在安装GAMIT时是自带的,复制到对应的文件夹下即可。需要注意的是, station.info, sestbl., sittbl.这三个文件,应该根据实际处理的情况做相应的修改。


  编辑station.info文件:首先打开o-files,记录每个选用台站的X、Y、Z方向的高度和接收机型号、天线型号,然后来校正station.info文件中的数据,以求每一个站都有正确的天线高度等信息。开始和结束时间形如:0 0 0 0 24 0 0,则天线信息不仅适用于这一天,而且适用于以后的天,直到有更新的信息。同一站的信息可以出现多次,但不必相邻,但必须是按时间先后顺序排列的。


  编辑sestbl.文件:文件选择计算方案和设置与计算方案相应的参数。主要设置下面几项:


A、Choice of Experiment

RELAX:定轨、定位、解ERP;

BASELINE:仅仅定位。

B、Choice of Observable

LC_HELP:用LC观测解模糊度;

LC_RANGE:用LC观测模糊度,但更强调伪距的作用;

LC_ONLY:用LC观测,不解模糊度;

L1_ONLY:仅仅使用L1,解模糊度,对于几公里的小网;

L2_ONLY:仅仅使用L2,解模糊度,对于几公里的小网;

C、Zenith Delay Estimation

YES:解算天顶延迟估计;

NO:不解算天顶延迟估计。

D、Interval Zen


  解算天顶延迟参数的时间间隔。


  编辑sittbl.文件:首先检查是否包括每个选用测站的信息,缺少的信息要补全,然后对每一个站设置先验约束。这里主要是对台站在X、Y、Z方向摆动的作限制。

  4.2 数据处理步骤
  (1)用ln命令链接../rinex,../eph,../tables内的文件到work;

  (2)执行makexp程序建立所有准备文件的输出及一些模块的输入文件。系统会提示让输入试验名、轨道名、year、doy、session number、概略坐标文件、导航文件名,系统还会提示输入采样间隔、起始时间、历元数。这样,我们依次输入pgga,pgga,2006,100,0,lpgga,auto1000.06n,60 0 0 1440即可。

  (3)sh_sp3fit –-f igu13701_18.sp3 –-d 2006 099 100 –-t tpgga6.100

并将生成的*.099文件改名为*.100

  (4)makej auto1000.06n jauto6.100

  (5)makex pgga.

  (6)fixdrv dpgga6.100

  (7)csh b*.bat


  以上pgga为工程名称,可以根据需要进行替换。

  4.3 数据处理结果分析
  此次数据处理例子是解算对流层天顶延迟的。结算的精度与可靠性主要看两个方面:


  (1)是否使用了足够的资料。所得基线分量的精度是衡量这个标准是否满足的标志。此例中基线边解算精度的统计如表1所示。


  由表1可以看到,GAMIT解算得到的基线相对精度均优于对台站坐标和卫星轨道所加的约束10-3。


  (2)对资料的拟合模型是否达到它的噪声水平。满足这个条件的判据是解的nrms(normalized rms),即每个自由度的chi-square的平方根。其理论值是1,但实际上这个值在0.25左右才算正常,本例中nrms=0.28。如果这个值大于0.5,则意味着有残余的周跳,或是有严重的其它问题。


表 1

基线边

基线长(m)

精度(m)

相对精度

AHHS- AHMA

221380.31016

0.00386

1.74×10-8

AHHS- JSCZ

288514.33161

0.00344

1.19×10-8

AHHS- JSGY

358731.77533

0.00354

0.99×10-8

AHHS- SHFX

335520.06794

0.00456

1.36×10-8

AHHS- SHPD

355131.54150

0.00496

1.40×10-8

AHMA- JSCZ

139674.63390

0.00490

3.51×10-8

AHMA- JSGY

149475.83358

0.00417

2.79×10-8

AHMA- SHFX

294612.54009

0.00580

1.97×10-8

AHMA- SHPD

293058.38336

0.00645

2.20×10-8

JSCZ- JSGY

114012.99629

0.00343

3.01×10-8

JSCZ- SHFX

176465.95374

0.00508

2.88×10-8

JSCZ- SHPD

165474.09440

0.00610

3.69×10-8

JSGY- SHFX

281897.78401

0.00498

1.77×10-8

JSGY- SHPD

264050.84049

0.00603

2.28×10-8

SHFX- SHPD

32751.45431

0.00630

1.92×10-7

  5、结论

  读者可以根据以上的步骤进行GAMIT软件的安装与运行,不同的硬件配置,处理结果可能有微小的差异。从以上可以得到结论,GAMIT在LINUX系统上的处理结果是可靠的。然而,GAMIT为一复杂的GPS处理软件,在实际使用时,会遇到各种各样的问题,这就需要在实践中不断地摸索总结,这样,才能熟练掌握它。

标签: linux