国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于“天擎”的模式產(chǎn)品云化技術研究與實現(xiàn)

2022-01-26 05:10夏正龍傅承浩朱亮呂冠儒鐘艷雯
現(xiàn)代計算機 2021年34期
關鍵詞:云化容器算法

夏正龍,傅承浩,朱亮,呂冠儒,鐘艷雯

(1.湖南省氣象信息中心,長沙 410118;2.湖南省氣象防災減災重點實驗室,長沙 410118;3.湖南省氣象臺,長沙 410118)

0 引言

當今,數(shù)值天氣預報取得了迅速的發(fā)展,數(shù)值預報模式和物理過程參數(shù)化方案不斷完善,數(shù)值預報水平在不斷提高,數(shù)值天氣預報已成為每天氣象預報的制作不可缺少的重要基礎和手段[1-2]。預報員每天面對各類數(shù)值模式產(chǎn)品,如何方便快捷地獲取模式產(chǎn)品就成為預報業(yè)務人員的迫切需求。湖南省氣象臺技術人員通過Python等工具成功實現(xiàn)將ECMWF細網(wǎng)格、GRAPES全球、GRAPES中尺度高分辨率、GRAPES3KM、日本中分辨率、德國高分辨率、廣州3KM、上海中分辨率等模式產(chǎn)品生成對應的圖片、文本格式供網(wǎng)站調(diào)用顯示,包括降水類、動力類、熱力類、地面分析類、不穩(wěn)定指數(shù)等共計40多種,每天8∶00、20∶00兩個時次,每個時次共計約3.3萬PNG圖片文件,1.3萬JSON文本文件。

氣象大數(shù)據(jù)云平臺(“天擎”)2020年11月通過業(yè)務驗收評審,在全國投入業(yè)務試運行,各級氣象部門也正逐步開展氣象大數(shù)據(jù)云平臺的研究[3-5],“天擎”建立以分布式關系型數(shù)據(jù)庫、分布式分析型數(shù)據(jù)庫、分布式表格系統(tǒng)、分布式文件系統(tǒng)等多種技術相結合的可擴展、高可用的數(shù)據(jù)存儲管理系統(tǒng),提供結構標準、功能豐富的數(shù)據(jù)訪問服務和應用編程接口,為省、市、縣各級以及云上應用提供唯一權威的數(shù)據(jù)接入服務,本文基于“天擎”所共享的數(shù)據(jù)、接口、容器三大類資源,研究省臺模式產(chǎn)品的云化實現(xiàn),為推進業(yè)務融入改造提供技術支持。

1 數(shù)據(jù)云化存儲

氣象數(shù)據(jù)具有大容量、高速增長、維度高、實時性高、存儲時效長等特點,氣象數(shù)據(jù)的類型多,具有結構化數(shù)據(jù)和非結構化數(shù)據(jù)的特征,針對不同的氣象數(shù)據(jù)類型,“天擎”采用不同的分布式數(shù)據(jù)庫系統(tǒng)存儲策略,數(shù)據(jù)云化存儲主要完成數(shù)據(jù)注冊、數(shù)據(jù)存儲管理,數(shù)據(jù)注冊即分配標準、合規(guī)的四級編碼[6],納入業(yè)務全流程管理、可面向其他用戶進行開發(fā)共享的數(shù)據(jù)或產(chǎn)品的注冊;數(shù)據(jù)存儲包括應用專題庫、云數(shù)據(jù)庫,專題庫可以將自己申請和注冊的數(shù)據(jù)統(tǒng)一分類管理,云數(shù)據(jù)庫向用戶提供定制化、高性能、高可靠、易用便捷的存儲體系,可用于存儲應用系統(tǒng)的元數(shù)據(jù)信息和應用中間結果。

圖1 模式產(chǎn)品文件索引表結構

圖2 數(shù)據(jù)管理工具

模式產(chǎn)品主要以圖片、文本格式存儲,屬于非結構化數(shù)據(jù),設計采用“文件+索引”存儲方式,選擇專題庫分類管理,文件存儲在NAS中,索引采用文件索引庫存儲。模式產(chǎn)品包括單模式單要素產(chǎn)品、多模式多要素集成產(chǎn)品等多種類型,因此文件索引表結構設計包含文件的基本信息(文件名、文件大小、文件格式、存儲路徑、資料時間、產(chǎn)品編碼等)和模式產(chǎn)品的關聯(lián)信息(預報時效、數(shù)據(jù)范圍、時效間隔、預報時間、模式層數(shù)、模式名稱、要素名稱、海拔高度等)兩方面內(nèi)容。通過申請四級編碼、填報表結構字段、文件索引數(shù)據(jù)庫選擇等,完成數(shù)據(jù)產(chǎn)品云化結構配置,并利用“天擎”數(shù)據(jù)管理工具進行文件索引數(shù)據(jù)記錄的管理。

2 接口云化實現(xiàn)

