论文部分内容阅读
摘要:在新一代天气雷达业务应用中,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
关键词:雷达产品;快速调阅;批处理技术
中图分类号: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