冉启顺 2016.1.20
目录
一、
前言 ............................................................................................................................ 2
二、数据准备 ........................................................................................................................... 3 1.前期准备 ............................................................................................................................ 3 2.工程目录设置 .................................................................................................................... 3 3.数据下载 ............................................................................................................................ 3 4.更新tables表, ................................................................................................................ 4 5.创立链接 ............................................................................................................................ 7 6.控制文件配置 .................................................................................................................. 13 6.1准备测站列表sites.defaults..................................................................................... 13 6.2准备测站近似坐标文件lfile. ................................................................................... 13 6.3 station.info文件的更新 ........................................................................................... 16 7 修改配置process.defaults、sittbl.与sestbl.文件 ......................................................... 19 7.1配置process.defaults ............................................................................................... 19 7.2配置sittbl.坐标约束文件 ......................................................................................... 19 7.3配置sestbl.改正模型文件 ........................................................................................ 20 三、分布处理 ......................................................................................................................... 22 1 .Makexp ............................................................................................................................ 22 2.精密星历处理 ............................................................................................................... 22 3.文件检查 ....................................................................................................................... 24 4.广播星历处理 ............................................................................................................... 24 5.文件检查 ....................................................................................................................... 25 6.生成中间文件 ............................................................................................................... 25 7.生成bat文件 ................................................................................................................ 26 8.基线解算 ....................................................................................................................... 27 9.基线解算精度评定标准 ............................................................................................... 30 四、cosagps平差 ................................................................................................................... 31
五、建议与说明 ..................................................................................................................... 34 六、相关资料链接 ................................................................................................................. 35
一、 前言
二、数据准备
1.前期准备
首先想好要处理什么时段、什么地方的数据
本文档以处理bjfs,shao,lhaz,urum四个站点2013年2月1日的数据为例 本文档使用软件版本GAMIT10.5
处理环境:win10上的虚拟机ubuntu15.10
2.工程目录设置
在任意位置建立工程文件夹(全文以test为例),并在其目录下建立如下的文件夹:
3.数据下载
在终端中打开test,查询2013年2月1日的年积日,和GPS周等信息 代码:doy 2013 02 01
[1] 在test的目录下再建一个文件夹以032命名的文件夹,此时,test目录下有:
[2] 根据步骤3的信息,到相关网站下载对应的广播星历,精密星历,观测值文件分别放在
文件夹brdc,igs,rinex里面。 当然还涉及到下载的数据解压,.d文件到.o文件的转换等操作,其中广播星历可以不改名字(即可以不用改成brdc0320.13n)
4.更新tables表,
更新准则,下面的表格为准:
还有个dcb.dat需要每次处理都要更新
表文件名 pole.或pole.usno 表含义极移表 每次更新 更新频次每次更新内容更新地址 地球自转参数表月亮表太阳表章动表 pub/gamit/tables/ ut1.或ut1.usno 使用当年的表使用当年的表使用当年的表luntab.2012.J2000 soltab.2012.J2000 nutabl.2012gdetic.dat, leap.sec antmod.dat, rcvant.dat, svnav.dat, 跳秒表大地坐标参数文件天线相位中心改正正表 不常更新 每次更新有新天线时更新有新卫星时更新 卫星列表 接收机天线对照表 svs_exclude.info 坏卫星信息文件 有新天线时更新 每次更新 使用当年的表 otl.grd vmf1映射函数模型 海潮格网数据 使用当年的表
i. 常见文件说明
ii.
更新的准则是:“更新频次”中的红字部分每次处理都更新一下,同时结合本次处理与上次处理的年份是否相同来进行年表的选择。原本有些文件是每周更新一次,但是作为新手为了避免出错还是每次更新吧 有些时候,有些文件找不到,或者
里面没有,则可以忽略。如svs_exclude.info,gdetic.dat常常找不到
我在更新时,这四个文件在服务器上没找到
下图是我更新的文件。原本还应该有2013年的各种年表,但是我之前处理过一次2013年的数据,并且我的gamit安装路径/opt/gamit/GAMIT10.5/tables已经有了2013年的这些年表。
iii.
将上述更新的数据复制到gamit安装目录下的tables文件夹内,并替换原有文件。 我的gamit安装路径是/opt/gamit,即我安装路径下的tables 的路径是:/opt/gamit/GAMIT10.5/tables
iv.
然后将更新后的tables文件夹,即/opt/gamit/GAMIT10.5/tables拷贝(或者设置连接,我习惯拷贝)到test目录下。
因为我之前在/opt/gamit/GAMIT10.5/tables里面放了很多数据,所以它显得特别大1.8G,往往在包含otl.grid的情况下tables也就7~800M吧。
此后,test的结构应是:
4test444444744444448rinex7448032 doy1 doy2 ... brdc igs tables
5.创立链接
这一步相当重要,而且常常容易出错。
1) 将.o文件,.sp3文件,*.*n文件(观测文件、精密星历、广播星历)链接到032的
目录下 执行代码:
2) 链接处理数据需要的各种年表等文件
此时032中有如下的文件:
检查并重新设置断掉的链接,如下图所示:
如:luntab.链接已断(常说的死链接),在032目录下, 执行代码:ln -s ../tables/luntab.2013.J2000 ./luntab. (最后的点号一定要加上)
系统报错,即“无法创建符号链接,luntab.早已存在”,这句话的意思是,032中早已经有了一个luntab.文件(但是我们却看到它是个死链接),删除该链接,重新执行上面的代码。
新链接生成,并打开查看该链接所指向的文件是不是2013年的luntab表
重点检查6-ii的11个文件链接,以及soltab.,nutabl.,用类似的方法建立链接 以下是我手动加入的部分链接:
以下是网上的资料图:
其中还要注意设置:map.grid,otl.grid,atl.grid的链接,我在处理数据时使用的如下链接:
在查看原始GAMIT10.5的解压文件中的tables文件夹的链接atl.grid,如下图所示:
但是我在查看发现它原本有一个atl.grid,上传是2010年8月28,大小也是3.1M,故我断
定,服务器上的atl.grid就是tables里面的ANU100826_grid.atl。
于是我在服务器上下载了一个3.1M的atl.grid拷贝到test/tables中,然后在032里面制作了一个atl.grid的链接。(当然也可以不用下载atl.grid,直接制作指向ANU100826_grid.atl的链接)
综上所述:
更新tables常更新以下11个文件(各种年表除外):
但常常 guess_rcvant.dat 用不到,可以不更新
制作链接特别注意以下几个链接:
在更新tables,建立完连接后执行ls –al 检查链接情况,红色的是死链接:
发现atml.grid的链接已断,于是重新设置即可。至于剩下的红色死链接,我全是忽略了,因为我也不会设置。(好像那个session.info是在正式处理过程中产生的,可以忽略)
总的来说设置链接是及其容易出错,要小心又小心。
6.控制文件配置
6.1准备测站列表sites.defaults
在test/tables下把需要处理的测站加入该表,包括IGS测站和本地测站,并确定工程名。然后将site.defaults在032下设置一个链接
6.2准备测站近似坐标文件lfile.
制作完lfile.文件后不要忘了将lfile.拷贝到test/tables中,同时在032中设置对应链接
lfile.文件是测站近似点坐标(越精确越好,10.4以前的版本里面存放的经纬度信息,而10.4及其之后的版本直接存放x,y,z信息)
GAMIT10.5 的lfile 和apr 文件是同样的
格式,所以我们可以认为apr 文件就是lfile。该文件中保存的是各 个站的初始坐标,至于该文件中的测站坐标要达到什么样的精度,可 参考如下两条:
如果是该站作为基线解算起算点,则该测站的坐标做保持在 5cm 以内,最好不要超过10cm。
如果该测站在基线解算中不作为起算点,则伪距单点定位的 精度即可。
对于IGS站,获取其在特定框架下的精确坐标方法:
首先要确保test/rinex下有itrf08.apr
方法1:
我用的方法(可用于非IGS站):在我的电脑上试了几次,老是最后一步出错,不推荐,但也有教程上是这个方法:
在rinex文件夹下先生成l文件,然后生成l.apr,最后生成lfile.
依次执行代码:
grep POSITION *.13o > l rx2apr l 2013 032
gapr_to_l l lfile. ** 2013 032 方法2:
方法3:
伪距单点定位计算非IGS站的初始坐标实例(假设shao是非IGS站):
执行完之后会生成两个不同格式的测站坐标文件l 和 shao.apr,然后执行
双差定位计算测站的初始坐标实例:
在此例中假设shao站是未知坐标的测站,而bjfs是已知坐标的测站(或起算站)
综上所述:
在生成life.文件时,IGS站的坐标可以直接从框架获得,或者利用双差定位求得。 而非IGS站则可以根据要求精度的高低选择: ✓ 直接提取头信息 ✓ 伪距单点定位 ✓ 双差定位法 ✓ 方法1
常常在伪距单点定位和双差定位法中选择,然后将所须的坐标信息拷贝到lfile.中即可,并将lfile.拷贝到test/tables中,同时在032中设置对应链接
现在,我假设bjfs,lhaz两站点是精度较高的IGS站,坐标直接从框架中获得,而shao,urum站是非IGS站,近似坐标通过伪距单点定位获得。最后按照特定的格式均复制到lfile.文件中
然后将lfile.拷贝到test/tables中,同时在032中设置对应链接
好像不需要在032中设置链接,但是怕出错,我还是设置了,希望没有弄巧成拙
6.3 station.info文件的更新
最后要在032中检查station.info链接是否指向了更新后的station.info文件 在gamit全英文的官方教程(版本10.6,24页)里面有这样一句话:
可见station.Info的链接可以指向下图中选中的文件,也就是说倘若你的test/tables中没有station.info文件,可以自己新建并指向他们。并且这个MIT,SOPAC的文件好像可以在上更新,只是登不上去。练手的话凑合着能用。
在test/tables目录下:
先建立一个sitelist的文件,并录入测站名字(每行首字母空格),不分先后顺序
然后终端打开tables并执行代码:
显示station.info files have 3 sites,这是错误的,一般来说总共有多少测站参与计算就会
有多少个sites,于是回去检查sitelist, ,发现拉萨站写错了,应该是lhaz(所以
在操作过程中一定要小心又小心,切记不能将单词写错,同时也要不害怕出现错误,只要根据其提示,顺藤摸瓜,基本上能修改错误的地方,实在不行重来)
还发现,Recevier name ** not found in rcvant.dat,网上百度了一下说要修改,说得又很模糊,所以不会。又去问了一下师兄,他说可以忽略,所以我也就忽略了(谁知道的话告诉我一声)。
执行上述代码结束后最后一行显示:生成了一个station.info.new,此时需要将其改名为station.info,同时删除原有的station.info的链接。 再执行一次更新代码:
在生成的station.info文件中会有下图中红框的字符串,表示更新成功:
最后在032中检查station.info链接的指向,如果没有的话,自己手动用代码建立一个。
7 修改配置process.defaults、sittbl.与sestbl.文件 7.1配置process.defaults
它里面包含目录信息,改动较小。需要在032中设置链接
7.2配置sittbl.坐标约束文件
对高精度的已知坐标强约束,待求点坐标松约束
非起算点约束量可以更大,如100m。并且如果IGS站列表中没有你所处理数据中的IGS站,需要自己添加,格式一致。
7.3配置sestbl.改正模型文件
配置准则如下面的截图:
下面是我的部分设置:
我没有met.list,met.grid,也没有map.list和map.grid,所以我设置的是N(不使用)
我的atml.list和atl.list是死链接,我又不知道如何制作他们(好像在麻省理工的FTP上可以下载,但是这个FTP好久都登不上去了),于是全选N,而我有atl.grid和atml.grid ,于是选Y
修改完了,别忘了保存,同时为了保险起见到032里面再检查一次几个配置文件是否修改、链接好了
至此,数据准备阶段完成。下面我们开始计算。
三、分布处理
1 .Makexp
在032目录下执行代码:makexp
2.精密星历处理
如下图执行代码:
3.文件检查
执行下图的代码:
对于代码中的gigsf3.032,其中g表示文件类型,中间igsf表示轨道,第一步输入的:
,3表示年的最后一位,032是年积日。
4.广播星历处理
其中auto0320.13n没有改名字作为输入文件,jauto3.032是输出文件
当然也可以在将auto0320.13n改名字后,执行 makej brdc0320.13n jbrdc3.032
5.文件检查
6.生成中间文件
7.生成bat文件
8.基线解算
最后一步还是出错了,但是我百度了一下“RC not executed STOP FATAL Error: Stop from report_stat”在这篇文章的最后一页找到解决方法,也不知道对不对,反正最后是成功解算了。
在032中找到上图的两个文件并删除,然后重新执行基线解算。
中间有很多省略
结算结果精度还算过得去
但是我往往以otesta.032为准
qexpta.doy:解算记录
oexpta.doy为qexpta.doy的简略版
hexpta.yrdoy:协方差矩阵、参数平差值
9.基线解算精度评定标准
(网上各类教程上的标准大同小异) 标准1:
一般NRMS越小越好,一般小于0.25视为解算效果较好, 本次解算的NRMS为0.26,符合要求
基线的X、Y方向误差范围应控制在1cm以内,Z方向的误差控制在1.5cm以内,本次解算所有基线均满足要求
本次解算x,y,z方向的误差均有超过1cm,结果不是很理想,还过得去
最后还有一个基线重复性检验:
但是我的检验失败了,是不是要进行两天以上的数据处理才能进行重复性试验?
至此可以理解为解算完毕,然后进行基线平差,也可以使用GLBOK平差,但是我选择了用COSAGPS进行的平差。
如果想直接用GLBOK进行平差,参考安向东的处理流程。
四、cosagps平差
1. 在032目录下打开otesta.032,并在第二次出现基线信息的地方加入下面红框中的一行
字符串:“cosagps for gamit o-file”最后保存并复制到windows桌面下。
2. Cosa平差
打开cosagps,新建工程,设置如下,其它参数基本默认
3. 导入基线数据
导入从ubuntu里面复制出来的otesta.032
基线的误差有点大(但为了走完流程,有精度强迫症的就凑合着看吧^_^)
4. 导入三维已知坐标
这里就是你解算时坐标起算数据,但是要注意框架和坐标系的统一。
先在点名方框内随便输入数据,然后确定,如下图
在工程目录下找到刚新建的关于起算点坐标的文件,用记事本打开,并将已知起算数据复制粘贴到know文件中,如下图:
5. 三维平差
最后将解算出的shao,urum站的坐标与原本查询到的坐标进行对比即可。以下图片里面的坐标就是我在ubuntu里面采用:
获得的,对比后发现相差不是太
大,但是还是不太理想(不管怎么样将软件走通了)
五、建议与说明
六、相关资料链接
天线查询
TEQC
广播星历下载
(以auto开头的文件,下载后改为brdc开头) (以brdc开头) (以brdc开头)
精密星历下载
用户名:anonymous,密码:email地址
IGS连续站O文件下载
(d文件,下载后用crx2rnx 解压)
(d文件,下载后用crx2rnx 解压)
crx2rnx软件(压缩D文件转为O文件)下载
(WINDOWS版) (LINUX版)
GAMIT的tables文件下载
O、N文件下载
MATLB TOOLS
因篇幅问题不能全部显示,请点此查看更多更全内容