APP下载

批量GNSS数据质量检查程序设计

2014-08-21曹解放韩雪峰刘雪瑞张伟民

全球定位系统 2014年5期
关键词:数据文件质量检查程序

曹解放,韩雪峰,刘雪瑞,张伟民

(61365部队,天津 300140)

0 引 言

GNSS野外测量人员在采集完数据以后,必须对所采集的数据进行质量检查,以检核数据是否合格,作为迁站或者加测的依据[1]。在实际的野外作业中,通常采用TEQC软件对观测数据进行质量检查,该软件是一款功能强大且简单易用的GNSS数据预处理公开免费软件,它的应用非常广泛,主要功能有格式转换、编辑和质量检核等。它对数据质量的检核可以反映GNSS数据的电离层延迟、多路径影响、接收机周跳、卫星信号信噪比等信息[2]。

然而,在Windows操作系统下使用TEQC软件,只能通过DOS窗口发送命令,人机交互性差。给部分计算机知识匮乏的野外作业人员带来极大不便,增加了作业的难度。而且在DOS窗口下无法完成多级目录下原始数据的检索和自动批量处理,检查结果显示不够直观,无法完成大量数据的质量检查结果统计[3]。

为此,本文根据多年的野外GNSS数据采集作业经验和实际作业需求,开发了具有可视化界面、可批量快速质量检查、结果Excel报表输出功能的数据质量检查程序。

1 程序功能

程序主要分为数据检索、质量检查和结果输出三个功能。

1.1 数据检索

数据检索功能主要是完成对在指定目录(包含子目录)下特定格式数据文件的搜索,并记录他们的路径,以便下一步的数据质量检查。

在C#语言中,通过System IO命名空间下的FileSystemInfo类保存文件的基本信息(文件名、大小、路径等),利用循环、递归调用、判断等方法,可以检索到指定目录下符合用户要求的所有文件[4-5]。基于以上原理,本程序设计了“数据类型选择”和“所在目录选择”两组控件,以便用户查找数据。部分代码如下:

private void SearchFiles(string filePath, ref List filesNames)

{

DirectoryInfo dirif=new DirectoryInfo(filePath);

FileSystemInfo[]fsi=dirif.GetFileSystemInfos();

//获取文件夹下的文件

foreach (FileSystemInfo i in fsi)

{

if (i is DirectoryInfo)//如果i是文件夹

{

SearchFiles(i.FullName, ref filesNames);

//递归调用

}

else

if(Path.GetExtension(i.FullName)==".tps")

filesNames.Add(i.FullName);

}

}

以上代码中,利用一次递归调用实现了对主目录下所有子目录的搜索,利用Path.GetExtension()函数获取文件的后缀名,记录后缀名为“.tps”的文件,返回到字符串集合filesNames中。通过上述方法可以搜索目录下指定文件类型的所有文件。

本程序在数据类型选择时可选择标准格式O文件,也可以选择接收机自定义格式tps文件。前者可直接进行数据质量检查,后者需先进行格式转换再进行下一步,格式转换通过TEQC软件或者TOPCON公司自带的tps2rin.exe工具完成。

1.2 质量检查

在完成对数据的检索以后,可以通过TEQC软件进行质量检查。TEQC进行数据质量检查的命令格式为

teqc+qc Ofile

在C#程序中,可以开辟独立线程调用DOS控制台,并向DOS控制台输入自定义的命令,以此完成对指定数据文件的数据质量检查。部分代码为

teqcProcess.StartInfo.FileName="cmd.exe";

//打开DOS控制平台

teqcProcess.StartInfo.UseShellExecute=false;

teqcProcess.StartInfo.CreateNoWindow=true;

//是否显示DOS窗口,true代表隐藏;

teqcProcess.StartInfo.RedirectStandardInput=true;

teqcProcess.StartInfo.RedirectStandardOutput=true;

teqcProcess.StartInfo.RedirectStandardError=false;

teqcProcess.Start();

teqcProcess.StandardInput.WriteLine(dosRoot);

teqcProcess.StandardInput.WriteLine("cd "+"""+teqcPath+""");

teqcProcess.StandardInput.WriteLine(teqcComLine);

teqcProcess.StandardInput.WriteLine("exit");

以上代码中,dosRoot表示数据文件所在的盘符(C、D、E、F);teqcPath表示数据文件的路径;teqcComLine为数据检查的命令:teqc+qc Ofile.

1.3 结果输出

在完成数据质量检查以后,通过搜索检查结果中每行信息的关键字,如“Receiver type”、“Time of start of window”、“MARKER NUMBER”等,读取指定的关键字并利用添加的Microsoft.Office.Interop.Excel引用,将检查结果按行输出到Excel文件中。

2 程序应用

根据设计的功能,本程序可用于大批量GNSS观测数据的质量检查工作中,并在本单位的2014年GPS测前仪器检验工作中得到了实际应用。

打开程序后,如图1所示,首先选择数据类型为*.??o;再选择数据所在目录,本程序自动搜索该目录(包括子目录)下所有O文件,显示在listview控件中,并计算文件数量显示在状态栏左下方;再点击“质量检查”按钮,程序对所有选中的数据文件进行质量检查,片刻之后即可检查完毕;最后点击“保存到Excel”按钮,所有检查结果自动保存到Excel报表中,结果输出报表情况如图2、图3所示

图1 程序运行界面

图2 检查结果输出一

图3 检查结果输出二

3 结束语

通过C#编程,集成TEQC软件,本程序实现了GNSS数据的快速、大批量质量检查功能,并将检查结果保存在Excel报表中,对重点检查的项目,例如时段长度、采样率、中断次数、有效率、MP1、MP2等逐项进行判断,如不符合一定的标准,则突出相应单元格的颜色,使用户能够对所有数据的检查情况一目了然,极大提高数据成果质量检查的效率和准确度。

[1]中国地壳运动观测技术规程[S]. 北京: 中国环境科学出版社, 2004.

[2]TEQC——The Tooklitfor GPS/GLONASS/Galileo/SBAS Data [EB/OL]. http://facility. unavco. org/software/teqc/teqc. html.

[3]李 冲,何鑫星. TEQC在GPS数据质量检查中的常见问题及解决方案[J]. 全球定位系统,2010,35(5):48-50.

[4]王小科.C#开发实战宝典[M]. 北京:清华大学出版社,2010.

[5]黄胜忠.C# 4.0从入门到精通[M]. 北京:机械工业出版社,2011.

猜你喜欢

数据文件质量检查程序
审计署赴江西省审计厅质量检查座谈会
给Windows添加程序快速切换栏
试论我国未决羁押程序的立法完善
基于表空间和数据文件探讨MIS中数据库架构设计
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
中注协举办2016年证券资格会计师事务所执业质量检查人员培训班
加强会计信息质量检查促进会计基础工作规范
基于网络环境的社区协同办公问题探讨(二)
气象数据文件异机备份程序浅析