郭正揚,許捍衛
(1.河海大學地球科學與工程學院,江蘇 南京 211100)
3S技術應用
融合社交媒體大數據的城市三維模型構建
郭正揚1,許捍衛1
(1.河海大學地球科學與工程學院,江蘇 南京 211100)

通過C#代碼編寫微博大數據抽取系統(定時自動抽?。詣映槿∮嘘P新街口地區消費者對商戶的海量最新評論數據,從網頁上獲取南京新街口的GIS數據與微博數據一起形成數據庫,再將數據庫導入Cityengine中,通過規則建模,形成具有情感信息的三維城市。該方法能夠直觀地看出南京市新街口地區的情感信息,便于選擇評價好的區域,實現GIS服務于人。
CityEngine;微博大數據;三維;情感信息
對微博大數據而言,如何使消費者對商戶的評價信息以三維形式展現并給人直觀的視覺感受顯得尤為重要[1]。本文對微博大數據的自動抽取進行研究,設計開發微博大數據抽取系統,對獲取的微博大數據進行分析,將分析后的微博大數據進行三維建模顯示,將大數據技術與三維建模技術結合起來,幫助用戶直觀地理解數據,發現規律,有利于為消費者提供高質量的商戶信息,同時也有利于促進商戶不斷改善其服務水平與商品質量,對實際生產生活具有重要意義。
本系統的主要模塊有數據庫設計模塊和前端三維系統設計模塊兩大部分。數據庫設計模塊包括微博大數據的獲取與預處理、地圖數據的獲取與預處理兩部分,如圖1所示。

圖1 系統架構示意圖
本系統數據庫設計需要使用到ArcGIS數據庫Geodatabase和SQL Server數據庫。利用SQL Server數據庫強大的數據聚合和處理能力來存儲和處理微博情感數據,Geodatabse數據庫則用來存儲和處理地圖數據。最終將處理好的微博數據和地圖數據導入到一個數據庫中。本系統選用的數據庫是Geodatabase,能與CityEngine(以下簡稱CE)無縫結合,形成完整數據庫,為下一步前端系統設計提供數據支持。
2.1.1 微博數據的獲取
對于微博數據的獲取模塊,首先聚合新浪微博和騰訊微博及大眾點評網開放平臺API于開發的數據抽取系統中。對新街口地區特定的點、話題以及特定時間對特定點等進行時空數據抽取。通過發送http請求到開放平臺,返回JSON數據,對JSON數據進行解析,將抽取到的南京市新街口地區的商戶點評信息以及與南京市新街口地區有關的微博搜索數據入庫。對文本數據采用網絡上開源分詞工具盤古分詞來進行分詞,提取存在的情感詞及情感值。表1為抽取到的部分微博數據條數。

表1 抽取到的微博數據條數
2.1.2 微博數據的預處理
由于通過數據抽取系統抽取到的微博數據數量非常大并且情感信息復雜,要有效地運用這些微博數據,必須進行詳細的數據預處理,由此獲得方便在CE中運用的微博數據。以新街口地區微博數據的預處理為例進行說明。
1) 首先對 ArcGIS Editor for OpenstreetMap 獲取的房屋底面數據(以下簡稱OSM數據)獲取中心點,并以這些中心點為圓心、 50 m為半徑作緩沖區分析。對房屋底面數據的中心點作緩沖區分析的目的在于對微博數據進行抽稀處理,使落在緩沖區內的點被保留,落在緩沖區外的點被排除,與房屋底面數據相關的微博數據被保留,而與房屋底面數據關系不大的微博數據被排除,以此來對微博數據進行有效的利用。
2) 由于在緩沖區內的每個微博點數據都有情感值,需要對這些情感值獲取平均值,用這個平均值來表達此地區的情感信息。首先,需要獲取每個緩沖區內微博點的情感值總分,除以緩沖區內的微博點個數,以此來獲取緩沖區內微博點的情感值平均分。將獲取的微博點情感平均分分別賦給房屋底面數據中心點。獲取到的微博點平均分在2~6分之間,分數越高則表示此地區的情感值越高,即此地區評價越好。因此,需要將這些情感平均分分段,以便在CE中用不同的符號來表達。將這些情感分數分為(2~3)、(3~4)、(4~5)、(>5)4個分段,在CE中分別用下雨、陰天、多云、晴天來表達。微博數據的預處理流程如圖2所示。