統(tǒng)一、標準、豐富的數(shù)據(jù)訪問服務和應用編程接口(API),為省、市、縣各級應用系統(tǒng)提供唯一權威的數(shù)據(jù)接入服務[7],接口云化實現(xiàn)包括新增接口發(fā)布和接口測試,新增數(shù)據(jù)接口發(fā)布完成對注冊數(shù)據(jù)進行接口發(fā)布功能,主要實現(xiàn)讀取接口和寫入接口功能云化,并通過接口測試實現(xiàn)對需測試的接口,填寫接口參數(shù),生成并執(zhí)行接口請求,查看接口返回值,完成新增接口的測試。

新增數(shù)據(jù)接口發(fā)布,根據(jù)資料代碼,設置參數(shù),配置讀取接口和寫入接口,實現(xiàn)接口的發(fā)布功能,能提供數(shù)據(jù)的獲取、回寫等功能,讀取接口提供共享服務,寫入接口提供產(chǎn)品文件回寫到“天擎”存儲。

(1)讀取接口設計,采用“產(chǎn)品文件”接口屬性,設計查詢時間跨度及相關限制條件等參數(shù),確定需要的接口清單,實現(xiàn)讀取接口配置,正確完成讀取接口配置后,可通過對配置的接口進行測試,正確返回數(shù)據(jù)查詢結果后即可共享發(fā)布,向用戶提供統(tǒng)一、規(guī)范的數(shù)據(jù)訪問編程接口。

圖3 讀取接口配置

圖4 讀取接口調(diào)用測試

(2)寫入接口設計采用“產(chǎn)品文件寫入”接口屬性,設計根路徑、寫入資料路徑等參數(shù),確定需要的接口清單,完成寫入接口云化配置。

圖5 寫入接口配置

完成寫入接口云化配置后,可通過寫入接口實現(xiàn)數(shù)據(jù)產(chǎn)品的回寫,調(diào)用寫入接口需要從“天擎”數(shù)據(jù)環(huán)境中獲取數(shù)據(jù)或產(chǎn)品的應用編程開發(fā)包,根據(jù)開發(fā)語言選擇相應的客戶端開發(fā)包,并通過編程調(diào)用寫入接口函數(shù),按照函數(shù)調(diào)用參數(shù)要求,正確輸入接口的各項參數(shù),實現(xiàn)產(chǎn)品或數(shù)據(jù)的寫入功能。

圖6 客戶端開發(fā)包

數(shù)據(jù)寫入代碼(Python語言)如下:

def SaveFilesClient(self,fullFileDir,data_ID,RYMDHM,Datetime,FILE_NAME,FORMAT,FILE_SIZE,Validtime_C,Data_Area,V_INTERVAL,Year,Mon,Day,Hour,LEVEL,V_PROD_NAME, V_MO_NAME_1, V_PROD_ELE_1,V_LEVEL_1,V_MO_NAME_2="-",V_PROD_ELE_2="-",V_LEVEL_2="-",V_MO_NAME_3="-",V_PROD_ELE_3="-",V_LEVEL_3="-",V_MO_NAME_4="-",V_PROD_ELE_4="-",V_LEVEL_4="-"):

#1.定義client對象

client=DataStoreClient()

#2.調(diào)用方法的參數(shù)定義,并賦值

#2.1用戶名&密碼

userId="###"

pwd="####"

#2.2接口ID(刪除站點、指數(shù)等數(shù)據(jù))

interfaceId="saveFiles"

#2.3服務節(jié)點ID

serverId="NMIC_MUSIC_CMADAAS"

#2.4接口參數(shù),多個參數(shù)間無順序

#必選參數(shù)(1)資料代碼(2)要素字段代碼(鍵值))。

params={‘dataCode‘:"OTHE_NAFP_PRODUCT_PIC_FILE_BECS",‘Elements‘:"DATA_ID,RYMDHM,Datetime,FILE_NAME,FORMAT,FILE_SIZE,Validtime_C,Data_Area,V_INTERVAL,Year,Mon,Day,Hour,LEVEL,V_PROD_NAME,V_MO_NAME_1,V_PROD_ELE_1,V_LEVEL_1,V_MO_NAME_2,V_PROD_ELE_2,V_LEVEL_2,V_MO_NAME_3,V_PROD_ELE_3,V_LEVEL_3,V_MO_NAME_4,V_PROD_ELE_4,V_LEVEL_4"}

#2.5要素值信息

inArray2D=[[data_ID,RYMDHM,Datetime,FILE_NAME,FORMAT,FILE_SIZE,Validtime_C,Data_Area,V_INTERVAL,Year,Mon,Day,Hour,LEVEL,V_PROD_NAME,V_MO_NAME_1,V_PROD_ELE_1,V_LEVEL_1,V_MO_NAME_2,V_PROD_ELE_2,V_LEVEL_2,V_MO_NAME_3,V_PROD_ELE_3,V_LEVEL_3,V_MO_NAME_4,V_PROD_ELE_4,V_LEVEL_4]]

ftpfiles=[fullFileDir];#3.調(diào)用接口

result=client.callAPI_to_storeFile(userId,pwd,interfa?ceId,params,inArray2D,ftpfiles,serverId)

