GAMIT netsel模块子网划分与解算

netsel子网划分与解算

  • [1 netsel模块帮助文档](#1 netsel模块帮助文档)
  • [2 实际使用](#2 实际使用)
  • TODO
  • 参考文献

受限于数组规模,GAMIT软件最多一次只能解算99个站点的网,事实上,GLOBK内置了子网划分程序netsel,在解算时,其实不必额外写一个程序来进行子网划分。本次解算了120余个站点,探究如何利用netsel程序来进行子网划分解算[1]。

1 netsel模块帮助文档

安装了GAMIT后,netsel将被添加到环境变量中,仅需输入netsel即可输出代码块内的内容,从中可知,netsel必须输入以下几个参数/文件:

  • -f RINEX文件的list (通过ls -s <rinex_files>生成)
  • -v 速度场文件(直接使用~/gg/tables/igb14.vel即可)
  • -n 每个网里的站点数目 (根据个人喜好调节)
  • -t 每个网的连接站数量 (通过这些站把各子网连成一张大网,必须大于0)

假设在工程目录的rinex目录下分子网,则以下参数是可选项:

  • -s station.info的文件路径 (默认是../tables/station.info
  • -c 两个字母的子网代码 默认会将各子网的expt命名为ne01,ne02,...,如果更改为hb,则为hb01,hb02,...

netsel会打印一个新生成的sites.defaults,通过指定不同的expt,实现划分子网的目的。

复制代码
NETSEL: Subnetting program for regional GPS networks

NETSEL: Automatic sub-netting of rinex files.  Generates a sites.default file
output to screen (normally redirected into file).  All rinex files to be processed
are assumed to be already in rinex directory and must be downloaded first.

MOD TAH 150512: Upgraded to allow a sh_gen_stats rw file for input to give the list
of sites to make networks from and to limit the rw magnitude of sites in the solutions.
When the -rw option is used, GLOBK use_site list with the globk OPTION selection.

Usage:
netsel <options>
Options are
-f <file> -- List of rinex files generated with ls -s <rinex files>
-v <file> -- Globk velocity file with site coordinates
-n <number> -- Desired number of sites in each network (will be adjusted to make all
               networks about the same size)
-t <number> -- Number of tie sites per network (must be >0)
-s <file>   -- Name of station.info file to use (default ../tables/station.info)
-c <code>   -- Specifies network code (2-characters).  Default ne so that
               networks will be ne01, ne02 .... neNN
NEW: 150512
-rw <file> <maxuse> [minrw] -- sh_gen_stats .rw random walk file name and maximum horizontal
               random walk value to be used.  Output will be GLOBK use_site commands.
               Default for <maxuse> 2 mm^2/yr
MOD TAH 230128: Added optional minrw which sets foor for RW process noise when weighting
               station.  (Default is 0.25 mm^2/yr^2.) Values for individual stations
               are given in output. (Sort to find median).

EXAMPLE: Normally run from control directory.
In this case we have 484 sites so about 13 networks will be formed.  With -t 2, the overarching netw
have 26 sites (2x13).

ls -s ../rinex/*3280.13o > list.2013.328
netsel -f list.2013.328 -v ../tables/TVN_US_2010.vel -n 40 -t 2 -c tr > & ! ../tables/sites.defaults

Output: ../tables/sites.defaults.2013.328

Site Range Long   231.8650  307.3222 Latitude    24.6594   62.4809 deg
NETSEL: For  484 sites, with nominal   40 sites per network, final selection is:
NETSEL: Fin   38 sites in   13 networks with   28 sites in one network
NETSEL: Number of tie sites   2
#NETWORK Number 001 with  38 sites
# NN    #      Long         Lat     Name  RK
# 001   1    272.49850     33.16800 AL50  19
# 001   2    272.38440     32.71150 AL55  15
...
# 001  37    271.32690     31.67870 MSWY  21
# 001  38    269.58800     32.84640 MSYZ  14
#NETWORK Number 002 with  38 sites
# NN    #      Long         Lat     Name  RK
# 002   1    270.62340     38.37820 API1  10
# 002   2    268.81050     39.33390 BWGR  15
....
# 013   1    271.51280     32.82960 MSSB 13
# 013   6    262.66600     41.43910 NECB 13
# 013   2    270.31170     38.74750 TKCH 13
 acso_gps   tr05  xstinfo
 acu5_gps   tr13  xstinfo
 ... xcty_gps   tr07  xstinfo
 yell_gps   tr13  xstinfo
 zphr_gps   tr07  xstinfo
 zphr_gps   tr06  xstinfo

(Note here zphr is used in two networks.  No site should be used more than twice).

2 实际使用

建立工程文件夹hbc1,在hbc1文件夹内放置brdc、igs和rinex,(事先通过脚本改名,gfzrnx进行rinex文件的格式化操作,统计各天数据的数量,确定站点数据最全的一天用于station.info更新、lfile更新和子网生成),而后进入rinex文件夹,假设48是数据最全的一天,station.infolfile.已经更新好,我想要每个子网内最多55个站,有5个接边站,则进行如下操作:

bash 复制代码
ls -s *0480.26o > list.2026.048
netsel -f list.2026.048 -n 55 -t 5 -v ~/gg/tables/igb14.vel >> ../tables/sites.defaults

经过这番操作,sites.defaults内更新了一些新内容,由于涉及坐标就不展示了。这里生成了4个子网,分别为ne01,ne02,ne03,ne04,在hbc1同级目录建立hbc2,hbc3,hbc4三个目录,分别把brdc,igs,rinex链接进各目录,然后对各子网分别进行更新lfilestation.info的操作,由于sites.defaults对rinex文件夹内所有的观测值分了组,因此可以在sites.defaults内对不参与解算的网添加xsite参数,即:在hbc1文件夹内禁用ne02,ne03,ne04的站,以此类推。这里仅展示控制解算的行:

复制代码
 aaaa_gps   ne01  xstinfo
 ......
 bbbb_gps   ne02  xsite xstinfo
 cccc_gps   ne03  xsite xstinfo
 ......
 dddd_gps   ne04  xsite xstinfo 

操作完成后,启动4个tmux窗口,进入各工程目录,稍微错峰开始解算即可。注意,此时的expt名称要设置为ne01,ne02,ne03,ne04,以第一个子网为例,即:

bash 复制代码
sh_gamit -s 2026 48 57 -orbit igsf -gnss C -expt ne01 -c -metutil Z

TODO

感觉这种操作还是比较麻烦,后面可以搞一套自动化流程来解算。

参考文献

1\] 程传录, 蒋光伟, 聂建亮, 田晓静. 利用双差的超大GNSS基准站网解算方法改进\[J\]. 武汉大学学报 (信息科学版), 2014, 39(5): 596-599.

相关推荐
C++ 老炮儿的技术栈9 小时前
GCC编译时无法向/tmp 目录写入临时汇编文件,因为设备空间不足,解决
linux·运维·开发语言·汇编·c++·git·qt
爱莉希雅&&&10 小时前
linux中MySQL数据库备份恢复的四种方法(更新中)
linux·数据库·mysql·数据库备份·mysqldumper
coppher10 小时前
Ubuntu 22.04 amd64 离线安装 Docker 完整教程
linux·docker
xyz59910 小时前
如何在 WSL 中删除指定版本的 Ubuntu 以及安装
linux·运维·ubuntu
亚空间仓鼠11 小时前
OpenEuler系统常用服务(五)
linux·运维·服务器·网络
minji...12 小时前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++
虚伪的空想家12 小时前
k8s集群configmap和secrets备份脚本
linux·容器·kubernetes
the sun3412 小时前
从 QEMU 直接启动到 U-Boot 引导:嵌入式 Linux 启动流程的本质差异
linux·运维·服务器
草莓熊Lotso12 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·linux·运维·服务器·数据库·c++·mysql
ShineWinsu12 小时前
对于Linux:文件操作以及文件IO的解析
linux·c++·面试·笔试·io·shell·文件操作