• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      應用Matlab自動繪制氣象等值線圖

      2016-09-18 11:51:57張慧史奎橋楊揚史艷玲楊劍虹郭寧張兵兵
      廣東氣象 2016年4期
      關鍵詞:等值線圖等值線圖例

      張慧,史奎橋,楊揚,史艷玲,楊劍虹,郭寧,張兵兵

      (1.錦州市生態(tài)與農(nóng)業(yè)氣象中心,遼寧錦州 121000;2.錦州市氣象局,遼寧錦州 121000)

      應用Matlab自動繪制氣象等值線圖

      張慧1,史奎橋1,楊揚1,史艷玲2,楊劍虹2,郭寧2,張兵兵1

      (1.錦州市生態(tài)與農(nóng)業(yè)氣象中心,遼寧錦州121000;2.錦州市氣象局,遼寧錦州121000)

      為了提高制作氣象服務材料的效率,應用集科學計算、數(shù)據(jù)分析和可視化等功能于一體的Matlab高級計算語言編制代碼,實現(xiàn)區(qū)域自動站氣象數(shù)據(jù)的自動讀取、氣象數(shù)據(jù)等值線圖的自動繪制,并在此基礎上應用Matlab自帶的圖形用戶界面工具箱形成可人機交互的可執(zhí)行文件。實現(xiàn)繪制等值線一鍵式操作表明基于Matlab繪制氣象等值線這一方法是能滿足氣象業(yè)務服務中及時準確的要求,且操作方便,避免了不同計算機語言間的轉(zhuǎn)換。

      計算機技術與應用;矩陣實驗室;數(shù)據(jù)庫;等值線圖;可執(zhí)行文件;掩膜提取

      張慧,史奎橋,楊揚,等.應用Matlab自動繪制氣象等值線圖[J].廣東氣象,2016,38(4):74-77.

      Matlab(矩陣實驗室)是一款集科學計算、數(shù)據(jù)分析和可視化等功能于一體的高級技術計算語言[1-3],近年來越來越廣泛應用于氣象業(yè)務工作和研究中。汪曉濱等[4]應用Matlab換算和處理飛機人工增雨航跡數(shù)據(jù),準確模擬出飛機航跡且用圖形直觀顯示航跡模擬結果;劉峰等[5]應用Matlab讀取Micaps、Grib和NetCDF 3種氣象數(shù)據(jù)并應用Matlab繪制等值線、填色等值線、風矢量和流線4種圖形;董言治等[6]利用Matlab自帶的函數(shù)對南海觀測數(shù)據(jù)進行剔點處理、趨勢項提取和迭代初始值的確定;孟力力等[7]在VB(Visual Basic)編寫的人機交互界面,采用基于組件對象模型COM(component object module)調(diào)用Matlab編寫的用于實現(xiàn)理論模型中的工程計算和圖像圖形處理的M.源函數(shù)文件,最終實現(xiàn)日光溫室熱環(huán)境模擬模型軟件的可視化。但是在氣象業(yè)務中如何應用Matlab實現(xiàn)人機交互式訪問SQL數(shù)據(jù)庫并提取相應數(shù)據(jù)繪制行政邊界區(qū)域內(nèi)的等值線圖的研究還較少。本研究應用Matlab自動讀取區(qū)域自動站的氣象數(shù)據(jù)、繪制行政邊界內(nèi)等值線圖、編制人機交互界面且生成可執(zhí)行文件,并給出了相應的編程代碼。

      1 應用Matlab訪問SQL數(shù)據(jù)庫

      針對局地氣象服務的局限性,在山洪地質(zhì)災害易發(fā)和多發(fā)區(qū),加密布設局區(qū)域自動氣象站[8]。區(qū)域自動氣象站的氣象數(shù)據(jù)定時上傳到氣象局SQL服務器上,存儲在數(shù)據(jù)庫中。

      1.1配置數(shù)據(jù)源

      在應用Matlab訪問SQL服務器之前要配置數(shù)據(jù)源[9]:電腦主機“控制面板”-“管理工具”-“數(shù)據(jù)源(ODBC)”-“添加”-“創(chuàng)建數(shù)據(jù)源”。在創(chuàng)建數(shù)據(jù)源中選擇“SQL server”出現(xiàn)圖1a。在命名數(shù)據(jù)源中輸入例如“qixiang”,在服務器選項中輸入SQL的IP地址例如“···”。點擊下一步后出現(xiàn)圖1b,輸入SQL服務器的登錄ID和密碼例如“l(fā)enovo”和“123456”。在確定計算機所用網(wǎng)絡與SQL服務器為同一網(wǎng)絡后,點擊下一步出現(xiàn)圖1c界面。在更改默認數(shù)據(jù)庫的選項框中,選擇區(qū)域自動氣象站數(shù)據(jù)存儲的數(shù)據(jù)庫例如AhGis2015,點擊下一步,最終設置成功的對話框如圖1d。

      圖1 配置數(shù)據(jù)源

      1.2應用Matlab訪問SQL數(shù)據(jù)庫

      在安裝Matlab軟件時首先要查看計算機的設置是32 bit還是64 bit,根據(jù)計算機屬性確定Matlab是安裝32還是64 bit。

      建立鏈接對象,語句為con=database(′qixiang′,′lenovo′,′123456′)。其格式為3個引號中的內(nèi)容分別對應1.1節(jié)配置數(shù)據(jù)源時的“數(shù)據(jù)源命名”、“SQL服務器的登錄ID”和“SQL服務器的密碼”。應用ping(con)語句檢查Matlab與SQL服務器是否鏈接成功,若成功在Matlab的command window窗口下顯示內(nèi)容如圖2。若鏈接失敗則圖2中最后一行的內(nèi)容顯示為Auto-CommitTransactions:′False′。

      圖2 Matlab與SQL服務器連接成功所顯示的內(nèi)容

      建立并打開游標的語句為curs=exec(con,′selectfrom database′),其中“con”是上文中的鏈接對象,selectfrom database表示從database(數(shù)據(jù)庫)選擇所有的數(shù)據(jù)。但是在氣象業(yè)務中,經(jīng)常要選擇某一時間段內(nèi)的數(shù)據(jù),其語句可改為(例如):“”表示選擇AhGis2015Meso2015_hour數(shù)據(jù)庫下應用觀測時間字段來選擇行政區(qū)域內(nèi)所有區(qū)域自動氣象站2015年5月14日08:00至5月19日08:00 5 d的氣象數(shù)據(jù)。其中下劃線部分是要根據(jù)各自的數(shù)據(jù)庫建立格式自行修改的地方。

      把數(shù)據(jù)庫中的數(shù)據(jù)讀取到Matlab中的語句是A=fetch(curs)和B=A.data。讀取到的數(shù)據(jù)用變量B保存。

      關閉連接語句為close(curs)和close(con)。具體代碼為

      2 數(shù)據(jù)的處理分析

      從數(shù)據(jù)庫讀取的數(shù)據(jù)需要統(tǒng)計分析后才能用于氣象業(yè)務服務中。例如行政區(qū)域內(nèi)設有79個區(qū)域自動站,每個自動站一天24組氣象數(shù)據(jù),累計5 d,共為79×24×5組氣象數(shù)據(jù)。每組氣象數(shù)據(jù)包括時間、溫度、降水、風速、風向等17類不同的氣象觀測數(shù)據(jù)。若是需要每一個區(qū)域自動站累計5 d的降水總量,則要應用Matlab完成數(shù)理統(tǒng)計。最終形成79行×3列的數(shù)組,表示79個區(qū)域自動氣象站各自的緯度、經(jīng)度和5 d累計降水量。

      3 繪制氣象等值線圖

      繪制氣象等值線的基本步驟為:a)采用克里金、三次樣條差分等差值方法對區(qū)域自動站數(shù)據(jù)進行差值,形成柵格數(shù)據(jù);b)應用掩膜提取方法裁剪出行政區(qū)域范圍內(nèi)的柵格數(shù)據(jù)[10];c)繪制等值線圖;d)根據(jù)業(yè)務規(guī)定確定圖相中色階分布;e)添加縣級行政區(qū)域名稱、圖例說明和相應的文字說明;f)輸出圖片。具體的程序(例子)如下:

      %%%%%a)差值生成柵格數(shù)據(jù)%%%%%

      cx=linspace(最小經(jīng)度,最大經(jīng)度,1 000);%注意此處通過最大、最小經(jīng)緯度所限定的范圍能包含這79個區(qū)域自動站。

      cy=linspace(最小緯度,最大緯度,1 000);

      [lon lat]=meshgrid(cx,cy);%形成1 000 ×1 000的柵格矩陣

      %第2部分數(shù)據(jù)處理分析的最終結果存儲在變量data中,

      latout=data(:,1);%緯度

      lonout=data(:,2);%經(jīng)度

      temp=data(:,3);%5 d累計降水

      Z=griddata(x,y,z,lon,lat,′v4′);%通過區(qū)域站的散點降水數(shù)據(jù)差值生成柵格矩陣數(shù)據(jù),選擇的差值方法為Matlab自帶的“V4”方法。

      %%%%%b)掩膜提取行政區(qū)域范圍內(nèi)的柵格數(shù)據(jù)%%%%%

      jinzhou=shaperead(′area.shp′);%調(diào)入準備好的地區(qū)邊界“.shp”文件

      isin=inpolygon(lon,lat,jinzhou.X,jinzhou. Y);

      Z(~isin)=NaN;%去掉行政區(qū)域以外的數(shù)值,相當于surfer軟件中的白化功能[11]。

      %%%%%c)繪制等值線%%%%% contourf(lon,lat,Z,5);%等值線分為5份shading flat colorbar hold on

      plot(jinzhou.X,jinzhou.Y,′-k′,′linewidth′,2)%繪制等直線圖像

      axis off

      %%%%%d)根據(jù)業(yè)務規(guī)定確定圖相中色階分布%%%%%

      z_max=max(max(Z));z_min=min(min(Z));color_data=[];cmin=z_min;cmax=z_max;

      caxis([cmin cmax]);colormap(jet(64));

      color_map=cmin:(cmax-cmin)/64:cmax;size_color=size(color_map);for i=1:(size_color(1,2)-1)if color_map(1,i)<=9.9

      color_data(i,:)=[0.60001.0000 0.4000];%小雨0-9.9 mm設置為淺綠色

      elseif(color_map(1,i)>=10&color_ map(1,i)<=24.9)

      color_data(i,:)=[0.14510.7216 0.1569];%中雨10-24.9 mm設置為深綠色

      elseif(color_map(1,i)>24.9&color_ map(1,i)<=49.9)

      color_data(i,:)=[00.8000 0.8000];%大雨25-49.9 mm設置為淺藍色

      elseif(color_map(1,i)>49.9&color_ map(1,i)<=99.9)

      color_data(i,:)=[0.18040.3569 0.8784];%暴雨50-99.9 mm設置為深藍色

      else

      color_data(i,:)=[0.96860.2941 0.9686];%大于100 mm設置為紫色

      end

      end%RGB 3個分量都在0~1之間,相應的顏色從黑變化到白色。

      %%%%%e)在圖片中添加縣級名稱、圖例說明等%%%%%

      annotation(gcf,′textbox′,[0.4163 0.3425 0.07043 0.07407],...

      ′String′,{′凌?!洌?..′FitBoxToText′,′off′,...

      ′EdgeColor′,′none′);%其中[0.4163 0.3425 0.07043 0.07407]表示文本內(nèi)容在圖片中的位置[文本起始橫坐標文本起始縱坐標文本長度文本寬度]。同樣可以應用這種方法添加圖例說明,圖片題目,文字說明。

      %確定圖例顏色%

      annotation(gcf,′textbox′,[0.72 0.22 0.08 0.03],...

      ′FitBoxToText′,′off′,...

      ′EdgeColor′,[0.96860.2941 0.9686],...

      ′BackgroundColor′,[0.96860.2941

      0.9686]);%圖例的繪制是以文本框textbox為基礎的,其中[0.72 0.22 0.08 0.03]表示圖例在圖片中的位置[圖例起始橫坐標圖例起始縱坐標圖例長度圖例寬度];[0.96860.2941

      0.9686]表示圖例的顏色。注意圖例的顏色要與c)中規(guī)定的顏色一一對應。

      %%%%%輸出圖片%%%%%%

      set(gcf,′PaperPositionMode′,′auto′)%按照窗口大小輸出圖像

      print-dbmp-r300降水分布圖%圖片格式為bmp格式,分辨率為300,其清晰度可以滿足業(yè)務需求。例如圖3是降水空間分布等值線圖。

      圖3 降水空間分布等值線圖

      4 制作可執(zhí)行文件

      在氣象業(yè)務工作中,經(jīng)常需要將上述設計好的等值線程序制作成可執(zhí)行文件,通過輸入一些簡單的時間變量一鍵式就能實現(xiàn)等值線的繪制,這種人機交互的形式有利于不熟悉Matlab的氣象業(yè)務人員應用該軟件[12]。Matlab具備設計友好的圖形用戶界面(GUI)功能[1]。Matlab提供所有GUI支持的用戶控件,并且允許設計者對界面的外觀、屬性和行為相應方法進行設置。Matlab提供的GUI的開發(fā)環(huán)境(GUIDE)與VBVC類似,只要設計者直接用鼠標把需要的對象拖拽到目標的位置,就完成了GUI的布局設計。GUIDE將用戶設計完成的GUI存儲在一個FIG文件中,同時自動生成包含GUI初始化和GUI界面布局設置代碼的M-文件。生成可執(zhí)行文件的基本步驟為:a)進行GUI布局設計;b)將布局控件與相應的代碼程序鏈接,使其實現(xiàn)一定功能;c)生成可執(zhí)行文件,其代碼為“mcc-m可執(zhí)行文件名稱”。注意可執(zhí)行文件的名稱要與布局設置代碼M-文件的名稱一致,且不能為中文。圖4為應用Matlab開發(fā)的錦州市內(nèi)降水空間分布等值線繪制的一個可執(zhí)行文件界面。

      圖4 生成可執(zhí)行文件界面

      Matlab可以進行科學計算、數(shù)據(jù)分析和設計友好型界面。憑借其強大的科學運算、靈活的程序設計流程、高質(zhì)量的圖形可視化與界面設計已經(jīng)在氣象業(yè)務研究中得到了廣泛的應用。本研究介紹了如何應用Matlab語言訪問SQL服務器,獲得區(qū)域自動站的氣象數(shù)據(jù);通過數(shù)值統(tǒng)計分析后自動繪制成氣象等值線圖像;并在此基礎上設計形成人機交互的可執(zhí)行文件。應用Matlab一種語言就完成了數(shù)據(jù)的讀取、分析、可視化和人機交互友好界面,且操作方便,避免了不同計算機語言間的轉(zhuǎn)換。

      [1]董霖.MATLAB使用詳解[M].北京:科學出版社;2008:108-387.

      [2]李濤,何勇軍,劉志儉.MATLAB工具箱應用指南-應用數(shù)學篇[M].北京電子工業(yè)出版社,2000:5-10.

      [3]樓順天,于衛(wèi),胡昌華,等.基于MATLAB的系統(tǒng)分析與設計[M].西安:電子科技大學出版社,1999:65-97.

      [4]汪曉濱,呂亞麗,王廣河,等.Matlab在北京飛機增雨航跡分析中的應用[J].氣象,2006,32(7):46-51.

      [5]劉峰,劉娟,李萍,等.基于MATLAB實現(xiàn)3種氣象數(shù)據(jù)的讀取和繪圖[J].廣東氣象,2007,29(4):45-47.

      [6]董言治,周曉東,婁樹理,等.MATLAB在運用系統(tǒng)建模處理南海氣象數(shù)據(jù)過程中應用[J].成都信息工程學院學報,2004,19(01):76-81.

      [7]孟力力,楊其長,聞婧,等.MATLAB和VB在溫室環(huán)境模型構建中的混合編程研究[J].中國農(nóng)學通報,2012,28(6):262-268.

      [8]李雁,李峰,趙志強,等.中國區(qū)域自動氣象站運行監(jiān)控系統(tǒng)建設[J].氣象科技,2013,41(2):231-235,277.

      [9]周曉峰.Matla鏈接SQL數(shù)據(jù)庫[OL].http://blog. renren.com/share/234106014/2083786764.2012-07 -16.

      [10]斥鷃.Matlab中地圖邊界與掩膜的實現(xiàn)[EB/OL]. http://bbs.06climate.com/forum.php?mod= viewthread&tid=12340&fromuid=9098.2013-1-30.

      [11]李明明,韓照宇,王雁,等.利用VB調(diào)用surfer軟件實現(xiàn)酸雨數(shù)據(jù)可視化[C]//第28屆中國氣象學會年會“大氣成分與天氣氣候變化的聯(lián)系”分會場論文集,2011.

      [12]烏麗雅蘇,孟克其勞,蘇立娟,等.基于MATLAB GUI的水汽自動處理系統(tǒng)的設計與實現(xiàn)[J].電子設計工程,2012,20(6):1-4.

      TP39

      A

      10.3969/j.issn.1007-6190.2016.04.019

      2015-11-10

      張慧(1986年生),女,碩士,助理工程師,主要從事農(nóng)業(yè)氣象、生態(tài)氣象服務。E-mail:zhanghui.107@163.com

      史奎橋(1961年生),男,高級工程師,主要從事農(nóng)業(yè)氣象服務和農(nóng)業(yè)氣象試驗。E-mail:jzstynqzx@163.com

      猜你喜歡
      等值線圖等值線圖例
      基于規(guī)則預計格網(wǎng)的開采沉陷等值線生成算法*
      礦山測量(2020年6期)2021-01-07 04:52:06
      找拼圖
      犬狗的畫法(六)
      老年教育(2018年6期)2018-07-06 08:03:18
      如何讓學生巧用圖例解決數(shù)學問題
      如何來解決等值線問題
      等值線“慣性”變化規(guī)律的提出及應用
      地理教學(2016年19期)2016-11-21 05:01:49
      可愛的小鳥
      利用ACAD線型編輯功能實現(xiàn)SURFER繪制等值線圖的修改初探
      江蘇水利(2015年9期)2015-12-12 08:17:18
      基于Kriging插值的等值線生成算法研究
      等值線分析系統(tǒng)實際應用之等值線填充
      巴东县| 错那县| 梁平县| 陈巴尔虎旗| 新源县| 泸定县| 公主岭市| 儋州市| 棋牌| 灵丘县| 登封市| 独山县| 尉犁县| 黄骅市| 黄浦区| 莆田市| 左云县| 旌德县| 云南省| 雷波县| 永新县| 新郑市| 华阴市| 汕头市| 久治县| 友谊县| 阳谷县| 文成县| 宣武区| 长武县| 百色市| 沂源县| 达拉特旗| 环江| 鹿泉市| 昭苏县| 渭源县| 衡东县| 房产| 周至县| 桐庐县|