999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

新一代天氣雷達產品在iPhone手機中的繪制

2016-11-03 00:58:03牛一鳴張國莉
中低緯山地氣象 2016年4期
關鍵詞:產品

牛一鳴,張國莉,劉 莉

(1.河南省伊川縣氣象局,河南 伊川 471300;2.河南省孟津縣氣象局,河南 孟津 471100)

?

新一代天氣雷達產品在iPhone手機中的繪制

牛一鳴1,張國莉1,劉 莉2

(1.河南省伊川縣氣象局,河南 伊川 471300;2.河南省孟津縣氣象局,河南 孟津 471100)

分析了新一代多普勒天氣雷達的地圖文件和雷達產品文件的二進制數據結構,給出數據解析方案。針對搭載iOS操作系統的iPhone手機,使用Objective-C編程語言在集成開發工具Xcode上開發一款手機APP,將天氣雷達的地圖和雷達產品繪制到APP中,通過手勢捏合操作對雷達產品進行縮放,實現雷達產品的動畫播放,使其具備不亞于PC端PUP程序的展示效果。

新一代多普勒天氣雷達;地圖數據解析;雷達產品數據解析;iPhone手機APP

1 引言

新一代多普勒天氣雷達是氣象部門監測暴雨、冰雹、大風等災害性天氣的主要工具之一,其生成的多種雷達產品為預報員提供了豐富的天氣信息,對雷達產品的應用顯著的提高了中小尺度天氣系統的監測能力,在短時臨近天氣預報中發揮著重要作用[1-6]。天氣雷達的雷達產品和系統狀態信息,需經天氣雷達終端顯示軟件(PUP客戶端)來解析和繪制[7],工作人員只能在安裝了PUP客戶端的計算機上對雷達產品進行查看,現如今智能手機功能日益強大,是否可以在不便直接操作計算機時通過手機查看雷達產品呢?本文將以搭載iOS操作系統的iPhone手機為例,開發手機APP,對雷達產品進行繪制和顯示。

2 雷達產品終端顯示分析

多普勒天氣雷達產品的繪制需要兩部分數據,即地圖和雷達產品。地圖數據文件存放在PUP安裝目錄的Maps目錄下,PUP提供的地圖文件命名格式為mapX.map,其中X為雷達站的站代號[8-9],如洛陽雷達站站代號為379,則洛陽雷達站對應的地圖文件為map379.map。文件中包含的地理信息有:省界、城市、縣界、河流和地名等,這些數據信息以二進制的形式存儲,字節存儲機制為大端模式(Big-Endian),即數據的高字節保存在內存的低地址中,數據的低字節保存在內存的高地址中;雷達產品的文件命名格式形如20150728.005448.00.37.379,表示的含義是洛陽雷達站(站代號379)在2015年7月28日00時54分48秒(世界時)生成的仰角代號為00的組合反射率產品(產品代號37)[10],數據同樣以大端模式的二進制形式存儲。要在手機APP中繪制產品,首先要將以上二進制數據解析出來。

3 二進制數據解析

3.1 地圖文件數據解析

以洛陽雷達站為例,地圖文件為map379.map。通過使用二進制數據查看器查看數據,結合查詢資料分析,其數據可分為地理信息頭塊和地理信息描述塊兩部分。地理信息頭塊的數據結構如圖1所示。從文件開頭的第4個字節開始,連續5個數據塊分別是省界、城市、縣界、河流和地名的地理信息頭塊,每個信息頭包含的數據有:地圖類別、標志位、各地圖數據長度、各地圖數據偏移量等信息,根據數據偏移量和地圖數據長度,可以定位到各個地圖的地理信息描述塊在二進制數據中的位置。

圖1 地理信息頭塊的數據結構Fig.1 The data structure of geographic information header

3.1.1 省界、城市、縣界和河流地理信息描述塊的數據解析 省界、城市、縣界和河流地理信息描述塊的數據結構及解析方法相同。每種地圖的數據塊均由若干條折線數據組成,其折線的數據結構如圖2所示。每一條折線數據包括標志位、折線起始點坐標、后續字節數以及若干個后續拐點坐標組成。從折線起始點開始依次連接每一個后續拐點,由此構成一條完整的折線,若干條這樣的折線就構成了地圖。

