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

基于Spark的土地利用矢量數據空間疊加分析方法

2016-05-14 09:12:29靳鳳營張豐杜震洪劉仁義李榮亞浙江大學浙江省資源與環境信息系統重點實驗室浙江杭州310028浙江大學地理信息科學研究所浙江杭州310027
浙江大學學報(理學版) 2016年1期
關鍵詞:分析

靳鳳營,張豐,杜震洪*,劉仁義,李榮亞(1.浙江大學浙江省資源與環境信息系統重點實驗室,浙江杭州310028;2.浙江大學地理信息科學研究所,浙江杭州310027)

?

基于Spark的土地利用矢量數據空間疊加分析方法

靳鳳營1,2,張豐1,2,杜震洪1,2*,劉仁義1,2,李榮亞1,2
(1.浙江大學浙江省資源與環境信息系統重點實驗室,浙江杭州310028;2.浙江大學地理信息科學研究所,浙江杭州310027)

摘 要:針對海量土地利用矢量數據空間疊加分析的效率問題,提出了基于Spark的土地利用矢量數據空間疊加分析方法,通過彈性分布式數據集實現索引過濾與疊加計算,為解決空間疊加分析的瓶頸問題做了新的嘗試.實驗結果表明,相較基于Oracle數據管理的疊加分析方法,該方法顯著提高了空間疊加分析效率,更適合面向海量土地利用矢量數據的疊加分析.

關 鍵 詞:Spark;土地利用;疊加分析;矢量數據

0 引 言

土地利用矢量數據是土地調查產生的主要成果數據,其數據量隨著一年一度變更調查工作的開展而逐年增加.以浙江省為例,自第二次全國土地調查以來產生了200G左右的土地利用矢量數據,并以每年30G左右的速度增加.空間疊加分析是土地利用現狀系統的重要功能,是在相同空間坐標系下,將2個空間上有重疊的圖層相互套合,并按照一定規則(如Union,Intersect,Identity等)產生一個新圖層的過程[1].

關于空間疊加分析,很多學者開展了相關研究.文獻[2]提出了基于GPU的并行MBR過濾算法與多邊形剪裁算法;文獻[3]在現有點面、線面和面面疊加分析算法的基礎上,提出了矢量數據疊加分析算法;文獻[4]在均勻網格索引疊加分析算法的基礎上,提出了基于非均勻多級網格索引疊加分析算法,包括索引構建、網格過濾、疊加計算、拓撲構面4個部分;文獻[5]通過引入四叉樹索引,實現了新的基于改進四叉樹的矢量地圖疊加分析雙重循環算法;文獻[6]提出了基于計算幾何的矢量數據疊加分析算法.

這些研究工作大多基于單臺計算機,計算能力有限,無法有效滿足海量土地利用矢量數據高效疊加分析的需求.

針對上述難題,本文將云計算[7]技術引入土地利用矢量數據管理分析領域,利用云計算技術強大的、可彈性擴展的計算能力[8]開展土地利用矢量數據高效空間疊加分析研究.提出了一種基于Spark的土地利用矢量數據空間疊加分析方法,包括索引過濾與疊加計算.該方法通過改變數據的底層存儲,以WKT模型在HDFS分布式文件系統上存儲土地利用矢量數據,并構建四叉樹[9]索引,在疊加分析方法的執行過程中過濾掉不需要參與疊加計算的空間對象,以提高計算效率.

第1節,設計了云環境下的土地利用矢量數據存儲方法;第2節,基于Spark實現土地利用矢量數據四叉樹索引的批量并行構建算法并設計了基于Spark的土地利用矢量數據空間疊加分析方法;第3節,實例測試空間疊加分析方法,并與基于Oracle的系統作了對比,最后對研究內容進行了總結.

1 基于HDFS的矢量數據存儲

采用WKT模型在HDFS分布式文件系統上存儲土地利用矢量數據.空間要素采用ID字段作為唯一標識符,屬性數據以普通文本格式存儲,空間數據以WKT格式存儲.本文采用TSV格式,以TAB鍵分隔字段,將空間數據與屬性數據存儲為一行.

1.1 點數據存儲

