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

基于Flask和Vue的AIS數據分析系統設計與開發

2019-12-06 08:48:53任丹侯英姿王方雄姜來
軟件 2019年10期

任丹 侯英姿 王方雄 姜來

摘? 要: 為了更好的利用AIS數據,使用前后端分離的方法設計和開發了AIS數據分析系統,在本文中著重對此系統的整體架構和技術路線進行介紹。系統基于Python語言的Flask框架搭建后端數據和計算服務,前端基于Vue.js框架搭建頁面,最終實現了基礎信息展示、數據統計和可視化及聚類分析分析等功能。

關鍵詞: AIS數據;Flask;Vue;WebGIS

中圖分類號: TP311.52? ? 文獻標識碼: A? ? DOI:10.3969/j.issn.1003-6970.2019.10.025

本文著錄格式:任丹,侯英姿,王方雄,等. 基于Flask和Vue的AIS數據分析系統設計與開發[J]. 軟件,2019,40(10):111114+120

The Design and Development of AIS Data Analysis System Based on Flask and Vue

REN Dan1,2, HOU Ying-zi1,2, WANG Fang-xiong1,2, JIANG Lai1,2

(1. Liaoning Key Lab of Physical Geography and Geomatics, Liaoning Normal University, Dalian 116029, China;

2. School of Urban and Environmental Sciences, Liaoning Normal University, Dalian 116029, China)

【Abstract】: In order to make better use of AIS data, we designed and developed AIS data analysis system by using the method of front-back stage decoupling, and introduced the architecture and technical route of this system in this paper. The backend data and computing service is based on the Flask web framework, the frontend page is based on Vue.js Framework, at last we realized some functions like basic information display、data statistics and visualization、clustering analysis and so on.

【Key words】: AIS data; Flask; Vue; WebGIS

0? 引言

在貿易全球化的今天,河運與海運作為傳統的運輸方式,憑借著運量大、運費低的優勢仍然是各種長途物流的重要選擇,船舶交通日益繁忙。而AIS(船舶自動識別系統)通過各種船載、星載及岸基設施間相互鏈接實現信息交換,極大方便了海上交通實況識別和監管,有利于海上船舶交通安全和實施交通規劃[1,2]。

無論是實時還是歷史的AIS數據都有很大的利用價值[3]。隨著計算機和網絡技術的快速發展[4],目前已有使用各種解決方案設計和開發的AIS信息服

務平臺,但這些平臺功能局限于基本的數據查詢,未能進一步對AIS數據進行分析挖掘。在本文中介紹了使用Flask、Vue.js等技術框架構建一款WebGIS系統[5-7]——AIS數據分析系統,通過實現各種可視化分析功能來挖掘更多AIS數據的時空信息,實現AIS數據更大的利用潛力。

1? 系統架構設計

AIS數據分析系統是采用B/S模式(瀏覽器/服務器)的Web應用,用戶通過瀏覽器來訪問。技術結構如圖1所示,系統采用前后端分離的設計思想[8],AIS數據存儲在PostgreSQL數據庫中。前端工程與后端工程分離開發,后端部分采用Python語言的Flask框架搭建,前端頁面則使用Vue.js框架搭建,然后通過RESTful API接口使用json進行數據交互。前后端應用開發完成后再分別部署在Nginx服務器上。

1.1? 數據庫設計

AIS數據量大而雜,為保障系統對數據的訪問速度和效率,選擇PostgreSQL作為存儲數據庫。PostgreSQL是一個功能強大,開源對象關系型數據庫系統,與其它關系型數據庫相比具有更好的數據一致性和可靠性[9]。選取2017年某一天時間段內全球范圍的AIS數據預處理后作為示例數據,存儲在數據庫中,數據庫內包含兩張表--Pos表存儲船舶動態信息,Shipinfo表存儲船舶靜態信息。兩張表中各字段的類型和說明如下表所示。

1.2? 服務端設計

