Gamit_GLOBK学习笔记3之lfile.与station.info

3.1 制作lfile.文件

lfile.文件是测站近似点坐标,近似坐标对基线解算是有影响的,一般情况下是越精确越好。lfile.存放的是经纬度坐标,而lfile.apr存放笛卡尔坐标系,两都没有本质区别,只是同一坐标框架下的两种表达方式,可以通过gapr_to_l这个gamit程序转化。

3.1.1 制作方案

如果该测站为IGS站,那么可以在特定的框架下获取精确的坐标,而如果是非IGS站(即本地测站),那么可以使用下面几个方法:

1. 直接提取头文件信息
2. 伪距单点定位
3. 双差定位法

由于精度是越高越好,所以优先级的顺序为:IGS坐标>双差定位法>伪距单点定位>直接提取头文件信息。

3.1.2 IGS测站

既然是IGS测站,那么最好的方法就是从特定的框架下获取精确坐标了。目前应用最广的框 架是igs08(和ITRF08这两者点轻微的不同,但是差异可以忽略)。提取方法:

$ grep <sitename> itrf08.apr

其中itrf08.apr在gamit/tables可以找到。

本次选用几个站均为IGS测站,所以一般情况下使用这种方法来解决近似坐标的问题。

3.1.3 非IGS测站

很多时候我们使用的数据均为非IGS站的数据,这个时候需要手动生成近似坐标。在gamit中提供了sh_rx2apr命令来完成这个功能。

# 提取头文件信息
$ sh_rx2apr -site o-file
# 单点定位svpos
$ sh_rx2apr -site o-file -nav n-file
# 双差定位svdiff
$ sh_rx2apr -site o-file -nav n-file -ref 已知坐标测站的o-file -apr 已知测站坐标的列表文件

sh_rx2apr会生成两种文件,一种是形如lfile.????,使用经纬度,而另外一种则是形如????.apr,使用笛卡尔坐标。在gamit数据处理中一般使用经纬度坐标,而非笛卡尔坐标(据说两种坐标都可以)。

3.1.4 程序实例

本次假设存在一个IGS站wuhn,其它的均为非igs站,并且lfile. 采用笛卡尔坐标系。则命令为:

# 切换到rinex目录
$ cd test/rinex
# 从itrf08.apr获取wuhn的近似坐标(笛卡尔坐标)
$ grep WUHN_GPS gamit/tables/itrf08.apr > wuhn.apr
# 使用双差定位解决剩余的四个站(直接使用for循环解决了)
$ for i in `ls |grep -E "????0010.15o" | grep -v wuhn`; do sh_rx2apr -site $i -nav ../brdc/brdc0010.15n -ref wuhn0010.15o -apr wuhn.apr ; done
# 将所有近似坐标合并,得到lfile.apr文件
$ cat ????.apr > lfile.apr
# 查看lfile.文件
$ cat lfile.apr
 BJFS_GPS   -2148754.72     4426661.75     4044667.57   0.0000 0.0000 0.0000 2015.00
 CHAN_GPS   -2674435.98     3757156.97     4391530.60   0.0000 0.0000 0.0000 2015.00
 DAEJ_GPS   -3120050.33     4084627.56     3764032.67   0.0000 0.0000 0.0000 2015.00
 SUWN_GPS   -3062031.55     4055462.42     3841826.21   0.0000 0.0000 0.0000 2015.00
 WUHN_GPS -2267749.21858  5009154.31055  3221290.74649   -0.03195   -0.00816   -0.00932 1998.921  0.0006  0.0007  0.0007
# 笛卡尔坐标转成经度度坐标
$ gapr_tol lfile.apr lfile. '' 2015 001
# 查看lfile.文件
$ cat lfile.
Epoch 2015.0000: From file lfile.apr
BJFS BJFS GPS    N39 25 10.72583 E115 53 32.97325 6369600.9959 Ref. Epoch 2015.0000 BJFS_GPS
CHAN CHAN GPS    N43 35 54.33924 E125 26 39.07945 6368231.8833 Ref. Epoch 2015.0000 CHAN_GPS
DAEJ DAEJ GPS    N36 12 56.73278 E127 22 28.08271 6370780.0391 Ref. Epoch 2015.0000 DAEJ_GPS
SUWN SUWN GPS    N37  5 24.64228 E127  3 15.19597 6370434.9366 Ref. Epoch 2015.0000 SUWN_GPS
WUHN WUHN GPS    N30 21 48.69161 E114 21 26.15581 6372678.2085 Ref. Epoch 1998.9210 WUHN_GPS
# 备份并更新tables中lfile.文件
$ mv ../tables/lfile. ../tables/lfile.old
$ cp lfile. ../tables/

3.2 更新station.info

接下来要就要更新station.info。station.info包含了本次要处理的基站的天线方面的信息。gamit/tables下面的station.info里面含有了所有IGS测站的信息。而实际上,只需要本次所需要处理的基站信息就可以了。(station.info 不能凭空生成,必须要求有原station.info文件,且内容至少含有表头)

3.2.1 提取相关站的信息

由于原始的station.info包含了所有测站信息,所以可以使用下面的方法将本次所需要的站的相关信息提取出来。从某种意义上说,本步骤是没有什么意义的,因为station.info一般均会用观测值文件进行更新。
首先要制作一个文件sitelist,包含本次测站名:

$ cd test/tables
# 将测站名写入sitelist
$ echo " bjfs" > sitelist
$ echo " chan" >> sitelist
$ echo " daej" >> sitelist
$ echo " suwn" >> sitelist
$ echo " wuhn" >> sitelist

注意一下,sitelist开头空格,如果开头没有空格,gamit程序就无法识别该内容(不行不说这是一个奇怪的设计)。

然后再执行以下命令来提取相应的station.info信息:

$ sh_upd_stnfo -l sitelist

之后一会出现这样的提示:

station.info files have 5 sites
...
output file station.info.new has 19 entries

表明已提取成功了(站数要对5),结果是将原staion.info备份为station.info.orig,然后重新生成一个新的station.info.new,但是不会覆盖原station.info文件。

其中可能会出现类似这样警告信息:

Receiver name TRIMBLE NetR9 not found in rcvant.dat

对于这种警告信息一般情况下可以不作理会,个人觉得很有可能是这个station.info中的接收机型号名写错了(大小写问题),当然也有可能是真的没有找到这个天线,这个时候应该手动编辑一下这个guess_rcvant.dat这个文件了。

之后再将station.info.new 更名为station.info,然后覆盖即可。

$ mv station.info.new station.info
# 覆盖确认即可

3.2.2 从观测值文件提取测站信息

由于gamit自带的station.info只包含IGS测站的天线信息,而非IGS站均没有涉及,所以大多数情况需要根据观测值文件更新一下station.info。更新方法:

$ sh_upd_stnfo -files ../rinex/*.15o

等待一会,如果没有报错,就算是更新功成功了。更新结果会直接写到station.info这个文件,可以查看一下各测站的session信息(都是2015年当天生效的)

所以station.info一情况下只对当天历元生效,每个DOY都得重新更新staiton.info这个文件。

此条目发表在GAMIT, GNSS, LINUX分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。