編者按:超圖于2017 GIS 軟體技術大會上釋出了大資料時代的GIS基礎軟體——SuperMap GIS 9D。為了讓大家能更全面的認識SuperMap GIS 9D在大資料領域的成果和能力,我們策劃了SuperMap GIS 9D大資料系列文章,從技術、産品、資料和應用等多個次元進行全面、系統的介紹和闡述。歡迎走進大資料時代GIS技術的饕餮盛宴!
如果說分布式存儲技術是為了解決大資料GIS中的資料組織與管理,那麼分布式計算技術就是服務大資料GIS中的空間資料處理和分析。通過分布式存儲技術,我們解決了超大規模空間資料的高效存儲、高效檢索、按需擴充等問題,進而需要面對超大規模空間資料的處理和分析需求。在相關需求實作過程中,我們同樣需要分布式技術作為支撐。
Spark是目前大資料技術中使用最為廣泛的分布式計算架構,在SuperMap GIS 9D産品中,我們将SuperMap GIS基礎核心與Spark架構進行了深度融合。基于Spark中的核心RDD程式設計模型,我們擴充了适用于空間資料表達的FeatureRDD模型。對于多種資料源的對接,其本質就是将多種資料源中的空間資料讀取到FeatureRDD當中。
在SuperMap GIS 9D産品中,我們支援了包括UDB、PostgreSQL、MongoDB在内的多種資料庫型存儲引擎,也支援了HDFS這樣的分布式檔案系統,并且也支援Elasticsearch中存儲的空間資料。類似的,分布式計算的結果也使用FeatureRDD進行表達,可以友善的寫入到各種資料存儲引擎當中,而且MongoDB、HDFS、Elasticsearch這樣的分布式存儲方案都可以支援高性能的分布式寫入,縮短資料整體寫入時間。