Flask是使用Python編寫的基于MVC設計模式的Web應用框架,具有輕量,擴展性強的特點。服務端程序通過ORM工具SQLAlchemy實現對數據庫的增刪改查,并通過NumPy、Scikit-learn等第三方庫對數據進行處理和計算,并將結果整理成合適的json數據的格式通過Flask框架以URL的訪問形式發布為RESTful API服務來供前端程序調用。

1.3? Web前端設計

前端應用工程是基于Vue.js的腳手架工具Vue- cli構建的SPA(單頁面應用程序)項目。Vue.js是一個輕巧、高性能的用于構建用戶web界面的漸進式框架,其數據綁定和組件化的特點可以幫助開發人員更方便快速的創建Web應用[10]。通過Vue-cli快速搭建項目,然后通過NPM包管理工具來下載和管理使用到的JavaScript包,并配合Webpack來打包整個前端程序。使用Element-UI框架中的組件來搭建整體頁面,使用經過組件化后的Echarts和百度地圖等開源JavaScript庫來實現地圖和圖表的顯示。

Element-UI是一套基于Vue2.0的桌面端組件庫,提供了許多用于適用于構建桌面端web應用的組件。系統主界面使用Container布局容器將整體布局分為三部分:頂欄,側邊欄和主要區域。側邊欄

用于功能導航,點擊某一功能選項,會通過Vue- router跳轉到具體的功能頁面,功能頁面會顯示在主要區域容器中。主要區域右側有一個操作框,容納對具體功能操作的一些選項,并通過底側的按鈕控制顯示和隱藏。

2? 系統實現

2.1? 功能實現

系統除了基本的地圖顯示功能和數據查詢之外,還將利用AIS數據中的地理位置信息、時間信息以及各類型靜態屬性信息實現各種統計和可視化功能,并通過聚類算法對AIS點數據進行分析。

2.1.1? 地圖顯示

地圖功能主要使用封裝自百度地圖JavaScript API的開源地圖組件庫Vue Baidu Map。組件庫提供的地圖和地圖覆蓋物組件能夠實現位置信息在地圖上以點、線、面以及信息窗體的形式顯示。地圖的其它功能如縮放、鷹眼、比例尺等則通過調用相應控件并設置適當的屬性實現。另外針對國內地理坐標系位置偏移的問題,通過程序來判斷位置坐標是否位于國內,若是則將數據默認的WGS-84坐標轉換為BD坐標系坐標。

2.1.2? 數據查詢

基于AIS數據庫中的字段設計基本的按時間(UpdateTime、InsertTime)和位置(Lat、Lon)的查詢功能。輸入框輸入要查詢信息的時間范圍,或經緯度范圍,通過axios的get請求,將請求參數發送到服務端程序中,服務端根據參數使用SQLAlchemy從數據庫中的Pos表中查詢并取出mmsi號碼、航行狀態等動態信息,或者從ShipInfo表中查詢取出船名,船舶類型等靜態信息組織成json格式,再通過響應返回到客戶端。客戶端接收后將數據在地圖或者表格中顯示。

2.1.3? 統計和可視化

統計功能分為按時間或位置的船舶通行數量統計等。通過編寫服務端算法,根據發送的各種條件參數計算并返回結果值,前端使用封裝自數據庫可視化工具Echarts.js的組件庫Vcharts中的折線圖、柱狀圖和餅狀圖等來展示。

可視化功能分為熱力圖和聚散點,分別通過將含有位置信息的點數據作為屬性賦值給地圖組件庫中的熱力圖和點聚合組件實現。熱力圖以特殊高亮的形式在地圖上顯示AIS數據密集程度,根據密度程度的不同顯示不同顏色,以直觀形式展現數據密度分布。聚散點通過點聚合的方式在地圖上加載大量點標記,將一定范圍內的所有點聚合為一個點,可以反應這些點的數量和大體位置。

2.1.4? 聚類分析功能