圖2 地圖折線的數據結構Fig.2 The data structure of map polyline

3.1.2 地名地理信息描述塊的數據解析 地名地理信息描述塊的數據結構稍有不同,其由若干組地名地理信息組成,數據結構如圖3所示。每組地名地理信息數據由標志位、地名坐標、地名字節數和地名字符組成。地名坐標指示了地名字符在地圖上的位置。地名字符采用GBK編碼,一個漢字占兩個字節,故地名字節數為6時,地名由3個漢字構成,如“三門峽”;地名字節數為4時,地名由2個漢字構成,如“洛陽”。

圖3 地名地理信息的數據結構Fig.3 The data structure of geographic names

需要注意的是,地名地理信息結構體數據并不是連續的,經測試發現,當讀取到的結構體的各個成員變量值都為0時,應再向后偏移132個字節,然后繼續讀取,即地名地理信息描述塊數據被150個值為0的字節分割為兩部分(值為0的一個結構體占18個字節)。

3.2 雷達產品文件數據解析

雷達產品數據文件由信息頭塊、產品描述塊、產品符號表示塊、圖像數字文本塊和文本列表塊組成。信息頭塊包含了雷達產品的基本信息,如產品代號、生成時間、雷達站代號、接收站代號等;產品描述塊除了描述產品屬性外,還提供了產品符號表示塊、圖像數字文本塊與文本列表塊的字節偏移量,可以據此定位到后3個數據塊在二進制數據中的起始位置;產品符號表示塊中存儲了雷達產品繪制所需的詳細數據;圖像數字文本塊和文本列表塊包含了雷達產品附加的文字信息和適配數據[11-13]。

這里對存儲雷達產品詳細數據的產品符號表示塊進行解析說明,數據結構如圖4所示。塊中包含了塊分隔符、塊代號、塊數據長度、塊數據層數和若干個數據層,每個數據層包含了層分隔符、層數據長度和若干個數據包,數據包的結構根據其類型可分為5種,即徑向數據包、柵格數據包、向量數據包、文本數據包和等值線數據包,不同的雷達產品對應著不同的數據包。以組合反射率產品為例,其產品數據存儲在柵格數據包中,數據結構如圖5所示。

圖4 產品符號表示塊的數據結構Fig.4 The data structure of the product symbol block

圖5 柵格數據包的數據結構Fig.5 The data structure of raster data packet

解析組合反射率產品時,其包識別碼應為0xBA0F或0xBA07。x、y方向放大倍數表示了產品的分辨率,在與地圖疊加繪制時要注意二者的比例關系。根據柵格數據包中的柵格行行數讀取到若干柵格行。每個柵格行包括行字節數和若干柵格小塊,根據行字節數讀取到所有的柵格小塊。

4 雷達產品在iPhone手機上的繪制

完成地圖數據和雷達產品數據的解析之后,即可在手機APP中進行繪制。目前手機APP大體可分為兩類:Web APP(網頁APP)和Native APP(原生APP)。Web APP采用HTML5語言編寫,在瀏覽器中運行(Written Once, Run Everywhere),并且無需用戶手動更新,直接在服務器端完成版本迭代。雖然其開發成本較低,但性能和用戶體驗較差,不支持離線緩存。Native APP是指基于手機操作系統開發的原生APP,具備強大的性能、出色的動畫效果及最佳的交互體驗,支持離線緩存處理,但安裝和更新需要用戶在應用商店中手動下載。由于繪制的雷達圖需要較高的分辨率以滿足在一定的放大倍數下保持清晰,必須進行大量的實時渲染,對性能要求較高;并且通過在Native APP中進行緩存優化,可縮短加載時間,減少流量消耗,綜上考慮,選擇Native APP開發。

編寫iOS操作系統上運行的應用程序,需要在Mac OS X操作系統上,使用集成開發工具Xcode進行編程,編程語言是Objective-C或Swift。這里以組合反射率產品為例,進行分析和繪制。

