基于Django的天气雷达测试定标自动化系统设计
2019-12-10李翠翠冯和平杨震师远哲杨亭
李翠翠 冯和平 杨震 师远哲 杨亭
摘 要:通过对天气雷达测试定标自动化系统功能进行需求分析,明确了系统功能模块和数据库模型。该系统基于Django架构,采用Python语言、Bootatrap集成开发包、ajax等技术方法,完成了系统各功能模块的开发。实现测试定标数据的自动化处理、存储,测试结果的异步显示,雷达测试定标人员可及时发现测试定标数据异常问题及时处理,提高了雷达测试定标的工作效率;实现了元数据集、测试分析及测试报告的统一在线管理。
关键词:Django架构 天气雷达 测试定标 自动化
中图分类号:P412.25 文献标识码:A 文章编号:1672-3791(2019)10(b)-0024-02
随着科学技术水平发展,天气雷达测试定标将向自动化、智能化的方向发展。目前,贵州天气雷达的维护测试定标及在建天气雷达测试验收数据均通过人工进行处理,形成纸质材料保管,相对工作效率较低。为了进一步提高天气雷达监测数据质量;为了实现测试定标数据处理的自动化,快速将处理结果在页面上进行异步显示,及时发现问题解决问题,提高工作效率;为了实现测试定标数据的统一在线管理。因此,该文提出了天气雷达测试定标自动化系统设计。
1 Django MTV架构
Django MTV架构包括mysql数据库、model.py模型、static静态文件夹、templates网页模板、views.py视图、urls.py派发网址、Apache服务器。用户发送请求(request),请求先被送到Apache服务器分派工作,分配的工作在urls.py中完成,每次分派的工作都被设置成views.py中的函数,完成数据处理等,再将结果在网页上显示[2]。
2 系统需求分析
根据天气雷达测试定标业务需求,系统的功能分为以下几个部分。
(1)元数据集。用于天气雷达元数据录入、存储、查询、修改,为测试定标提供准确的元数据,实现天气雷达元数据集统一在线管理。
(2)测试定标。该功能是该系统的核心,实现测试数据的录入、存储、自动处理、异常提示等功能。
(3)性能分析。该功能主要包括测试分析报告提示、下载和打印功能。
(4)报告管理。该功能主要包括测试数据存在问题提示和测试报告下载打印功能,实现测试报告的统一在线管理。
(5)用户管理。用户添加、删除、修改等功能。
3 数据模型设计
Django框架自带SQLite数据库,但是SQLite数据库只是一个测试用的小型数据库,真正的网站中使用的数据库还要以MySQL类的正是数据库才行[2],因此在开发环境中安装了MySQL数据库。
该系统用6张表来存放雷达测试定标数据信息分别是:用户信息表、元数据信息表、伺服系统信息表、发射系统信息表、接收系统信息表、系统指标信息表。用户信息表包括用户编号(主键)、用户名、密码、权限;元数据信息表包括站名(主鍵)、站号、波长、天线增益、发射功率、窄脉宽、宽脉宽、水平波束宽度、垂直波束宽度、收发支路总损耗等;伺服系统信息表包括报告编号(主键)、天线水平测量值、方位俯仰角测量值、雷达波束方位角俯仰角;发射系统信息表包括报告编号(主键)、窄脉冲包络测量值、宽脉冲包络测量值、峰值功率测量值、输入输出改善因子测量值;接收系统信息表包括报告编号(主键)、机内外噪声系数测量值、机外动态测量输入值、机外动态终端显示值、机内动态测量输入值、机内动态终端显示值;系统指标信息表包括报告编号(主键)、相位噪声值、地物对消值、机内外回波强度测量值、径向速度正负向测量值。
4 系统实现
4.1 开发环境
系统采用Python3.7语言、Django 2.1、Bootatrap前端集成开发包[3]、Apache服务器、mysql数据库、Geany编辑器。
4.2 部分实现代码
使用Geany创建一个Django工程,添加radar_tests,会产生一些settings.py、model.py、urls.py、views.py等文件,然后新建static和templates文件夹。settings.py是Django工程的配置文件,配置内容包括项目的添加、数据库及静态文件的等,model.py用于创建数据库表,urls.py用于创建网址,views.py用于编写处理数据的相关函数,static静态文件夹用于存放图像、样式、java脚本等文件,templates文件夹用于存放.html文件。
4.2.1 model.py文件部分代码
from django.db import models
class ydata(models.Model): #元数据信息表
z_n=models.CharField(max_length=20) #站名 主键
z_h=models.CharField(max_length=20) #站号
bc=models.CharField(max_length=20) #波长
txzy=models.CharField(max_length=20) #天线增益
…
#def_unicode_(self):
#return self.message
4.2.2 urls.py文件部分代码
from django.template.loader import get_template
from django.contrib.staticfiles.views import serve
urlpatterns = [
path('ydata_lr/',views.ydata_lr,name='ydata_lr'), #元数据录入页
path('ydata_gz/',views.ydata_gz,name='ydata_gz'), #元数据修改页
path('csdb_txsp/',views.csdb_txsp,name='csdb_txsp'), #天线水平测试页
…
]
5 结语
天气雷达测试定标自动化系统采用B/S架构进行开发,界面友好,功能齐全,运行稳定可靠,方便用户使用;该系统可录入、存储、查询、修改元数据,实现了元数据的统一管理;可录入、存储测试定标数据,并自动对测试定标数据进行处理,及时发现测试数据不达标问题,在页面上进行异步显示,提高了雷达测试定标的工作效率;可自动形成雷达性能分析评估报告及测试报告,实现了测试定标的在线统一管理;实现了天气雷达测试定标工作的自动化。
参考文献
[1] 宋玉红,孙宏宇.新一代天气雷达测试及定标数据处理系统[J].内蒙古民族大学学报,2011,17(5):30-31.
[2] 埃里克·马瑟斯,著.Python编程从入门到实践[M].袁国忠,译.北京:人民邮电出版社,2016.
[3] 未来科技.Bootstrap实战从入门到精通[M].北京:中国水利水电出版社,2017.
[4] 李翠翠,冯和平,杨亭.地温传感器检定数据远程智能批量处理的实现及应用[J].气象水文海洋仪器,2017,34(4):51-55.