系統的聚類分析功能是針對某一區域一天內所有的船舶航行位置數據進行聚類計算,從得到的結果中,判斷此時空范圍內主要的船舶航行區域,來為航線規劃等提供參考[11]。聚類功能是在服務端調用Scikit-learn庫來計算實現的,Scikit-learn是專門面向機器學習的Python開源庫,實現了很多成熟的算法,包括各種聚類算法。本系統中使用DBSCAN算法進行聚類計算。

DBSCAN算法是一種基于密度的聚類算法,預先設定兩個鄰域參數:(1)eps:在一個點周圍鄰近區域的半徑;(2)minPts:鄰近區域內至少包含點的個數。算法通過檢查數據集中每個點的eps鄰域來搜索簇,若點的領域包含的點的個數多余minPts,則創建一個以此點為核心對象的簇;然后,重復上述方法遍歷此鄰域內其它點,直到建立一個類,當沒有新的點添加到任何簇時結束,不屬于任何簇的點定義為噪聲點。輸出的結果是各個簇的集合。

調用sklearn.cluster模塊中的DBSCAN函數[12],此函數需要四個參數,分別是搜索半徑,最小點,距離函數以及原數據集。搜索半徑可以通過繪制K-Dist.圖的形式來確定,找出圖上線段突變的距離。然后定義距離函數,對傳入的兩個數組類型坐標點參數進行計算,返回兩點間的距離。輸出值整理成以按簇的值為鍵,點數據的數組集合為值的json字符串。在地圖頁面上以不同的顏色來顯示不同的簇,白色代表噪聲點。

2.2? 系統部署

本系統的前后端項目工程通過Nginx在Linux上分別部署,使用不同的端口號。Nginx是一款高性能的HTTP服務器和反向代理服務器。前端工程使用Webpack進行打包,Webpack是一個前端資源加載/打包工具,可以管理第三方模塊,合并代碼,優化減少代碼體積等。運行打包命令后,整個項目會輸出到一個html文件和js文件,最后將輸出文件以靜態資源的方式在Nginx上部署,通過8080端口訪問。

服務端Flask應用的生產環境則需要uWSGI中間件才能部署到Nginx上。uWSGI實現了WSGI(服務器網關接口)協議,可以將Python程序或框架與Web服務器之間建立接口傳輸。在服務器Python環境中安裝uWSGI,將參數寫入配置文件并啟動程序。然后在Nginx配置文件中啟用HttpUwsgiModule模塊對uWSGI程序進行反向代理并通過3000端口供前端應用訪問api。這樣便可借助Nginx實現服務端的高并發、高性能,大大提高應用程序的訪問? ?效率。

3? 結語

AIS數據展示和分析系統利用地圖可視化形式和地理空間統計分析的方法,對AIS數據的利用價值進行了深度挖掘,從而為船舶航行及航線規劃等提供更多的參考信息。該系統還有許多需要完善的地方,如可以添加更多地理分析功能,以及分析方法的算法方面仍有優化改進的空間,這些都有待進一步的探索。

參考文獻

[1]楊倩. 我國應用星載基站AIS系統研究[J]. 中國海事,2011, 1: 53-55.

[2]劉暢. 船舶自動識別系統(AIS)關鍵技術研究[D]. 大連: 大連海事大學, 2013.

[3]葉仁道, 姜玲, 張瑜. 大數據背景下全球船舶停泊點的數據挖掘分析[J]. 杭州電子科技大學學報: 社會科學版, 2018.

[4]耿直. 大數據時代統計學面臨的機遇與挑戰[J]. 統計研究, 2014, 31(1) : 5-9.

[5]屈欣宇, 侯英姿, 王方雄.城市管網WebGIS客戶端的設計與開發[J]. 國土與自然資源研究, 2016(05): 42-43.

[6]王鶴, 王方雄, 徐惠民. 管網巡檢WebGIS設計與開發[J]. 軟件, 2017, 38(07): 126-129.