#4.輸出結果

if result.errorCode==0:

print("Upload Files Succeed")

else:

print("return code:",result.errorCode)

print("return message:",result.errorMessage)

3 模式產(chǎn)品生成算法云化

容器技術可以讓開發(fā)者打包應用及依賴包到可移植容器中,發(fā)布到任意版本的Linux服務器上[8],“天擎”提供根據(jù)算法任務應用場景對算法進行加載和部署,按需選擇計算框架,分配計算資源,容器功能是其中重要的一項功能[9],模式產(chǎn)品生成算法從Cassandra分布式數(shù)據(jù)庫中獲取實時模式資料,并插值成統(tǒng)一的分辨率,調(diào)用畫圖等模塊實現(xiàn)繪圖,繪圖類型包括色斑圖contourf、等值線圖contour、風向圖barb、郵票圖、單站時序圖等,實現(xiàn)了各氣壓層的氣象要素疊加圖、不同預報時效的郵票圖、不同模式對比的郵票圖、單站時間變化垂直剖面圖,以及單站的TLOG-P圖等,同時還生成單站氣象要素json格式的數(shù)據(jù)文件等,需要通過anaconda工具包提供的Python環(huán)境,安裝cartopy,meteva,metpy等多種模塊,運行環(huán)境比較復雜,Docker容器技術提供了很好的解決方案。本文研究將模式產(chǎn)品生成算法所需的Python及相關組件運行環(huán)境制作成Docker鏡像,部署到“天擎”平臺,完成模式產(chǎn)品生成算法的云化。生成Docker鏡像的DockerFile文件內(nèi)容如下:

#Base images基礎鏡像

FROM python:3.7

#MAINTAINER維護者信息

MAINTAINER xzl

#ADD文件放在當前目錄下,拷過去會自動解壓

ADD Anaconda3-2020.11-Linux-x86_64.sh/home/py?thon/

WORKDIR/home/python

RUN apt-get update

RUN apt-get install sudo

RUN sudo apt update

RUN sh-c‘/bin/echo-e"yes"|sudo apt install libgl 1-mesa-glx‘

RUN sh-c‘/bin/echo-e" yes yes"|sh Anaconda3-2020.11-Linux-x86_64.sh‘

ENV PATH/root/anaconda3/bin:$PATH

WORKDIR/root/anaconda3/bin

RUN sh-c‘/bin/echo-e"yes"|conda install cartopy‘

RUN pip install meteva

WORKDIR/home/python

將生成的Docker鏡像部署到“天擎”平臺,利用鏡像生成容器,再通過容器完成模式產(chǎn)品生成算法的云行。

(1)生成容器。docker run-v$PWD/model:/usr/src/model-w/usr/src/model-it nafppiccreatepy?thonenviorment:3.8.1(鏡像名:TAG)/bin/bash

(2)啟動容器。docker start 86bc8d613b9d(容器ID)

(3)容器外執(zhí)行代碼。docker exec-it 86bc8d-613b9d/bin/bash-c‘cd/usr/src/model&&/root/ana?conda3/bin/python3 Simpleplot.py(算法樣例)‘

圖7 算法容器運行產(chǎn)品樣例

4 結語

模式產(chǎn)品為各級氣象預報業(yè)務人員提供重要的參考數(shù)據(jù),“天擎”以其結構標準、功能豐富的數(shù)據(jù)訪問和編程接口,成為各級氣象部門進行業(yè)務融入的關鍵。本文基于“天擎”所共享的數(shù)據(jù)、接口、容器三大類資源,研究如何將大量模式圖片產(chǎn)品和json信息產(chǎn)品實現(xiàn)云化,為推進業(yè)務融入改造提供技術支持。通過對數(shù)據(jù)云化存儲,接口云化實現(xiàn),以及模式產(chǎn)品生成算法的云化技術,完成了基于“天擎”的模式產(chǎn)品云化技術的研究和實現(xiàn),為其他業(yè)務系統(tǒng)進行“天擎”融入提供借鑒思路。

猜你喜歡
云化容器算法
難以置信的事情
Travellng thg World Full—time for Rree
學習算法的“三種境界”
算法框圖的補全
算法初步知識盤點
IBM中國企業(yè)云化實踐中心成立
社區(qū)教育平臺運營策略研究
液體對容器底及容器對桌面的壓力和壓強
取米
多伦县| 石阡县| 绥滨县| 郯城县| 桦甸市| 当涂县| 荣成市| 西贡区| 松阳县| 武功县| 额尔古纳市| 资阳市| 翁牛特旗| 西昌市| 芒康县| 武安市| 涿鹿县| 乾安县| 新余市| 夏邑县| 古田县| 宁城县| 石屏县| 许昌市| 南通市| 玛纳斯县| 高阳县| 五家渠市| 瑞丽市| 洪泽县| 密云县| 上林县| 砀山县| 五家渠市| 青岛市| 桑植县| 西和县| 铁力市| 青浦区| 吉水县| 平阳县|