4.1 組合反射率產品繪制

對雷達產品文件完成解析之后,主要對產品符號表示塊的數據進行繪制。分析解析結果,發現柵格數據包中柵格行數固定為464行,每行有若干個柵格小塊,每個柵格小塊數據占用一個字節,即8個二進制位,繪制時取高4位二進制數作為這個柵格小塊的寬度,取低4位二進制數作為繪制柵格小塊的填充顏色,4位二進制數表示的十進制數范圍是0~15,故填充顏色有16種,組合反射率產品的RGB顏色表如圖6所示。測試發現每一個柵格行中所有柵格小塊的二進制數據的高4位值之和等于464,故所有柵格行繪制的結果是在464*464區域內由若干柵格小塊組成的圖像。例如假設從(0,0)點開始繪制,第1行第1個柵格小塊的二進制值為11110000,則表示把起始點在(0,0),寬度15個像素,高1個像素的矩形區域填充為黑色;第1行第2個柵格小塊的二進制值為01011101,則表示緊挨前一個柵格小塊,把寬度5個像素,高1個像素的矩形區域填充為紅色。以此類推就可以得到464*464大小的組合反射率產品圖。

圖6 RGB顏色表Fig.6 RGB color table

在iOS中,通過UIKit框架中提供的函數UIGraphics Begin Image Context With Options可以創建一個圖片類型的上下文,在該上下文上進行繪制后,調用UIGraphics Get Image From Current Image Context函數可以從當前上下文中獲取到繪制的圖片對象。iOS提供了Core Graphics框架來協助繪制復雜的圖形,使用Core Graphics可以方便高效的創建直線、路徑、漸變、文字與圖像等內容。繪制組合反射率產品時,在464*464大小的上下文中,使用CGContext Set Fill Color With Color函數設置柵格小塊的顏色,使用CGContext Fill Rect函數對柵格小塊進行填充繪制。

4.2 雷達地圖繪制

雷達的地圖圖像由5個部分組成,分別是省界、城市、縣界、河流和地名,除了地名之外的其余4類地圖數據繪制方法相同,繪制折線時仍然利用Core Graphics框架,使用CGContext Move To Point函數開始繪制一條新的折線,使用CGContext Add Line To Point將每一個后續拐點連接成線;地名部分的繪制涉及到文本繪制,iOS提供了Core Text框架來對文字進行排版和渲染。需要注意的是由于地名字符采用GBK編碼存儲,而iOS的字符串編碼枚舉中并未給出GBK編碼類型,需要從更底層的字符串對象中創建,代碼如下:

NSString Encoding gbkEncoding = CFString Convert Encoding To NSString Encoding

(kCFString Encoding GB_18030_2000);

4.3 繪制效果

將雷達產品和地圖疊加顯示時,因為各種雷達產品的分辨率不盡相同,應注意其與地圖的比例關系,如組合反射率產品與地圖分辨率之比是1∶2,1 h累積降水產品與地圖分辨率之比是1∶1。幾種常用雷達產品在iPhone中的繪制效果如圖7所示:

圖7 雷達產品在iPhone手機中的顯示效果(a)組合反射率產品(CR);(b)基本速度產品(V);(c)1 h累積降水產品(OHP);(d)回波頂產品(ET);(e)垂直積分液態含水量產品(VIL);(f)基本反射率產品(R)Fig.7 Radar products displayed on iPhone.(a)Composite Reflectivity (CR); (b)Velocity(V); (c)One Hour Precipitation (OHP); (d)Echo Tops (ET); (e)Vertically Integrated Liquid(VIL); (f)Reflectivity (R)

4.4 雷達產品的縮放

在PUP客戶端中,縮放雷達產品是通過點擊鼠標右鍵,然后選擇縮放倍數來完成的,縮放倍數僅限2、4、6、8、16倍,而借助iOS設備的交互手勢“兩指捏合”,即可以實現在調節范圍內線性縮放任意倍數,同時根據縮放比例控制地圖細節的顯示和隱藏,以達到最佳觀測效果。捕捉兩指在屏幕上滑動,需要重載touchesMoved:withEvent:函數,在函數中不斷捕獲兩指之間的距離變化,對雷達產品的圖片對象執行相應倍數的縮放。

