李翠翠 馮和平 楊震 師遠哲 楊亭

摘 ?要:通過對天氣雷達測試定標自動化系統功能進行需求分析,明確了系統功能模塊和數據庫模型。該系統基于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.