點數據的屬性字段采用文本格式存儲,空間字段采用WKT模型中的POINT(X Y)存儲.點的X坐標和Y坐標之間以空格分隔,具體存儲結構如表1所示.

表1 點數據存儲Table 1 The storage of point

1.2 線數據存儲

線數據的屬性字段存儲同點數據,采用文本格式,空間字段的存儲則采用WKT模型中的LINESTRING(X1 Y1,X2 Y2)存儲.整條線由點坐標對的形式組成,坐標X和Y之間以空格分隔,2個點之間以“,”分隔,具體存儲結構如表2所示.

表2 線數據存儲Table 2 The storage of polyline

1.3 面數據存儲

面數據的屬性字段同樣采用文本格式存儲,由于面要素比較復雜,有包含離散面多邊形的情況,因此統一采用WKT模型中的MULTIPOLYGON(((X1 Y1,X2 Y2,X3 Y3,X1 Y1),(X4 Y4,X5 Y5,X6 Y6,X4 Y4)),(X7 Y7,X8 Y8,X9 Y9,X7 Y7))存儲空間字段.MULTIPOLYGON可以表示多個分離的空間面多邊形,同樣采用點集的形式表示,坐標點的X和Y值之間采用空格分隔,坐標點之間采用“,”分隔.如果一個面要素含有多個離散面多邊形,則屬于同一個環的點集采用“()”與其他點集分隔,離散面多邊形之間也采用“()”分隔,具體存儲結構如表3所示.

表3 面數據存儲Table 3 The storage of polygon

2 基于Spark的空間索引構建與疊加分析

2.1 基于Spark批量并行構建四叉樹索引算法

采用Spark技術批量并行構建土地利用矢量數據空間索引的方式,以提升空間索引的構建效率.在四叉樹索引中,為了快速檢索空間對象,其節點存儲的數據為原始空間對象的最小邊界矩形.

Spark批量并行構建土地利用矢量數據四叉樹索引算法流程如下:

首先循環遍歷全部行政區的土地利用矢量數據,將每一行政區的土地利用矢量數據圖層作為Spark輸入數據源;在Map函數中讀取空間對象數據并轉換為Geometry,獲取Geometry的最小邊界矩形;在Reduce函數中將空間對象的BSM及最小邊界矩形插入四叉樹并序列化到HDFS,其中每一土地利用矢量數據圖層對應一個四叉樹索引文件.

Spark在運行階段將土地利用矢量數據讀入內存,以RDD(彈性分布式數據集)的形式存儲,并通過MapReduce并行計算框架,實現空間索引的并行構建,加快了空間索引的構建速度.

Spark批量并行構建土地利用矢量數據四叉樹索引的關鍵偽代碼如下:

Map階段:

Input:〈土地利用矢量數據〉

Output:〈FileIndex〈BSM,minX,minY,maxX,maxY〉〉

begin

Geometry Geom=GeometryFromWkt();

Envelope Env=new Envelope();

Env=Geom.QueryEnvelope();

Context.write(FileIndex,BSM,env.minX,env.minY,env.maxX,env.maxY);

end;

Reduce階段:

Input:〈FileIndex〈BSM,minX,minY,maxX,

maxY〉〉

Output:〈FileQuadTree〉

begin

QuadTree Quadtree=new QuadTree();

f

or(Text val:values)

String[]arr=val.toString().split(“,”);

Quadtree.insert(arr[0].toInt(),new Envelope(arr [1].todouble(),arr[2].todouble(),arr[3].todouble(),arr [4].todouble()));

end for

SaveQuadTree(Quadtree);end;

2.2 基于Spark的空間疊加分析方法

下文將以土地利用矢量數據的空間相交(Intersect)為例詳細描述基于Spark的土地利用矢量數據空間疊加分析方法的執行過程,框圖見圖1.

基于Spark的土地利用矢量數據Intersect運算過程包括索引過濾與Intersect計算.

圖1 基于Spark的矢量數據空間疊加分析Fig.1 Vector data spatial overlay analysis based on Spark

