• 
    

    
    

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

      ?

      基于GIS的大慶市震害預(yù)測系統(tǒng)研發(fā)

      2017-09-08 04:08張云輝張若飛朱東旭裴彪黃猛
      中國集體經(jīng)濟 2017年26期
      關(guān)鍵詞:大慶市橢圓框架

      張云輝+張若飛+朱東旭+裴彪+黃猛

      摘要:文章根據(jù)WEBGIS的工作原理,在WEBGIS基礎(chǔ)平臺上,采用計算機網(wǎng)絡(luò)和數(shù)據(jù)庫管理技術(shù),對大慶市的基礎(chǔ)公共設(shè)施數(shù)據(jù)進(jìn)行采集、存儲、管理、分析、計算和圖形處理顯示,以百度地圖作為互聯(lián)網(wǎng)地理系統(tǒng)的底圖進(jìn)行開發(fā),設(shè)計大慶市災(zāi)害預(yù)測信息平臺,實現(xiàn)對基礎(chǔ)公共設(shè)施數(shù)據(jù)的算法分析模擬情況。該系統(tǒng)的構(gòu)建為大慶市的震害預(yù)測情況提供可靠的數(shù)據(jù)分析。

      關(guān)鍵詞:GIS,地震,震害預(yù)測,研究

      隨著社會經(jīng)濟的高速發(fā)展,人民生活質(zhì)量的提升,城市的建設(shè)也越來越趨于完善,在此社會現(xiàn)狀和背景下,迫切需要一套評定和提高城市抗震防災(zāi)能力加強地震關(guān)鍵技術(shù)研究,采取有效措施減少地震損失,因此,我們決定采用IT+GIS的方式設(shè)計一套針對此情況的實時性信息系統(tǒng)。

      廊坊市震害預(yù)測系統(tǒng)是本系統(tǒng)采用B/S系統(tǒng)架構(gòu),基于GIS空間數(shù)據(jù)庫、坐標(biāo)轉(zhuǎn)換技術(shù)、GIS空間分析技術(shù)和PHP開發(fā)技術(shù),應(yīng)用震害因子算法預(yù)測不同強度地震災(zāi)害條件下城市的受損程度及空間分布并進(jìn)行二維可視化顯示、綜合查詢分析和高效的輔助決策功能,確定城市抗震薄弱環(huán)節(jié)并快速預(yù)警。本文詳細(xì)介紹了本系統(tǒng)的開發(fā)過程。

      一、系統(tǒng)分析

      大慶市震害預(yù)測系統(tǒng)的系統(tǒng)功能結(jié)構(gòu)圖如圖1所示。它的工作流程是根據(jù)大慶市地質(zhì)災(zāi)害分布及危險度、建筑物和建筑設(shè)施的基本情況(包括名稱、空間分布、結(jié)構(gòu)類型、目前工作狀態(tài)等),建立了大慶市地震震害預(yù)測空間數(shù)據(jù)庫,采用MVC設(shè)計模式+CI框架,結(jié)合GIS空間分析應(yīng)用模型和地震工作基本原理,對地震災(zāi)害破壞程度及空間分布做出預(yù)測,實現(xiàn)城市防震減災(zāi)工作中由靜態(tài)規(guī)劃到動態(tài)管理的轉(zhuǎn)變。

      二、系統(tǒng)設(shè)計與實現(xiàn)

      大慶市震害預(yù)測系統(tǒng)是基于PHP CI框架+MYSQL數(shù)據(jù)庫+百度地圖接口+ARCGIS Shp圖層(進(jìn)行投影轉(zhuǎn)換)進(jìn)行開發(fā)的,充分利用GIS工具軟件對空間數(shù)據(jù)庫的處理,分析功能,提高了應(yīng)用系統(tǒng)的開發(fā)效率,開發(fā)出的系統(tǒng)具有良好的外觀效果,強大的底層數(shù)據(jù)庫,可靠性良好,移植性強,易于維護(hù)。

      (一)CI框架的選取

      如果在IT系統(tǒng)建設(shè)過程中缺乏總體架構(gòu)和規(guī)劃,系統(tǒng)將在管理上面臨眾多的挑戰(zhàn)。比如:業(yè)務(wù)越來越復(fù)雜,IT系統(tǒng)越來越龐大,檢查一個錯誤就需要在整個項目中查找;不清楚IT系統(tǒng)中各個模塊的現(xiàn)狀,更談不上合理規(guī)劃新的功能;系統(tǒng)難以維護(hù)等問題。因此,一個適用的框架是非常重要的。

      CodeIgniter(CI)是一個小巧但功能強大的 PHP 框架,作為一個簡單而“優(yōu)雅”的工具包,它可以為開發(fā)者們建立功能完善的 Web 應(yīng)用程序。它有如下特點:

      1. 小巧的框架,CodeIgniter 3包括用戶手冊的安裝包僅有 2MB 大小。

      2. 出色的性能,CodeIgniter 的性能始終優(yōu)于大多數(shù)同類框架。

      3. 沒有大規(guī)模集成類庫,CodeIgniter 不是一個大而全的框架。在保持簡潔的同時提供足夠強大的功能來提高你的生產(chǎn)力,在此基礎(chǔ)之上也有許多第三方擴展為你提供更多功能。

      4. 幾乎 0 配置,CodeIgniter 奉行約定勝于配置的理念(例如把模型文件放到“models“文件夾中)。當(dāng)用戶希望修改配置的時候,在“config“文件夾中有許多配置項供用戶修改。

      5. 廣泛兼容各種主機環(huán)境,CodeIgniter

      3只需 PHP 5.3.7 版,幾乎可以運行在任何虛擬主機或云平臺上。對于需要數(shù)據(jù)庫的 Web 應(yīng)用來說,CodeIgniter 支持包括 MySQL 在內(nèi)的大多數(shù)常見數(shù)據(jù)庫。由于本系統(tǒng)經(jīng)過測試后要部署在大慶市自己的服務(wù)器上,因此兼容性強是選擇本框架的核心。

      基于以上優(yōu)點,CI框架非常適合本系統(tǒng)的開發(fā)。

      基于CI框架,系統(tǒng)的主界面通過選擇xx數(shù)據(jù)集,可以進(jìn)行分類數(shù)據(jù)的相應(yīng)的展示,這里用到了百度地圖的BMAP.POINT對后臺數(shù)據(jù)進(jìn)行集成,使用icon類進(jìn)行點顏色的選擇,并且設(shè)置了圖形的透明度等屬性,以求給用戶一個大方美觀的界面。

      系統(tǒng)的主界面如圖2所示。

      (二)空間數(shù)據(jù)庫設(shè)計

      基于任何一個GIS系統(tǒng)的核心都是數(shù)據(jù)庫的建設(shè),由于本系統(tǒng)要對城市的抗震能力進(jìn)行分析,因此不僅要包含基礎(chǔ)的行政區(qū)劃圖、建筑物統(tǒng)計信息表等(其中包含了建筑物類型、空間分布、結(jié)構(gòu)類型、抗震設(shè)防、目前工作狀態(tài)等30余項內(nèi)容)基礎(chǔ)地理信息,還要包含生命線(鐵路、公路、水系、橋梁、水管、電線、煤氣管線、暖氣管線)等基礎(chǔ)信息,經(jīng)過半年多的前期調(diào)研,整個基礎(chǔ)信息數(shù)據(jù)文件有13.4GB之多,這么多的數(shù)據(jù)如果不能給他們進(jìn)行清晰的按類劃分,對于程序員的后期開發(fā)將會產(chǎn)生災(zāi)難性的后果,因此項目組依據(jù)前期所調(diào)查出來的結(jié)果,把所有數(shù)據(jù)按照類型分為三大類(公共基礎(chǔ)數(shù)據(jù)、生命線數(shù)據(jù)、地理信息數(shù)據(jù))近200張表。如圖3、圖4所示。

      三、數(shù)據(jù)查詢

      有了數(shù)據(jù)庫,那么下一步就是提供給用戶方便的查詢功能,據(jù)百度大數(shù)據(jù)統(tǒng)計,在所有的IT用戶中,85%以上的用戶每天適用最頻繁的就是查詢功能。為了方便用戶本系統(tǒng)提供了精確查詢和模糊查詢2個功能。尤其是模糊查詢,是本系統(tǒng)的一個特色,為了在模糊查詢時能精確查找出所有匹配的建筑,項目組對數(shù)據(jù)庫中的建筑物所在位置字段進(jìn)行了重新定義,把原來的一個字段分解為了5個字段(建筑物所在的(市)字段,(轄區(qū)/縣/胡同)字段,(街道/鄉(xiāng)鎮(zhèn))字段,(小區(qū)名/村名/單位名)字段,(樓號)字段。),并且重寫了search類進(jìn)行實現(xiàn)。雖然增加了工作量,但是對于后期的系統(tǒng)開發(fā)卻大大提升了效率,效果如圖5所示。endprint

      (一)地震烈度算法的選擇

      本系統(tǒng)提供圓形模型和線性模型兩種烈度算法給用戶提供選擇,在進(jìn)行相應(yīng)的參數(shù)輸入后,進(jìn)行計算,然后用戶選擇添加想要分析的數(shù)據(jù),系統(tǒng)經(jīng)過一系列的比對算法之后,會給用戶呈現(xiàn)出不同顏色的數(shù)據(jù)集。

      此部分是整個系統(tǒng)的核心部分,在計算機行業(yè)中有一句話叫:數(shù)據(jù)的呈現(xiàn)是軟件,程序的靈魂是算法;為此專門設(shè)計了一個烈度圖的類intensityShow。

      在此類中共有三個方法intensityRArray,drawOval, ovalPoint.

      1. 根據(jù)烈度返回距離 intensityRArray方法

      此方法根據(jù)沙海軍提出的衰減模型進(jìn)行距離的選擇和判斷,根據(jù)相應(yīng)計算出的烈度,然后進(jìn)行距離的選擇,以確定長短軸。

      2. 繪制橢圓 drawOval方法

      此處調(diào)用百度地圖的BMAP. Polygon方法進(jìn)行覆蓋物的繪制,這樣就可以和百度地圖進(jìn)行對接,使得功能在百度地圖上展示出來。

      3. 計算烈度圈的點 ovalPoint方法

      此方法是核心的算法,因為百度地圖BMAP. Polygon方法要求的是一個裝有經(jīng)緯度數(shù)據(jù)點的數(shù)組,因此,計算相應(yīng)的數(shù)據(jù)點就成為了此算法的核心部分,根據(jù)橢圓的標(biāo)準(zhǔn)公式和直線的點斜式公式,依次對橢圓上180度的點進(jìn)行計算,分別在四個區(qū)間內(nèi)進(jìn)行分別處理,這樣我們就可以得到經(jīng)過計算的360個點。

      a^2=b^2+c^2長短軸之間的關(guān)系(1)

      F1P+F2P=2a橢圓上任意一點到兩焦點之間的距離相等(2)

      x^2/a^2+y^2/b^2=1 x軸的橢圓標(biāo)準(zhǔn)方程(3)

      y=kx+b(默認(rèn)過橢圓圓心,因此b值為0) (4)

      我們模擬這條線從0度開始,持續(xù)選擇180度,在每一度進(jìn)行計算,因此,我們沒一度都可以得到第一(第二)象限,第三(第四)象限的坐標(biāo)點,逐次計算,最終得到360個橢圓的邊界點。

      但是這里面還有兩個核心的問題沒有解決。

      1. 如何得到這個長軸的點呢?因為它使用的是經(jīng)緯度的單位,所以就得使用經(jīng)緯度的坐標(biāo)進(jìn)行轉(zhuǎn)換,但是百度地圖的投影和我們?nèi)粘J褂玫耐队巴耆灰粯樱绻麖娦惺褂脛t會產(chǎn)生較大誤差,所以必須利用百度的相應(yīng)接口進(jìn)行間接的坐標(biāo)計算,因此我使用了縮進(jìn)方法,每次以極微弱的經(jīng)緯度差距在同一經(jīng)度(緯度)進(jìn)行向前尋找,以距離為限制條件,一旦搜索到和距離相匹配的點,則就選中這個點,那么這個問題就解決了

      for(vari=0.0000;i

      var bLat = centre.lat+i;

      bPoint = new BMap.Point(centre.lng,bLat);

      if(map.getDistance(centre,bPoint).toFixed(0)==b.toFixed(0)*1000){//在這個經(jīng)度下尋找距離為b的點

      bPointLat = bLat;

      break;

      }

      }

      2. 如何將繪制好的橢圓進(jìn)行旋轉(zhuǎn)呢?

      在線性代數(shù)中,坐標(biāo)相對位置的轉(zhuǎn)換可以看成矩陣的變換,則使用向量法,將每一個點的坐標(biāo)向同一方向進(jìn)行偏移,最終實現(xiàn)了橢圓的旋轉(zhuǎn)。

      var x=Math.abs(lng*Math.cos(angle));

      var y=Math.abs( lng*Math.sin(angle))。

      (二)建筑物震害評估

      由于大慶市有數(shù)萬棟建筑,因此在計算時本系統(tǒng)采用基于網(wǎng)格計算的震害因子法。并基于不同的震級給出不同的建筑物受損情況。

      如何在現(xiàn)有的極少的數(shù)據(jù)下進(jìn)行拓展查詢呢?這些數(shù)據(jù)并沒有被調(diào)查到,只能最大程度的去模糊搜索這些數(shù)據(jù),策略是若某一棟被搜索的建筑并沒有數(shù)據(jù),那么我們就查找它在哪一個區(qū)域,因為這個區(qū)域的屬性應(yīng)該是一樣的,我們就默認(rèn)這個區(qū)域的宏觀屬性是所查找建筑的詳細(xì)屬性,這樣,即使數(shù)據(jù)不全,我們也可以對整個城市的建筑群,進(jìn)行一個客觀的評估。

      圖7是經(jīng)過計算分析的經(jīng)濟損失是否達(dá)到震害損失合格線的效果圖。

      (三)圖表繪制

      經(jīng)上述算法和相關(guān)計算,將各種破壞情況下的數(shù)據(jù)統(tǒng)計繪制出來。

      此圖表的繪制主要使用EChart進(jìn)行實現(xiàn),主要調(diào)用Echart的EChart.setOption()方法進(jìn)行圖標(biāo)繪制, EChart.title()設(shè)置標(biāo)題,EChart.tooltip()設(shè)置工具信息,EChart.legend()設(shè)置x軸坐標(biāo)信息,EChart.series設(shè)置數(shù)據(jù)比例值,這樣數(shù)據(jù)圖表就渲染和制作完成。

      (四)截圖繪圖PPT&&WORD快速產(chǎn)出

      在整個系統(tǒng)流程中我們設(shè)計了一套流程進(jìn)行模擬分析,設(shè)置模擬地震,選擇分析數(shù)據(jù)集,進(jìn)行餅狀圖繪制,導(dǎo)出PPT&&WORD,在此過程中,我們在關(guān)鍵流程位置進(jìn)行自動截圖,這在我們點擊事件中點擊觸發(fā),但是并不影響用戶對本系統(tǒng)使用,截圖時是每次成圖的界面進(jìn)行自動截圖,然后將這些圖片早生成word時自動導(dǎo)入到word中,這樣達(dá)到快速產(chǎn)出的功能。

      此功能需要調(diào)用office的接口,為此我們專門寫了一個類,PowerPointExport進(jìn)行實現(xiàn),在此類中,我們把引用office如下方法getProperties.createTemplatedSlide實現(xiàn)每一頁模版的創(chuàng)建;getProperties. createRichTextShape實現(xiàn)創(chuàng)建文本的樣式;getProperties. setHorizontal實現(xiàn)創(chuàng)建偏移量的設(shè)定;getProperties.createTextRun實現(xiàn)繪制文本框;getProperties.setPath實現(xiàn)路徑的保存;getProperties.setDescription實現(xiàn)背景的渲染等一系列近20種方法進(jìn)行修飾,這里不再一一贅述。效果如圖10所示。

      四、結(jié)論與展望

      本系統(tǒng)利用IT+GIS技術(shù),實現(xiàn)了對公共數(shù)據(jù)的分享,分析,與發(fā)布,方便業(yè)內(nèi)人士進(jìn)行數(shù)據(jù)分析,該系統(tǒng)的開發(fā)希望可以讓業(yè)內(nèi)人士避免在數(shù)據(jù)的繁雜中尋找自己想要的可用數(shù)據(jù),方便了人們的日常工作,同時由于本系統(tǒng)在數(shù)據(jù)庫維護(hù),GIS空間數(shù)據(jù)抽取算法中還有一些問題,在今后的研發(fā)過程中將做進(jìn)一步的修改和優(yōu)化。

      參考文獻(xiàn):

      [1]汪素云.中國分區(qū)地震動衰減關(guān)系的確定[J].中國地震,2000(02).

      [2]姜開興.城市抗震減災(zāi)策略[J].中國減災(zāi),2007(11).

      [3]李淑貞.地震災(zāi)害評估[M].地震出版社,2006.

      *基金項目:2016年國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目——基于GIS的大慶市震害分析模擬系統(tǒng)(201611775029);中央高?;究蒲袠I(yè)務(wù)費專項資金創(chuàng)新團隊資助計劃項目(ZY20110102)。

      (作者單位:防災(zāi)科技學(xué)院)

      猜你喜歡
      大慶市橢圓框架
      再見,挖鼻孔
      大慶市博物館公眾考古工作的實踐與思考
      逐夢冰向未來
      冰雪童趣快樂無限
      框架
      b=c的橢圓與圓
      巧用點在橢圓內(nèi)解題
      淺談框架網(wǎng)頁的學(xué)習(xí)
      基于Jmeter對Node框架性能的測試研究
      橢圓的三類切點弦的包絡(luò)
      巴马| 永济市| 运城市| 闽侯县| 南安市| 清水河县| 赤水市| 礼泉县| 固始县| 阿拉善盟| 芒康县| 樟树市| 墨竹工卡县| 台南市| 安化县| 长阳| 莱阳市| 永仁县| 朝阳县| 扎囊县| 岢岚县| 米易县| 邵阳市| 勐海县| 铁岭市| 来安县| 陆河县| 会宁县| 孙吴县| 沂南县| 普安县| 马公市| 中阳县| 桦南县| 安徽省| 海盐县| 金寨县| 大田县| 廊坊市| 祁连县| 玉龙|