圖2 微博數據預處理過程
由于本系統所使用的數據要求是南京市新街口地區的實時數據,因此不能選用現成的南京市新街口的數據,需要通過一定的方法從網上獲取所需要的數據。由于所需要的數據類型不同,所使用的方法也不盡相同。新街口地區的影像圖是通過稻歌軟件(http://www.daogle.com)截取的,即在稻歌軟件中通過鼠標直接點取要截取區域的左上角和右下角坐標,設置好地圖級別與地圖類型,最后選擇好輸出文件夾點擊輸出即可;道路以及房屋底面數據使用OpenStreetMap(http://www.openstreetmap.org/copyright)在網頁上爬取,即在OpenStreetMap網頁中輸入研究區域的經緯度,點擊導出即可。OpenStreetMap?是開放數據,由OpenStreetMap基金會(OSMF)采用開放數據共享開放數據庫許可協議(ODbL)授權;地鐵數據通過ArcGIS中的插件ArcTilerPlugin1.4.2(http://www.arctiler.com/index.html)獲??;底圖數據是通過之前獲取的影像圖在ArcGIS中經過重新配色,再經過圖幅配準處理得到的[2]。
通過以上方法即可得到南京市新街口地區的地圖數據,將其導入到ArcGIS的數據庫Geodatabase中,圖3所示為獲取并預處理之后的南京市新街口地區的二維地圖數據。

圖3 研究區二維地圖數據
要實現本系統的功能,需要在CE中進行前端系統設計。在CE中進行設計,首先必須創建場景。打開CE,新建一個場景,選擇投影坐標為墨卡托投影,將之前得到的底圖轉換成和數據庫一致的投影(這里選擇的是墨卡托投影),分別將底圖和數據庫加載到場景中,效果如圖4所示。再在這個場景中進行規則建模,將二維的數據轉化為三維的城市,達到三維城市建模的目的。

圖4 Cityengine中二維場景圖
規則是CE中自帶的一種腳本語言,通過編寫規則代碼可以進行大批量的模型生成。規則定義一系列幾何和紋理特征,決定模型如何生成?;谝巹t建模的思想是定義規則,反復優化設計,以創造更多細節。當有大量模型創造和設計時,基于規則建??梢怨澥〈罅繒r間和成本[3-6]。
1) 公共設施規則的編寫思路。這里的公共設施包括操場、花壇、停車場、公園、草地、公交站臺、交通燈等。由于本系統追求卡通化的效果,而這些公共設施的結構又極為復雜,故在規則當中使用Dae模型。Dae模型是一種在3DMax或者Sketchup導出的格式,能與CE無縫結合[7]。以下為公共設施建模的方法:① 用extrude函數進行拉伸操作;②用i函數導入dae模型;③用comp函數分面,方便為每個面貼圖;④用setupProjection函數設置紋理的大小,以及紋理對應的紋理坐標系圖; ⑤用texture函數導入圖片并貼圖;⑥ 用ProjectUV函數結束創建紋理。
2) 房屋規則的編寫思路。對于房屋可以不用Dae模型導入,只在CE中用代碼來實現。本系統的房屋大體上分為南京市新街口中心的標志性建筑和新街口周邊的民房兩大類。首先,對于標志性建筑,需要先用extrude函數拉伸一定的高度,此高度可以隨著屬性進行調節;再用comp函數對建筑分為前、后、左、右、上5個面,對于每個面再運用split(x)函數沿x軸方向切分為不同的長度,對這些劃分的長度運用texture,projectUV,setupProjection這三個函數進行貼圖[8,9]。
對于南京市新街口周邊的民房,與標志性建筑建模不同的地方有兩個方面。首先,拉伸的高度不同;其次,南京市新街口地區的民房屋頂不是通過貼圖來實現的,而是需要使用roofGable函數來具體設置屋頂的樣式。
3)道路規則的編寫思路。首先將道路分為路燈、人行道、樹木、人和交通工具5大模塊。然后對這些模塊分別編寫規則,其中對于樹木、人、交通工具和人行道運用i函數引入dae模型來實現,對于路燈則采用之前獲取的交通燈的dae模型來實現。
4)地鐵規則編寫思路。地鐵需要對其進行拉伸負值來實現。拉伸負值后會發現,在地上有一部分可見,需要運用split(y)函數沿y方向進行分割。將地上分為2個單位,地下分為18個單位,通過NIL函數將地上部分隱藏。由于本系統是卡通風格,對地下部分可用color函數進行綠色染色。
5)微博大數據的表達。對于之前獲取的微博數據,需要用不同的模型來表達。將微博數據分為4個分段,即(2~3)、(3~4)、(4~5)、(>5),運用下雨、陰天、多云、晴天來表現。首先,用extrude函數拉伸一定的高度,此高度必須比微博數據相對應的建筑物的高度高。建筑物的高度信息是在網頁上獲取的,將這些高度信息加入到建筑物圖層屬性中,通過屬性設定建筑物的高度,進而建筑物上的微博情感點高度也可通過屬性獲得。將微博數據點的高度設置為比與之對應的建筑物高出20 m。微博數據點的高度確定之后,用i函數導入在sketchup中制作好的dae模型,再用s函數定義為點狀要素,即可完成微博情感數據的表達。具體實現方法為:①用Attr函數定義常量; ②用case和else函數分情況討論旋轉角度和尺寸大小;③用s函數設置模型的尺寸、r函數設置旋轉角度、t函數設置寬度的大?。虎?用i函數導入dae模型。
由于系統中一些數據通過手動矢量化得到,其位置可能會與實際有些偏差,需要進行后期的位置調整和規劃設計。對于地圖數據,通過修改CGA規則的相關屬性來修改模型的高度等特征,以動態的方式來調整整體顯示效果,從而增加CGA規則的靈活性。而對于一些公共設施,則需要通過手動調節來調整其位置。經過調整后的效果如圖5所示。

