前段时间帮师兄处理GNSS数据写了一个Anubis批处理的脚本。脚本当前支持多天多站的GNSS数据处理。下面是脚本的源码,希望对大家有所帮助。
import os
import subprocess
for i in range(307,315):
starttime = ' <beg> "2021-11-03 00:00:00" </beg>'
endtime = ' <end> "2021-11-20 23:59:59" </end>'
filenamen = 'brdc'+str(i*10)+'.21p'![请添加图片描述](https://img-blog.csdnimg.cn/direct/adb94c2e1b34428e9dc5f590fcc14aeb.png)
folder_path = '/home/ziyuan/Desktop/Anubis/OBS' # 将此路径替换为您要获取文件名的文件夹的实际路径
folder_path = folder_path + '/' + str(i)
filexml_path = '/home/ziyuan/Desktop/Anubis/anubis_default.xml'
newfilexml_path = '/home/ziyuan/Desktop/Anubis/anubis_default1.xml'
total_stations = ''
total_files = ''
# 检查文件夹是否存在
file_list = os.listdir(folder_path)
for filename in file_list:
print(filename)
print(filename[0:4])
total_stations = total_stations + filename[0:4] + ' '
total_files = total_files + filename + ' '
with open(filexml_path, 'r') as file:
lines = file.readlines()
lines[15] = starttime
lines[16] = endtime
new_station =' <rec > '+filename[0:4]+' </rec >\n'
lines[18] = new_station
rinexn = ' <rinexn> ./EPH/'+filenamen+' </rinexn>\n'
lines[97] = rinexn
rinexo = ' <rinexo> ./OBS/'+'/'+str(i)+'/'+filename+' </rinexo>\n'
lines[98] = rinexo
lines[119] = ' <xtr> ./OUT/'+str(i)+'/'+'$(rec).xtr </xtr>'
with open(newfilexml_path, 'w') as file:
file.writelines(lines)
print('正在处理第'+ str(i - 306) + '共8个')
subprocess.run('./anubis -x anubis_default1.xml -v 9',shell = True)
使用时需要一个默认的anubis_default.xml配置文件,程序会新建一个anubis_default1.xml。在Anubis文件夹下新建一个OBS文件夹存放观测值文件,新建一个EPH文件夹用来存放广播星历文件。将脚本放在Anubis文件夹下,终端执行此脚本即可在OUT文件夹下查看结果。希望对大家有用。