更為重要的是,我們基于FeatureRDD模型建構了超過20個分布式空間資料處理和分析算子,來支援使用者多樣化的資料分析需求。幫助使用者從空間、時間、屬性多個次元了解和認知大資料,同時提供更加強勁的分析性能挖掘更多有價值的資訊。
根據大資料GIS面向的不同領域,我們可以将其劃分為空間大資料技術與傳統GIS的分布式重構,這兩個方向雖然都涉及空間資料處理與分析,但由于面向的資料和問題不同,适用的功能和算法也存在差異。接下來我們分别對這兩方面的功能進行梳理和介紹。
1
空間大資料
這方面的資料來源非常多樣,包括浮動車軌迹、手機信令、社交網絡、Web通路日志、傳感器等,屬于傳統GIS關注度較低的新型資料,但是由于其含有地理空間坐标适合通過GIS軟體進行地理空間次元的分析。根據功能适用性不同又劃分為了資料彙總和模式分析兩類。
資料彙總
聚合分析
聚合分析用于計算點的空間分布,并進行屬性統計。其特點是可以設定均勻格網(四邊形或六邊形)進行彙總,也可以設定多邊形(行政區)進行彙總;可對多個屬性字段,進行多種(最大值、總和、均值、方差等)統計計算。應用場景如現有全國範圍的某品牌門店營業資料,将位置聚合到六邊形格網中,再在每個聚合格網中進行屬性的統計計算,可以統計店鋪數目,也可以統計銷售額總和、最大銷售額等資訊。
區域彙總
區域彙總用于計算區域内的目标數目、長度或面積,并進行屬性統計。輸入資料類型是線和面,支援矩形、六邊形網格和任意多邊形彙總。其特點是支援線和面資料的統計彙總。彙總屬性值時,可以直接彙總屬性值,也可以以被統計對象相交部分為權重,進行帶權重值的精細化統計。應用場景可以使用線狀高鐵資料,配合行政邊界面資料,統計每個行政邊界中的高鐵總長度,平均長度等;也可以使用面狀土地利用圖層,配合流域圖層,計算每個流域中類型最多的土地利用類型(衆數)。
屬性彙總
屬性彙總工具用于對屬性資訊進行分組統計分析。輸入資料類型是點、線、面或純屬性資料。其特點是支援設定多個分組字段,并支援設定多個統計字段。應用場景如現有某城市管理案卷資料,可以先以城市網格作為分組字段,再以案卷類型為分組字段,統計每個城市網格内,每種案卷的發案數目,涉案金額總和等資訊。
要素連接配接
要素連接配接分析工具是根據位置、時間和屬性資訊,找到滿足指定關聯關系的比對對。它支援屬性、空間、時間三種次元的比對,輸入輸出資料類型為點、線、面。主要應用于要素間在時空次元上某些名額的關聯性分析,例如可以計算一小時内從北京出發的航班的所有飛行記錄,再比如現有全球的航運軌迹點資料,可以設定比對距離為1公裡,比對時間為1秒鐘,計算出滿足該條件的比對,并可以基于該結果,分析全球航路的擁堵情況。
軌迹重建
軌迹重建工具分析具有時間屬性的點要素或面要素,基于要素的唯一辨別确定需要追蹤的要素,并根據時間序列追蹤要素并形成軌迹對象,重建軌迹線。輸入資料類型是點或面,結果資料類型是線或面。其特點是支援點資料和面資料(如台風影響範圍),可以設定分割距離,也可以設定分割時間,用于給軌迹進行邏輯分段。可應用于建構航運軌迹、海運軌迹、台風軌迹等。
模式分析
OD分析
OD分析工具是計算出行資料中各起點和終點間的通行量,并進行屬性統計。輸入資料主要是出行記錄或帶時間的手機位置資訊。其特點是進行OD分析的同時,支援指定字段值的統計,以及輸出結果中既有OD線結果,也有站點面的統計結果。應用場景如利用計程車資料,分析各區縣的聯系程度,哪些是人口流入區,哪些是人口流出區。
密度分析
密度分析用于計算每個點的指定鄰域形狀内的每機關面積量值。輸入資料類型是點,支援矩形和六邊形網格。計算方法為點的測量值除以指定鄰域面積,點的鄰域疊加處,其密度值也相加,每個輸出範圍的密度均為疊加在範圍上的所有鄰域密度值之和。特點是點資料可以設定多個權重字段,一次性計算出多個權重值的密度分布(用格網的多個屬性字段表達);以及可以設定格網大小和搜尋半徑,調整結果輸出的分布趨勢。它的應用場景可以是現有移動信令位置資料,計算得到人流分布的聚集情況圖,協助進行基站部署和網絡優化;也可以是現有犯罪事件位置資料,計算得到一張犯罪高發區域風險的平面圖,協助優化警力部署。
熱點分析
熱點分析工具基于空間統計模型,對點要素進行統計學計算,來識别具有統計顯著性的高值(熱點)和低值(冷點)的空間聚類。輸入資料類型是點,支援矩形和六邊形網格。應用場景如現有全球的航運軌迹點資料,可以計算出航運軌迹點的熱點。
2
傳統GIS的分布式重構
如果說空間大資料分析是面向新型的,含有地理空間位置資訊的IT大資料進行的分析,那麼傳統GIS的分布式重構則是聚焦在GIS的傳統領域,對國土測繪行業中的超大規模資料進行資料處理和空間分析。為了支撐億級以及十億級規模空間對象的高效計算,我們使用分布式計算技術對傳統的空間查詢,疊加分析等經典算法進行了重構,大幅提升了算法性能。根據功能特點,可以劃分為空間疊加、位置查找、鄰近分析、資料管理等幾大類。
空間疊加
疊加分析
疊加分析是GIS矢量分析的核心功能,由于在GIS資料中,經常存在分層管理的各種空間資料,如地類圖斑資料與行政區劃資料分别存儲在兩個矢量面圖層,當需要基于行政區劃次元對地類圖斑進行統計彙總時就需要進行二者的疊加運算。具體包含相交、擦除、合并等七種算子,并且可以進行點線面三種空間資料類型的組合。
矢量裁剪
矢量裁剪是指用疊加資料集(裁剪資料集)從源資料集(被裁剪資料集)中提取部分特征(點、線、面)集合的功能。較常使用的模式為使用一個行政區劃面對象對各種點線面底圖進行裁剪,提取出來感興趣的區域進行後續計算分析。
屬性更新
屬性更新工具通過空間關系實作疊加資料集(更新資料集)與源資料集(被更新資料集的屬性值批量指派。應用場景如現有覆寫整個區域的地類圖斑面狀資料,還有各類專題面狀數目(高程、坡度、滑坡等級、農用地分布等),需要根據空間關系進行疊加指派,将專題資料的屬性值指派到地類圖斑的不同字段之上,再進行後續的字段間統計計算。
位置查找
空間查詢
空間查詢是指通過幾何對象之間的空間位置關系建構過濾條件,從已有的資料中查詢出滿足過濾條件的對象。SuperMap GIS 9D支援對象空間查詢(一對多模式)和空間查詢(多對多模式),特别是多對多模式的空間查詢支援億級要素與十萬級要素的空間查詢。應用場景如現有覆寫整個區域的地類圖斑面狀資料,計劃修建一條橫跨整個區域的高鐵,需要查詢出所有受高鐵影響的圖斑。
鄰近分析
緩沖區分析
緩沖區分析是根據指定的距離,在點、線、面幾何對象周圍建立一定寬度的區域的分析方法。緩沖區分析在GIS 空間分析中經常用到,且往往結合疊加分析來共同解決實際問題。例如,在環境治理時,常在污染的河流周圍劃出一定寬度的範圍表示受到污染的區域;又如擴建道路時,可根據道路擴寬寬度對道路建立緩沖區,然後将緩沖區圖層與建築圖層疊加,通過疊加分析查找落入緩沖區而需要被拆除的建築。
資料管理
建立空間索引
建構索引工具主要是對基于Spark的空間大資料分析前的預處理工作,是對資料的重分區過程。由于資料分區是Spark的RDD資料模型内部并行計算的一個計算單元,分區的數目決定了并行計算的粒度,且每個分區的計算都是在一個任務中進行的。是以實作優化的資料分區是Spark重要的優化手段,可以為基于Spark的GIS空間分析提供性能支援。建構索引工具包括格網索引和四叉樹索引兩種類型。格網索引建構速度較快,适合分布均勻的資料,四叉樹索引對分布不均勻的資料有較好的分區效果。
複制資料集
複制資料集工具是使用分布式計算方式對大規模資料集進行複制。可以指定範圍複制,即隻提取某一塊資料;或指定采樣比率複制,即随機抽樣出部分資料進行觀察。輸入大資料類型是點、線、面或純屬性資料。應用場景如利用全國POI資料,提取出東南沿海資料進行分析;利用全國信令資料,采樣出萬分之一的資料,進行資料分布規律的識别與分析。
如上所述,在SuperMap GIS 9D産品中,我們基于Spark技術實作了多種空間資料處理和分析功能的分布式計算,并且面向空間大資料和傳統GIS的分布式重構兩個領域提供了多種友善易用的分析功能。另一方面,我們也清晰的認識到,在大資料GIS應用中常常需要結合具體應用場景進行有針對性的組織和擴充開發,那麼如何使用SuperMap iObjects Java for Spark擴充子產品進行大資料GIS應用開發,我們将在後續的文章中進行具體介紹,請大家持續關注!
本期供稿 基礎研發中心 盧浩
本期責編謝林 曾志明