圖5 整體效果圖
對微博大數據的自動抽取進行研究,設計開發微博大數據抽取系統,對獲取的微博大數據進行分析,并且將分析后的微博大數據進行三維建模顯示,將大數據技術與三維建模技術結合起來,幫助用戶直觀地理解數據,發現規律,有利于為消費者提供高質量的商戶信息,同時也有利于促進商戶不斷改善其服務水平與商品質量,對實際生產生活具有重要意義。
[1] 王軍,劉金輝.大數據的國內外研究現狀及發展動態分析[J].電子技術與軟件工程,2015(23):200
[2] 李學祥.GIS數據動態獲取方法研究[J].地理信息世界,2010(5):77-82
[3] 徐汝坤.Esri CityEngine:開啟三維規則建模新篇章[M].北京:中國信息技術有限公司,2012
[4] 董曉非.Esri CityEngine中文教程[M].北京:Esri 中國信息技術有限公司,2012
[5] 董曉非.Generating a 3D City[M].北京:Esri 中國信息技術有限公司,2012
[6] 李德仁.從數字地球到智慧地球[J].武漢大學學報(信息科學版),2010,35(2):127-132
[7] 呂永來,李曉莉.基于CityEngine的三維建筑模型研究[D].合肥:合肥工業大學,2012
[8] 花利忠,王趙兵.基于CityEngine與ArcGIS Flex API的校園WebGIS系統[D].合肥:合肥工業大學,2013
[9] 呂永來,李曉莉.基于CityEngine平臺的高速鐵路建模方法的研究與實現[D].合肥:合肥工業大學,2012
P208
B
1672-4623(2017)10-0046-03
10.3969/j.issn.1672-4623.2017.10.014
2016-07-20。
項目來源:國家自然科學基金資助項目( 41101374) ;水利部公益性行業科研專項經費資助項目( 201201025)。
郭正揚,碩士,研究方向為GIS系統開發與應用。