索引過濾:首先循環讀取輸入數據源InputData1和InputData2下的文件夾,將每一相應文件夾下的地類圖斑數據以及InputData2地類圖斑數據的四叉樹索引文件分別讀入RDD中,然后調用flatMapToPair函數處理InputData1,遍歷Input-Data1地類圖斑數據并與InputData2地類圖斑數據的四叉樹索引相比較.對于每一條InputData1地類圖斑數據,從InputData2地類圖斑數據的四叉樹索引中取出與其相交的InputData2數據的BSM,并對兩者做Join操作,其結果為多條InputData2數據的BSM與每一條InputData1的數據連接.對于InputData2的地類圖斑數據則進行mapToPair操作,獲取其BSM與空間列.將Map處理后的InputData1與InputData2地類圖斑數據的RDD做Join操作,其結果為多條InputData2數據與每一條Input-Data1數據連接.

索引過濾的關鍵偽代碼如下:

Input:〈InputData1,InputData2,IndexData2〉

Output:〈RddJoin〈BSM,Geom1,Geom2〉〉

begin

RDD Rdd1=Featureclass1.flatMapToPair({

QuadTree Quadtree=ReadQuadtree(FileQuad);

QuadIterator Quaditer=Quadtree.Iterator();

QuadTreeQuery();});

RDD Rdd2=Featureclass2.mapToPair();

RDD RddJoin=Rdd1.join(Rdd2);

end;

Intersect計算:對索引過濾后的RDD做Map操作,在Map階段,將結果中的空間列取出并轉換成Geometry,然后對其做Intersect操作.由于空間索引存儲的是圖形的最小邊界矩形,進行Intersect操作存在2個圖形不相交的情況,因此對于不相交的圖形,將其返回結果設為“null”,并在做完Map操作后統一處理.最后,開啟一個新進程執行結果數據寫入功能,以使當前主進程繼續執行下一個MapReduce操作.

Intersect計算的關鍵偽代碼如下:

Input:〈RddJoin〈BSM,Geom1,Geom2〉〉

Output:〈FileIntersect〉

begin

RDD JoinMap=Rddjoin.map({

Geomerty GeoIntersect=Intersect(Geom1,Geom2,SpatialReferece);

If(!GeoIntersect.is Empty())

Stringutils.join(arr);

else return“null”;});

RDD JoinFilter=JoinMap.filter();

List Results=JoinFilter.collect();

SpatialIntersectWriteThread Writethread=new SpatialIntersectWriteThread(Results);

Writethread.start();

end;

3 實驗與分析

采用云計算技術管理土地利用矢量數據,設計了基于Spark的土地利用矢量數據空間疊加分析方法,并與基于Oracle+ArcSDE的系統進行了性能對比.本次測試的硬件環境為:1個主節點、4個數據節點,每個節點配置Intel i7 950@3.07GHz處理器、16G內存、1T硬盤.軟件環境為:操作系統SUSE Linux Enterprise Server 11SP2(x86_64),運行環境Hadoop 2.4.0、Spark 1.0.1.

本次實驗以2個年份土地利用矢量數據地類圖斑層的Intersect為例測試圖層疊加分析的性能,實驗數據為浙江省2010和2012年多個縣級行政區土地利用矢量數據中的地類圖斑數據.

圖2為Spark與Oracle+ArcSDE的性能對比圖.由圖2可知,Spark的性能明顯優于Oracle+ArcSDE,其所需的時間與數據量也呈線性關系,并且消耗時間要遠少于Oracle+ArcSDE.

圖2 空間Intersect時間對比圖Fig.2 Time comparison chart of Intersect

圖3所示為2個節點和4個節點下的土地利用矢量數據Intersect對比圖.由圖3可知,Spark在2個節點上與在4個節點上運行,所需的時間與數據量均線性相關,并且2個節點的效率與4個節點的效率呈一定比例關系.

圖3 空間Intersect節點對比圖Fig.3 Nodes comparison chart of Intersect

通過以上實驗測試,可以得到如下結論:在海量土地利用矢量數據疊加分析方面,Spark性能明顯優于Oracle+ArcSDE,并且隨著節點數量的增加,Spark性能呈一定比例提高.

4 結 語