[7]徐子惠, 王方雄, 顧雙飛, 等. 城市交通警情WebGIS設計與開發[J]. 軟件, 2018, 39(9): 166-169.

[8]孫娉娉, 李新, 史廣軍. 基于前后端分離的內容管理系統[J]. 科研信息化技術與應用, 2016(4).

[9]曾侃. 基于開源數據庫PostgreSQL的地理空間數據管理方法研究[D]. 浙江大學, 2007.

[10]麥冬, 陳濤, 梁宗灣. 輕量級響應式框架Vue.js應用分析[J]. 信息與電腦(理論版), 2017(7): 58-59.

[11]趙梁濱, 史國友, 楊家軒. 基于DBSCAN算法的船舶軌跡自適應層次聚類[J]. 中國航海, 2018, 41(03): 56-61.

[12]Documentation of Scikit-learn 0.21.2/2.3.7 DBSCAN[OL]. (2019)[2019-06-30] https://scikit-learn.org/stable/modules/ clustering.html#dbscan.

主站蜘蛛池模板: 欧美国产日韩一区二区三区精品影视| 91色综合综合热五月激情| 高清欧美性猛交XXXX黑人猛交| 国产精品午夜电影| 99视频国产精品| www.91在线播放| 中国精品久久| 国产无遮挡裸体免费视频| 亚洲va欧美va国产综合下载| 四虎国产精品永久一区| 国产精品自在线天天看片| 日韩一区二区在线电影| 一级毛片a女人刺激视频免费| 亚洲欧洲日产国产无码AV| 亚洲国产看片基地久久1024| 波多野结衣一区二区三区88| 国产香蕉国产精品偷在线观看| 久久久久久久久18禁秘| 国产精品美女免费视频大全 | аⅴ资源中文在线天堂| 丰满人妻被猛烈进入无码| 亚洲婷婷丁香| 欧美一区二区三区香蕉视| 成人福利在线观看| 97视频免费看| 色综合综合网| 欧美午夜在线视频| 国产综合另类小说色区色噜噜| 曰韩免费无码AV一区二区| 亚洲 日韩 激情 无码 中出| 国产噜噜噜| 亚洲国产天堂在线观看| 国产JIZzJIzz视频全部免费| 黄色三级网站免费| 国产传媒一区二区三区四区五区| 亚洲国产精品一区二区高清无码久久 | 五月天天天色| 国产成人精品免费av| 亚洲精品第一页不卡| 国产成人三级| 国产精品嫩草影院av | 亚洲福利网址| 久久人人妻人人爽人人卡片av| 欧美日韩中文国产va另类| 免费a在线观看播放| 欧美另类一区| 99热这里只有精品5| 99视频有精品视频免费观看| 在线观看欧美国产| 熟妇人妻无乱码中文字幕真矢织江 | 国产噜噜噜| 亚洲国产日韩在线观看| 亚洲人网站| 国产91无毒不卡在线观看| 国产福利免费视频| 日本高清视频在线www色| 精品亚洲麻豆1区2区3区| 国产在线视频自拍| 成人年鲁鲁在线观看视频| 久久综合九九亚洲一区| 亚洲成aⅴ人片在线影院八| 一级全免费视频播放| 99热精品久久| 国产成人1024精品| 色婷婷在线影院| 国产综合精品日本亚洲777| www中文字幕在线观看| 狠狠色综合久久狠狠色综合| 日韩欧美91| 日韩欧美综合在线制服| 久久精品无码一区二区国产区| 最新加勒比隔壁人妻| 亚洲视频免费播放| 亚洲精品大秀视频| 国产日韩久久久久无码精品| 91在线精品麻豆欧美在线| 欧美亚洲一二三区| 日韩精品欧美国产在线| 国产精品一区在线麻豆| 国产女人水多毛片18| 99精品免费欧美成人小视频| 婷婷伊人五月|