4.5 動畫播放

iOS提供了簡便易用的幀動畫播放方案,只需將若干張雷達產品的圖像組成的數組賦給圖片容器對象,通過設置每幀時長、重復次數,即可實現動畫播放。

5 小結與討論

本文以iPhone手機為例,對幾種常用雷達產品和地圖進行了繪制,實現了縮放和動畫播放操作,可以看出,雷達產品在iPhone手機上的顯示效果并不亞于PC端的PUP程序。在今后的研究中,還可根據手機自身特性,添加一些PC端不能具備的功能,如利用蘋果公司提供的APNS消息推送服務(Apple Push Notification Service),服務器可以在檢測到有較強雷達回波生成時對安裝此手機APP的用戶進行推送提醒。此外,目前讀取的數據文件均來自手機本地存儲(由于雷達產品文件的保密性,存儲的文件已經過重新編碼處理),若要隨時隨地的查看實時的雷達產品,需建立與雷達產品服務器內網的連接,有待進一步開發實現。

[1] 方標,羅曉松,陳關清,等. 銅仁市2014年5月25日致災大暴雨天氣過程雷達特征分析[J]. 貴州氣象,2015,39(1):55-59.

[2] 高楠,王飛. 新一代天氣雷達產品數據共享顯示系統[J]. 科技與生活,2010,(17):131-131.

[3] 羅曉松,方標,嚴小冬. 黔東北一次局地特大暴雨天氣的雷達回波特征分析[J]. 貴州氣象,2014,38(6):16-19.

[4] 陳海泉,陳立宏,曾祥標,等. 雷達和自動氣象站資料在GIS中的同步顯示[J]. 廣東氣象,2011,33(1):64-66.

[5] 鐘常鳴. CINRAD-SA 多普勒天氣雷達產品簡介[J]. 氣象研究與應用,2009,30(A02):226-227.

[6] 郭曉超,李明元,肖蕾. 遵義多普勒天氣雷達反射率資料的雜波抑制算法研究[J]. 貴州氣象,2014,38(6):27-29.

[7] 姚立宏,方瓊. 新一代天氣雷達資料的共享[J]. 廣西氣象,2006,27(02):35-36.

[8] 張深壽. 新一代天氣雷達(CINRAD/SA)PUP的地圖漢化[J]. 福建氣象,2002(5):26-26.

[9] 張廷秀,付彥兵,蘇添記. 新一代天氣雷達PUP地圖細化設計與實現. 氣象水文海洋儀器,2007(1):40-43.

[10]但玻,李慶,徐會明,等. 成都新一代天氣雷達資料整編程序開發[J]. 四川氣象,2007,27(4):34-34.

[11]陳海泉,廖仕湘. 新一代天氣雷達產品數據格式分析[A]//中國氣象學會. 中國氣象學會2007年年會氣象綜合探測技術分會場論文集.北京:氣象出版社,2007:390-396.

[12]李紅玉,李曉勇,劉鵬. 跨省區新一代多普勒天氣雷達PUP產品調用與拼圖實現[J]. 西華大學學報:自然科學版,2009,28(5):78-82.

[13]楚志剛,銀燕,顧松山. 新一代天氣雷達基數據文件格式自動識別方法研究[J]. 計算機與現代化,2013,(7):180-184.

[14]趙姝慧,秦鑫,李帥彬,等. 新一代天氣雷達常用產品在我國人工影響天氣工作中的應用[J]. 地球科學進展,2012,27(6):694-702.

[15]胡勝,伍志方,劉運策,等. 新一代多普勒天氣雷達廣東省區域拼圖初探[J]. 氣象科學,2006,26(1):74-80.

Rendering of the New Generation Weather Radar’s products in iPhone

NIU Yiming1,ZHANG Guoli1,LIU Li2

