新一代雷达PUP产品快速调阅关键技术研究与应用

2019-03-04 11:05潘习元梁慧黎直
电脑知识与技术 2019年34期

潘习元 梁慧 黎直

摘要:在新一代天气雷达业务应用中,PUP软件调阅雷达产品是预报员做预报最常用的操作模式,由于雷达软件系统的升级,使产品索引文件从产生雷达产品开始产生,然后不断地追加产品信息,文件变得越来越大,如果依靠人工进行删除,不仅文件目录多,操作起来困难,而且从删除那刻起,要等下个雷达数据产生的时次再次生成索引文件,这样PUP软件调阅时只能显示再次生成索引文件时间的产品,之前的产品只能通过打开目录的方式单一调阅,这样不利于预报员做预报服务,用截斷方式可以保留产品显示再次生成索引文件那刻起前一部分的产品。该文介绍了雷达产品自动删除和产品索引文件自动截断的关键技术和解决方案,通过计算机实现了文件删除和截断的自动批处理。

关键词:雷达产品;快速调阅;批处理技术

中图分类号:TP3 文献标识码:A

文章编号:1009- 3044(2019)34-0231-03

梧州市新一代天气雷达软件系统从2018年由WINDOWS版本升级到LINUX版本后,系统运行稳定。在使用过程中,发现PUP系统软件存在一些问题,一是不能自动删除指定保存天数前的PUP产品,只能靠手动定期删除,否则会导致硬盘空间不够,同一目录下的文件太多,检索不了,软件无法正常运行,影响数据传输,同时影响PUP软件列表显示,调阅也受一定影响。二是不能自动截断产品索引文件,将前面的索引记录进行剔除,随着索引记录不断添加,索引文件越来越大,导致进行雷达产品调阅显示时异常缓慢,影响天气预报分析。因此,删除产品和截断索引文件的方法极其重要。2019年,自主研发基于CINRAD/SB雷达PUP产品自动删除和索引文件自动截取处理程序。目前,该程序在梧州雷达站进行业务应用。本文以CIN-RAD/SB产品自动删除和索引文件截断为例,就一些关键性技术问题进行系统地阐述,并简要介绍该程序的业务应用情况。

1 流程架构

在雷达产品快速调阅关键技术中,首先,雷达产品各目录下的产品删除,其次,雷达索引文件的截断方法。图1是程序流程图。

2 雷达产品目录结构和索引文件格式

2.1 雷达产品目录结构

一级目录名为“29774”,一级目录下有“CAPPI"“CAR”“CR”“CS”“ET”“HI”“HSR”“M”“OHP”“PPI”“R”“SHEAR”“SRM”“SS”“STI”“STP”“THP”“TOPS”“TVS”“V”“VIL”“VWP”“WER”23个二级目录;二级目录“CAPPI”下有“110”和“110[QC]”2个三级目录,二级目录“CAR”下有“110”1个三级目录,二级目录“CR”下有“37”“37[QC]”“38”和“38[QC]”4个三级目录,二级目录“CS”下有“87”1个三级目录,二级目录“ET”下有“41”1个三级目录,二级目录“HI”下有“59”和“59[QC]”2个三级目录,二级目录“HSR”下有“33”和“33[QC]”2个三级目录,二级目录“M”下有“60”和“60[QC]”2个三级目录,二级目录“OHP”下有“78”和“78[QC]”2个三级目录,二级目录“PPI”下有“19”“19[QC]”“20”“20[QC]”“26”“26[QC]”“27”和“27[QC]”8个三级目录,二级目录“R”下有“19”和“20”2个三级目录,二级目录“SHEAR”下有“87”和“87[QC]”2个三级目录,二级目录“SRM”下有“56”和“56[QC]”2个三级目录,二级目录“ss”下有“62”和“62[QC]”2个三级目录,二级目录“STI”下有“58”和“58[QC]”2个三级目录,二级目录“STP”下有“80”和“80[QC]”2个三级目录,二级目录“THP”下有“79”和“79[QC]”2个三级目录,二级目录“TOPS”下有“41”和“41[QC]”2个三级目录,二级目录“TVS”下有“61”和“6I[QC]”2个三级目录,二级目录“V”下有“26”和“27”2个三级目录,二级目录“VIL”下有“57”和“57[QC]”2个三级目录,二级目录“VWP”下有“48”和“48[QC]”2个三级目录,二级目录“WER”下有“53”和“53[QC]”2个三级目录;每个三级目录下都有1个索引文件和多个产品文件。每个三级目录下都有产品和索引文件。

2.2 索引文件格式

PUP软件产品相应的索引文件为十六进制格式,目前索引文件有两类,一类是文件名带扩展名的,这类索引文件每条索引记录占84个字节,对应的PUP产品命名规则为*.??.*;另一类索引文件名不带扩展名,每条索引记录占256字节,对应的PUP产品命名规则为*一??一*,图2是带扩展名的索引文件数据格式,图3是不带扩展名的索引文件数据格式。

3 关键技术