將云計算引入土地利用矢量數據管理分析領域,嘗試解決現有海量土地利用矢量數據疊加分析中效率低的問題.首先,基于HDFS提出了一種矢量數據存儲方法,實現了海量土地利用矢量數據的分布式存儲;其次,結合Spark技術研究土地利用矢量數據空間索引的批量構建算法,提出了基于Spark的土地利用矢量數據疊加分析方法,較好地完成了索引過濾和疊加計算,顯著提升了疊加分析效率.對比實驗表明,本文提出的疊加分析方法更適合海量土地利用矢量數據.

本文基于四叉樹索引實現空間對象的過濾,但四叉樹在數據空間分布不均勻的情況下,存在檢索效率低的問題,下一步筆者將引入R樹索引,以提高索引過濾效率.

參考文獻(References):

[1] 陳述彭,魯學軍,周成虎.地理信息系統導論[M].北京:科學出版社,1999.CHEN Shupeng,LU Xuejun,ZHOU Chenghu.Introduction to Geographic Information Systems[M].Beijing:Science Press,1999.

[2] 趙斯思,周成虎.GPU加速的多邊形疊加分析[J].地理科學進展,2013(1):114-120.ZHAO Sisi,ZHOU Chenghu.Accelerating polygon overlay analysis by GPU[J].Progress in Geography,2013(1):114-120.

[3] 朱效民,趙紅超,劉焱,等.矢量地圖疊加分析算法研究[J].中國圖象圖形學報,2010(11):1696-1706.ZHU Xiaomin,ZHAO Hongchao,LIU Yan,et al. Research on vector map overlay[J].Journal of Image and Graphics,2010(11):1696-1706.

[4] 王少華,鐘耳順,盧浩,等.基于非均勻多級網格索引的矢量地圖疊加分析算法[J].地理與地理信息科學,2013(3):17-20,69.WANG Shaohua,ZHONG Ershun,LU Hao,et al.Vector map overlay analysis algorithm based on non-uniform multi-level grid index[J].Geography and Geo-Information Science,2013(3):17-20,69.

[5] 董鵬,李津平,白予琦,等.基于改進四叉樹索引的矢量地圖疊加分析算法[J].計算機輔助設計與圖形學學報,2004(4):530-534,609.DONG Peng,LI Jinping,BAI Yuqi,et al.Vector map overlay algorithm based on improved quadtree indexing[J].Journal of Computer Aided Design &Computer Graphics,2004(4):530-534,609.

[6] 毛定山.基于計算幾何的矢量數據疊加分析算法研究[D].濟南:山東科技大學,2007.MAO Dingshan.Algorithm Study of Vector Data Overlaying Analysis Based on Computational Geometry[D].Jinan:Shandong University of Science and Technology,2007.

[7] HAYES B.Cloud computing[J].Communications of the ACM,2008(5):23-25.

[8] 李喬,鄭嘯.云計算研究現狀綜述[J].計算機科學,2011(4):32-37.LI Qiao,ZHENG Xiao.Research survey of cloud computing[J].Computer Science,2011(4):32-37.

[9] FINKEL R A,BENTLY J L.Quad trees a data structure for retrieval on composite keys[J].Acta Informatica,1974,4(1):1-9.

Spatial overlay analysis of land use vector data based on Spark

JIN Fengying1,2,ZHANG Feng1,2,DU Zhenhong1,2,LIU Renyi1,2,LI Rongya1,2(1.Zhejiang Provincial Key Lab of GIS,Zhejiang University,Hangzhou 310028,China;2.Department of Geographic Information Science,Zhejiang University,Hangzhou310027,China)

Journal of Zhejiang University(Science Edition),2016,43(1):040-044

Abstract:To increase the spatial overlay analysis efficiency of massive land use vector data,we proposes a method of land use vector data spatial overlay analysis based on Spark.The method realizes index filtering and overlay calculating of land use vector data by resilient distributed datasets(RDD),which is a basic data structure of Spark.It makes a new attempt to overcome the bottleneck of land use vector data spatial overlay analysis.Comparing with the traditional overlay analysis based on Oracle data management,the approach increases the spatial overlay analysis efficiency significantly,which is more suitable for spatial overlay analysis with massive land use vector data,and can help us to manage and analyse the massive land use vector data.