(1.Yichuan Meteorological Office, Yichuan 471300, China;2.Mengjin Meteorological Office, Mengjin 471100,China)

The binary data structure of the New Generation Weather Radar’s map files and radar product files was analyzed, presents a parser scheme was presented. For the iPhone mobile phones equipped with iOS operating system, Objective-C programming language was used to develop an application in the Xcode Integrated Development Environment (IDE). Radar map and products was rendered in the app. Users can zoom in or out of the radar image by pinch gesture. Key-frame Animation technique was used to play radar echo animation. The demonstration effect of the app is the same as the Principal User Processor(PUP) client in computer.

new generation weather radar; map files analysis; radar product analysis; iPhone application

1003-6598(2016)04-0068-05

2016-05-13

牛一鳴(1989—),男,助工,主要從事軟件開發及網絡維護工作,E-mail:120971999@qq.com。

TP311.52

B

猜你喜歡
產品
好產品,可持續
現代裝飾(2022年4期)2022-08-31 01:39:32
從靈感出發,邂逅好產品
現代裝飾(2022年3期)2022-07-05 05:55:06
2015產品LOOKBOOK直擊
Coco薇(2015年1期)2015-08-13 02:23:50
新產品
玩具(2009年10期)2009-11-04 02:33:14
產品
個人電腦(2009年9期)2009-09-14 03:18:46
下一個酷產品是什么
舒適廣告(2008年9期)2008-09-22 10:02:48
主站蜘蛛池模板: 国产99欧美精品久久精品久久| 日韩在线2020专区| 亚洲日韩欧美在线观看| 综合色婷婷| 99re这里只有国产中文精品国产精品 | 亚洲第一在线播放| 国产精品无码作爱| 一级毛片在线播放免费观看| 亚洲品质国产精品无码| 色成人亚洲| 久久精品中文无码资源站| 亚洲欧美精品一中文字幕| 热久久综合这里只有精品电影| 色久综合在线| 色综合久久88色综合天天提莫| 国产一区二区三区免费观看| 日韩黄色大片免费看| 精品国产91爱| 男女男免费视频网站国产| 国产免费久久精品44| 中文字幕无码制服中字| 国产精品极品美女自在线网站| 亚洲国产成人在线| 欧美精品色视频| 精品视频免费在线| 日本久久网站| 欧美国产日韩在线播放| 国产成人免费| 浮力影院国产第一页| 日本不卡在线| 最新加勒比隔壁人妻| 免费不卡视频| 国产乱论视频| 99在线视频免费| 91蜜芽尤物福利在线观看| 日韩大片免费观看视频播放| 亚洲国产精品日韩专区AV| 国产日本欧美在线观看| 99热最新网址| 五月天久久综合国产一区二区| 国内精品九九久久久精品 | 中文字幕色在线| 日韩东京热无码人妻| 国产激情无码一区二区APP| 91综合色区亚洲熟妇p| 色综合a怡红院怡红院首页| 伊人色综合久久天天| 在线毛片免费| 亚洲欧洲免费视频| 真实国产乱子伦高清| 91精品日韩人妻无码久久| 中文字幕第4页| 日韩毛片免费视频| 青草国产在线视频| 国产精品成人观看视频国产| 国产精品一线天| 国产在线观看91精品| 国产91丝袜在线播放动漫| 国产乱人伦AV在线A| 日韩精品一区二区深田咏美| 国产免费高清无需播放器 | 久久综合丝袜长腿丝袜| 日韩欧美91| 欧美一道本| 久久婷婷六月| 一区二区影院| 亚洲国产清纯| 99在线视频免费观看| 九九精品在线观看| 97综合久久| 91成人在线免费视频| 自拍偷拍欧美日韩| 无码精品国产dvd在线观看9久| 国产成人高清亚洲一区久久| 国产欧美日韩免费| 亚洲精品va| 亚洲黄色高清| 久久毛片免费基地| 54pao国产成人免费视频| 欧美在线天堂| 污网站在线观看视频| 国产超薄肉色丝袜网站|