使用LINUX SHELL编写PUP产品删除和索引文件截断脚本程序,通过crontab命令将脚本程序提交给cron这个守护进程来定时执行。

3.1 PUP产品删除

find命令是LINUX系统用来在指定目录下查找文件的命令,通过设定不同的参数可以查找特定条件的文件。使用find命令找出PUP产品目录products下所有子目录N天前生成的文件,利用rm命令删除这些文件,达到删除N天前的PUP产品的目的。

3.2 PUP产品索引文件的截断

LINUX系统dd命令可以跳过一个文件前面指定的字节数后读取文件后面的内容输出到另一个文件,使用该命令可以完成对PUP产品索引文件的截断。根据当前索引文件的大小和要保留N天记录的索引记录大小来确定要跳过的字节数,将索引文件后面的内容读取生成新的文件,用新的文件覆盖原来的索引文件,就达到对PUP产品索引文件的截断。对PUP产品索引文件进行截断,只保留最近N天的记录,关键是要确定保留N天记录的索引文件大小,大小=每个索引记录字节数×一个体扫生成的产品数×某个产品一天生成个数×保存天数N。通过检查索引文件是否带扩展名就可确定一个索引记录所占的字节数。一个体扫生成的产品数可通过检索该目录下最近一个时次生成的产品文件得到。目前新一代雷达每6分钟完成一个体扫,所以一个产品一天共生成240个文件(60÷6x24=240)。

4 源代码和应用方法

4.1 源代码

新一代雷达PUP产品的定时自动删除和索引文件自动截断程序使用Linux Shell编写。程序工作流程图如图1所示。Shell脚本程序delfiles.sh代码如下所示:#!/bin/sh

#设置产品存放目录

dir=”/opt/pup/products”

#根据需要设定保存天数

keep=5

#每天每类产品索引条数

cnt=$《$keep+ 240》

cd $dir

echo、date'”start”》delfiles.log

#删除设定保存天数前的文件

find $Location -mtime +$keep -type f -name”丰774*”-execrm—f(}\;

#下面对Productlndex索引文件进行截断

for i in $(find $dir -type f -name”Productlndex*”)

do

#根据是否有扩展名确定索引记录长度和产品命名规则

ftype=${i##*}

len=${#ftype}

if(($len>3))

then

fname=”*_??_*”

idxsize=256

else

fname="#.??.*”

idxsize= 84

fi

#确定每个体扫生成的产品数

fcnt= $(find ${i%*]-type f -name $fname -cmin -6lawk

'END{print NR}')

if(($fcnt==0))

then

fcnt=l

fi

#计算索引文件的大小

indexsize=$《$cnt * $fcnt * $idxsize))

#获取当前索引文件大小

size=$(wc$i—c lawk{print $1}')

#下面对超大的索引文件进行截断成设定的大小

bsize=$《$size - $indexsize》

if(( $bsize>0))

then

#截斷生成一个indexsize大小的文件Productlndex

dd if=$i of=Productlndex bs=$bsize skip=l

#用Productlndex文件覆盖原索引文件

\cp—r-a Ptoductlndex$i

fi

done

echo 'date'done" 》delfiles.log

4.2 应用方法

首先,在雷达PUP产品目录products下建立shell脚本文件delfiles.sh,将其属性改为可执行;其次,在products下打开Linux终端窗口,输入命令:echo ‘- 30 0***/opt/pup/products/delfiles.sh>delfiles. cron生成定时任务文件;最后,输人命令crontab-delfiles.cron向系统提交定时任务。完成以上三步后,Linux操作系统每天0点30分就会执行delfiles.sh脚本程序对雷达PUP产品进行自动删除和索引文件自动截断处理。可根据需要修改定时任务文件来设定脚本文件启动执行时间。

5 结束语

目前雷达PUP产品定时自动删除和索引文件自动截断处理程序已在梧州雷达站投入运行。从运行情况看,程序运行稳定,每天能定时快速对PUP产品目录下50多个子目录的过期文件进行删除和60多个索引文件进行截断处理,避免了因产品文件过多,手工删除不及时导致硬盘空间不足的情况发生,解决了因索引文件过大导致进行雷达产品检索显示时异常缓慢的问题,对提高新一代雷达PUP系统的稳定运行和雷达产品检索速度具有良好的辅助作用。

参考文献:

[1]北京敏视达雷达有限公司.PUP系统软件使用手册,

[2] https://man.linuxde.net/ Linux命令大全(手册).

[3] http://c.biancheng.net/shell/ SheU脚本:Linux Shell脚本学习指南,

[4] ljianhui. ttps://blog. csdn. netfljianhui/article/details/43128465Linux shell之提取文件名和目录名的一些方法,

[5]瓜而不皮.https://blog. csdn. net/qq_3259063 1/article/details/79270860 LINUX下定时任务删除N天前的文件,

【通联编辑:代影】

收稿日期:2019-09-20

基金项目:梧州市气象局科学研究与技术开发项目(梧气科2018004)资助

作者简介:潘习元(1972-),男,工程师,现从事网络信息、装备保障等工作。