亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SharpMap的氣象監(jiān)測與預(yù)警系統(tǒng)

        2019-09-28 01:25:18李秀娟周小明王曉娟
        計算機技術(shù)與發(fā)展 2019年9期
        關(guān)鍵詞:氣象站柵格圖層

        況 源,李秀娟,周小明,王曉娟

        (1.四川省宜賓市氣象局,四川 宜賓 644000;2.高原與盆地暴雨旱澇災(zāi)害四川省重點實驗室,四川 成都 610072)

        0 引 言

        氣象災(zāi)害是自然災(zāi)害中最為頻繁而又嚴(yán)重的災(zāi)害,隨著經(jīng)濟的高速發(fā)展,造成的損失亦呈上升趨勢。為了提高氣象在防災(zāi)減災(zāi)中的作用,同時進一步推進氣象現(xiàn)代化建設(shè)和加強自動氣象站監(jiān)測數(shù)據(jù)、多普勒天氣雷達產(chǎn)品的融合使用,設(shè)計并開發(fā)基于SharpMap的氣象監(jiān)測與預(yù)警系統(tǒng)[1-4]。該系統(tǒng)具有業(yè)務(wù)實用性,不僅能提高氣象部門在應(yīng)對突發(fā)氣象災(zāi)害的速度和服務(wù)質(zhì)量,也能提高專業(yè)氣象服務(wù)能力。

        1 系統(tǒng)設(shè)計與核心功能實現(xiàn)

        1.1 系統(tǒng)設(shè)計

        根據(jù)功能需求,將系統(tǒng)設(shè)計為實況監(jiān)測與預(yù)警、系統(tǒng)設(shè)置與任務(wù)配置、預(yù)警記錄三個模塊。其中核心模塊為實況監(jiān)測與預(yù)警模塊,整合顯示GIS地圖、自動氣象站數(shù)據(jù)(使用CIMISS環(huán)境[5-6]的氣象數(shù)據(jù)訪問接口獲取小時數(shù)據(jù)和5分鐘加密數(shù)據(jù))、多普勒天氣雷達產(chǎn)品(解析產(chǎn)品文件并繪制成雷達回波圖)和災(zāi)害隱患點信息,達到設(shè)定的預(yù)警閾值后以多種方式預(yù)警(顏色、聲音、短信等)。

        1.2 SharpMap中加載地圖文件

        SharpMap[7-15]是一個基于.net使用C#開發(fā)的Map渲染類庫,可以渲染各類GIS數(shù)據(jù),可應(yīng)用于桌面和Web程序。支持點、線、面等要素集合,支持常規(guī)的地圖操作,可編制展示復(fù)雜的地圖主體渲染。支持矢量數(shù)據(jù)格式有ESRI Shape File、PostGIS、Oracle、Microsoft SQLServer、SQLite等;支持柵格數(shù)據(jù)格式有bmp、gif、tif、png、dem等。且具有占用資源較少,響應(yīng)較快,對于.NET環(huán)境支持較好,使用簡單,開源免費等優(yōu)點。其使用步驟如下:

        (1)下載SharpMap開發(fā)包;

        (2)添加SharpMap的UI組件至Visual Studio的工具箱;

        (3)給WinForm窗體添加MapBox組件;

        (4)為項目添加SharpMap引用,一般來說給WinForm窗體添加MapBox組件后,會自動引用SharpMap.dll,如果沒有,需手動添加;

        (5)在WinForm窗體的Load方法中添加如下代碼,實現(xiàn)加載地圖文件。

        VectorLayer vlayer_yb=new VectorLayer("yibin"); //創(chuàng)建地圖圖層

        ShapeFile shp_yb=new ShapeFile(@"shp\宜賓邊界.shp"); //加載地圖Shp文件

        shp_yb.Encoding=System.Text.Encoding.GetEncoding("gb2312"); //設(shè)置文字編碼格式

        vlayer_yb.DataSource=shp_yb; //為地圖圖層配置數(shù)據(jù)源

        CoordinateTransformationFactory ctFact=new

        ProjNet.CoordinateSystems.Transformations.CoordinateTransformationFactory();

        ICoordinateTransformation trans=ctFact.CreateFromCoordinateSystems(ProjNet.CoordinateSystems.GeographicCoordinate System.WGS84,

        ProjNet.CoordinateSystems.ProjectedCoordinateSystem.WGS84_UTM(48, true));

        vlayer_yb.CoordinateTransformation=trans; //設(shè)置投影方式

        mapBox.Map.Layers.Add(vlayer_yb); //將地圖圖層添加到SharpMap的MapBox組件

        Coordinate center=new Coordinate(104.47,28.55);

        mapBox.Map.Center=trans.MathTransform.Transform(center); //設(shè)置地圖中心顯示位置

        mapBox.Refresh(); //刷新MapBox地圖組件

        1.3 SharpMap中自定義圖層

        SharpMap為用戶提供了多種圖層,如:Vector Layer矢量圖層、LabelLayer標(biāo)注圖層、WmsLayer服務(wù)圖層、GdiImageLayer圖像圖層、TileLayer瓦片圖層。在系統(tǒng)中疊加自動氣象站數(shù)據(jù)時,要同時標(biāo)注圓點、站點名稱、實況數(shù)據(jù),并且達到預(yù)警值以紅色標(biāo)注和控制各級別站點顯示。SharpMap中提供的現(xiàn)有圖層不能滿足功能需求,所以需要自定義圖層類來實現(xiàn)該功能,核心代碼如下:

        class MyLayer:ILayer{

        public void Render(System.Drawing.Graphics g,SharpMap.Map map) {//圖層繪制

        SolidBrush b_dot=new SolidBrush(Color.FromArgb(33,136,104));

        SolidBrush b_str=new SolidBrush(Color.FromArgb(5,76,54));

        SolidBrush b_str_r=new SolidBrush(Color.FromArgb(255,0,0));

        for(int i=0;i

        if((pointsList[i][12]=="全要素" && IsShowPointDjz)||(pointsList[i][12]=="1" && IsShowPointYlz)||(pointsList[i][12]=="2" && IsShowPointQyz)||(pointsList[i][12]=="4" &&IsShowPointQyz)||(pointsList[i][12]=="6" && IsShowPointQyz)){//控制顯示各級別自動氣象站的顯示

        PointF p=map.WorldToImage(coorsList[i]); //將大地坐標(biāo)轉(zhuǎn)化為笛卡爾坐標(biāo)

        g.FillEllipse(b_dot,p.X-3,p.Y-3,6,6); //畫圓點標(biāo)注

        g.DrawString(pointsList[i][1],new Font("黑體",9),b_str,p.X-15,p.Y-18); //顯示站點名稱

        if(pointDataStyle=="1小時雨量"){

        if(Convert.ToDouble(pointsList[i][7])>= d_r1){ //顯示站點實況數(shù)據(jù)

        g.DrawString(pointsList[i][7],new Font("宋體",9),b_str_r,p.X-10,p.Y+5);} //大于預(yù)警閾值以紅色顯示

        else{ //顯示站點實況數(shù)據(jù)

        g.DrawString(pointsList[i][7],new Font("宋體", 9),b_str, p.X-10,p.Y+5); }}

        //后面代碼略 }}}}

        1.4 SharpMap中加載雷達回波圖

        通過解析雷達產(chǎn)品文件[16-19],繪制成bmp格式圖片文件后,若要精確地疊加在SharpMap地圖上,必須為該圖片文件生成對應(yīng)的配準(zhǔn)文件。bmp文件的配準(zhǔn)文件的后綴名為bmw,文件名要與對應(yīng)bmp文件名相同,且保存在同一目錄下,配準(zhǔn)文件內(nèi)容有6行數(shù)值:

        A:柵格地圖的一個像素在X方向上的像素分辨率;

        B:平移量;

        C:旋轉(zhuǎn)量;

        D:柵格地圖的一個像素在Y方向上的像素分辨率的負值;

        E:柵格地圖左上角像素的笛卡爾坐標(biāo)的X坐標(biāo);

        F:柵格地圖左上角像素的笛卡爾坐標(biāo)的Y坐標(biāo)。

        其中,A=柵格地圖在X方向的地理距離(m)/柵格地圖在X方向的像素點個數(shù);B、C一般為0;D=-柵格地圖在Y方向的地理距離(m)/柵格地圖在Y方向的像素點個數(shù);因為中心點為雷達站的位置,所以左上角像素的笛卡爾坐標(biāo)可根據(jù)雷達站經(jīng)緯度推算。系統(tǒng)中為基本反射率雷達產(chǎn)品(R20)生成的配準(zhǔn)文件內(nèi)容如下:

        125

        0

        0

        -125

        308831.554887426

        3338147.27665223

        在SharpMap中加載雷達回波圖片的代碼如下:

        GdiImageLayer glayer_radar=new GdiImageLayer("radar",strdir); //strdir為雷達回波圖片文件的路徑

        glayer_radar.InterpolationMode=System.Drawing.Drawing2D.InterpolationMode.Low; //設(shè)置雷達回波圖的縮放質(zhì)量,因為雷達回波圖為柵格圖像,所以設(shè)置為低質(zhì)量以降低因放大圖像后插值造成信息損失

        mapBox.Map.Layers.Add(glayer_radar); //將圖層添加到MapBox組件

        1.5 程序?qū)崿F(xiàn)自動分析雷達回波

        1.5.1 程序?qū)崿F(xiàn)自動分析各區(qū)縣雷達回波情況

        因雷達回波圖是以不同顏色表示不同回波強度并按像素繪制而成,即對雷達回波的分析可視為對各像素顏色的分析。分析各區(qū)縣出現(xiàn)強回波情況的方法為:在圖1逐像素讀取RGB值,如果值為(255,0,0)即為強回波(圖1在繪制時已將強回波統(tǒng)一繪成RGB(255,0,0)色),記錄該點的坐標(biāo),從圖2相同坐標(biāo)點讀取RGB值,當(dāng)RGB值為非(255,255,255)時,則與表1相匹配,從而判定出所屬區(qū)縣。最終求得各區(qū)縣的強回波數(shù)量和所占面積的百分率。

        圖1 匹配地理位置后的雷達回波

        圖2 各區(qū)縣的位置判定

        表1 為各區(qū)縣定義的RGB色值

        1.5.2 程序?qū)崿F(xiàn)自動分析自動氣象站附近和災(zāi)害隱患點附近雷達回波情況

        分析自動氣象站附近和災(zāi)害隱患點附近雷達回波情況,使用相同的算法:先將自動氣象站的經(jīng)緯度坐標(biāo)轉(zhuǎn)化為笛卡爾坐標(biāo)(x,y)(SharpMap在SharpMap.Map類下提供了該轉(zhuǎn)化函數(shù):PointF WorldToImage(Coordinate p)),與已知的中心點笛卡爾坐標(biāo)(x',y')作偏移量計算,再轉(zhuǎn)化為像素坐標(biāo),最后用中心點的像素坐標(biāo)(x0,y0)作偏移計算,就能求出自動氣象站在圖1中的坐標(biāo)(X,Y),見下式。通過讀取圖1中坐標(biāo)(X,Y)附近的RGB值,分析出該點附近的雷達回波情況。分析出的自動氣象站附近的雷達回波情況,可作為排查自動站的異常降雨量的依據(jù);分析出的災(zāi)害隱患點附近的雷達回波情況可彌補在該處未建設(shè)自動氣象站的不足。

        其中,A為已求得的笛卡爾坐標(biāo)與像素坐標(biāo)轉(zhuǎn)化系數(shù),該系數(shù)與1.4小節(jié)中A的值相同;中心點為雷達站的位置,(x',y')可用雷達站經(jīng)緯度轉(zhuǎn)化;(x0,y0)可根據(jù)圖1的分辨率求得。

        2 結(jié)束語

        系統(tǒng)實現(xiàn)了GIS地圖、自動氣象站數(shù)據(jù)、多普勒天氣雷達產(chǎn)品和災(zāi)害隱患點信息的整合顯示與自動預(yù)警,在業(yè)務(wù)運行中取得了較好的效果,提高了氣象部門在應(yīng)對突發(fā)氣象災(zāi)害的速度和服務(wù)質(zhì)量,也能提高專業(yè)氣象服務(wù)能力。隨著業(yè)務(wù)需求的提高,后續(xù)還需繼續(xù)豐富雷達產(chǎn)品和深入分析,系統(tǒng)界面見圖3。

        圖3 系統(tǒng)界面

        猜你喜歡
        氣象站柵格圖層
        珠峰上架起世界最高氣象站
        基于鄰域柵格篩選的點云邊緣點提取方法*
        心靈氣象站
        趣味(語文)(2019年3期)2019-06-12 08:50:14
        巧用混合圖層 制作抽象動感森林
        自動氣象站應(yīng)該注意的一些防雷問題
        圖層法在地理區(qū)域圖讀圖中的應(yīng)用
        不同剖面形狀的柵格壁對柵格翼氣動特性的影響
        基于CVT排布的非周期柵格密度加權(quán)陣設(shè)計
        淺析“遞層優(yōu)化法”在礦井制圖中的應(yīng)用
        河南科技(2014年6期)2014-04-04 08:00:42
        自動氣象站常見故障判斷與維護
        河南科技(2014年12期)2014-02-27 14:10:40
        射精专区一区二区朝鲜| 中文字幕人妻少妇久久| 久久久精品国产三级精品| 性色av一二三天美传媒| 成l人在线观看线路1| 激情综合欧美| 黑丝美女被内射在线观看| 国产精品一区二区三区播放| 国产成人精品日本亚洲专区61| 亚洲av无码不卡| 天天躁日日躁狠狠躁一区| 亚洲黄色官网在线观看| 亚洲国产性夜夜综合另类| 日本老熟妇乱| 国内精品一区视频在线播放 | 少妇脱了内裤让我添| 岛国精品一区二区三区| 亚洲福利一区二区不卡| 久久久久亚洲av成人人电影| 午夜男女爽爽爽在线视频| 国产精品久久中文字幕第一页| 水蜜桃在线观看一区二区国产| 久久精品中文字幕| 内射精品无码中文字幕| 欧美日本视频一区| 日本本土精品午夜视频| 日产精品久久久一区二区| 色窝窝在线无码中文| av中文字幕在线资源网| 青青草狠吊色在线视频| 中文字幕天天躁日日躁狠狠躁免费| 超碰Av一区=区三区| 国产91久久精品成人看网站| 国产av国片精品有毛| 欧美性群另类交| 国产精品视频免费一区二区三区 | 久久国产精品免费一区六九堂| 日本视频在线观看一区二区| 三年片大全在线观看免费观看大全| 97色在线视频| 麻豆国产精品伦理视频|