Key Words:Spark;land use;overlay analysis;vector data

通信作者*,E-mail:duzhenhong@zju.edu.cn.

作者簡介:靳鳳營(1990-),男,碩士研究生,主要從事國土資源地理信息系統基礎研究.

基金項目:國家自然科學基金資助項目(41471313,41101356);浙江省科技攻關計劃項目(2013C33051);國家海洋公益性行業科研專項經費資助項目(2015418003,201305012);國家科技基礎工作專項(2012FY112300);中央高校基礎科研業務費專項(2013QNA3023).

收稿日期:2015-05-06.

DOI:10.3785/j.issn.1008-9497.2016.01.007

中圖分類號:P 208

文獻標志碼:A

文章編號:1008-9497(2016)01-040-05

猜你喜歡
分析
禽大腸桿菌病的分析、診斷和防治
隱蔽失效適航要求符合性驗證分析
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
電力系統及其自動化發展趨勢分析
經濟危機下的均衡與非均衡分析
對計劃生育必要性以及其貫徹實施的分析
現代農業(2016年5期)2016-02-28 18:42:46
GB/T 7714-2015 與GB/T 7714-2005對比分析
出版與印刷(2016年3期)2016-02-02 01:20:11
中西醫結合治療抑郁癥100例分析
偽造有價證券罪立法比較分析
在線教育與MOOC的比較分析
主站蜘蛛池模板: 99在线视频免费| 好吊色妇女免费视频免费| 国产一区亚洲一区| 爱色欧美亚洲综合图区| 国产日韩AV高潮在线| 99热这里都是国产精品| 国产精品视频猛进猛出| 亚洲成人精品久久| 中文无码日韩精品| 无码日韩人妻精品久久蜜桃| 性喷潮久久久久久久久| 九九热免费在线视频| 亚洲天堂日韩在线| 国产迷奸在线看| 国产v精品成人免费视频71pao| 动漫精品啪啪一区二区三区| 亚洲无码视频图片| 麻豆国产在线不卡一区二区| 亚洲综合精品第一页| 伊人狠狠丁香婷婷综合色| 亚洲国产成熟视频在线多多| 亚洲精品无码av中文字幕| 国产毛片高清一级国语| 成人av手机在线观看| 青青草原国产av福利网站| 久草视频中文| 三上悠亚一区二区| 99热国产这里只有精品无卡顿"| 日本在线免费网站| 美美女高清毛片视频免费观看| 国产成人AV大片大片在线播放 | 狠狠ⅴ日韩v欧美v天堂| 国产激情在线视频| 色综合狠狠操| 日韩成人午夜| 亚洲热线99精品视频| 538国产视频| 97在线公开视频| 国产福利观看| 一区二区自拍| 亚洲国产91人成在线| 欧美不卡二区| 久久国产亚洲偷自| 91久久精品国产| 久久国产拍爱| 久久99国产乱子伦精品免| 欧美中文字幕在线二区| 亚洲无线视频| 亚洲无码91视频| 91在线高清视频| 欧美a在线视频| 色悠久久久| www精品久久| 福利在线免费视频| 无码丝袜人妻| 狠狠色综合久久狠狠色综合| 国产在线观看一区二区三区| 国产95在线 | 亚洲精品福利视频| 国产一级一级毛片永久| 日韩国产 在线| 香蕉国产精品视频| 四虎永久免费地址| 精品夜恋影院亚洲欧洲| 国产在线一区视频| 激情综合五月网| 99re热精品视频中文字幕不卡| 国产无遮挡裸体免费视频| 在线观看国产小视频| av一区二区三区在线观看| 亚洲最大福利网站| 香蕉久久永久视频| 亚洲丝袜中文字幕| 欧美中文字幕在线视频| 亚洲精品动漫| 狼友av永久网站免费观看| 97人妻精品专区久久久久| 永久免费av网站可以直接看的 | 蜜桃视频一区二区三区| 无码专区第一页| 免费三A级毛片视频| 亚洲欧美一区二区三区蜜芽|