楊 微,劉紀(jì)平,王 勇
(1.山東農(nóng)業(yè)大學(xué),山東泰安271018;2.中國測(cè)繪科學(xué)研究院,北京100039)
Heatmap(熱圖)是一種在一定區(qū)域內(nèi)大量數(shù)據(jù)點(diǎn)的某一特征的空間態(tài)勢(shì)分布狀況的可視化表達(dá)方式。即用熱圖中某一點(diǎn)的位置來映射地理對(duì)象的位置,該點(diǎn)的濃度參數(shù)來表示地理對(duì)象某要素、特征、屬性的數(shù)值,并作線性拉伸,在表達(dá)地理對(duì)象空間位置的基礎(chǔ)上表達(dá)出第三維數(shù)據(jù)值的大小變化特征的方法[1]。
國外對(duì)于熱圖的研究應(yīng)用始于20世紀(jì)90年代末,最早作為犯罪案件數(shù)量分析顯示工具應(yīng)用于警力部署方面,隨后迅速應(yīng)用于政治、經(jīng)濟(jì)、文化、生活、娛樂等領(lǐng)域。目前熱圖已經(jīng)形成了比較成熟的產(chǎn)業(yè),比如Google公司提供輸入shp數(shù)據(jù)自動(dòng)生成熱圖API工具,OpenSignal網(wǎng)站可以提供全球手機(jī)基站信號(hào)覆蓋熱圖,微軟公司的統(tǒng)計(jì)數(shù)據(jù)訪問量熱圖網(wǎng)站,Colorado公司開發(fā)的關(guān)于商業(yè)智能分析的軟件SpatialKey,美國明尼蘇達(dá)大學(xué)開發(fā)的關(guān)于道路安全分析的網(wǎng)站SafeRoadMaps等。
國內(nèi)對(duì)于熱圖的研究應(yīng)用較少,只由少數(shù)技術(shù)開發(fā)人員根據(jù)國外網(wǎng)站的熱圖示例,在個(gè)人博客中進(jìn)行了簡單的熱圖渲染技術(shù)描述,或借助外國網(wǎng)站提供的API生成熱圖,達(dá)到數(shù)據(jù)直觀顯示的效果。另有南京師范大學(xué)曾毅、李明銘等將熱圖運(yùn)用到二手房產(chǎn)價(jià)格指數(shù)編制研究中,利用熱圖表達(dá)二手房價(jià)格高低變化的態(tài)勢(shì)[1]。但是上述實(shí)例只是將熱圖作為一種可視化工具,利用色彩變化表現(xiàn)空間特征冷熱狀態(tài),并沒有形成高效成熟的空間熱度分析方法和完整的技術(shù)流程,也沒有將其廣泛應(yīng)用到空間信息服務(wù)的空間分析中。本文通過總結(jié)分析國內(nèi)外現(xiàn)有的熱圖生成方法,對(duì)其進(jìn)行改進(jìn),研究熱度分析的過程(從數(shù)據(jù)采集、數(shù)據(jù)模型構(gòu)建、數(shù)據(jù)存儲(chǔ)管理到熱度分析計(jì)算,計(jì)算結(jié)果可視化等完整的流程)并進(jìn)行實(shí)際應(yīng)用,形成了一種系統(tǒng)的空間數(shù)據(jù)分布熱度計(jì)算方法。
總結(jié)國內(nèi)外熱圖生成方法大致分為以下3種:影響力疊加法、格網(wǎng)劃分法和滑動(dòng)窗口法[2-8]。對(duì)比這3種方法,第1種方法簡單方便,精度相對(duì)較高,使用較多。缺點(diǎn)是繪制熱度圖將每個(gè)對(duì)象的影響力認(rèn)為是等大,而實(shí)際場(chǎng)景中各對(duì)象的影響力很顯然是不一樣的,在一定程度上對(duì)精度造成影響。第2種方法雖然簡單,但是利用格網(wǎng)內(nèi)對(duì)象個(gè)數(shù)進(jìn)行熱度分析,網(wǎng)格的大小直接影響生成熱度圖精度,而且以格網(wǎng)中心作為格網(wǎng)內(nèi)所有研究對(duì)象的中心生成熱度圖精度更是不高。第3種方法計(jì)算量較大,過程復(fù)雜,而且假設(shè)研究對(duì)象都服從二項(xiàng)分布。
綜合上述3種算法,本文采用第1種方法并對(duì)其進(jìn)行改進(jìn)作為熱度計(jì)算方法,具體過程如下。
1)地理映射:將每個(gè)地理對(duì)象的坐標(biāo)映射到畫布區(qū)域內(nèi),映射公式為
式中,X為映射后屏幕橫坐標(biāo);x為對(duì)象地理坐標(biāo)緯度;xmin為所有地理對(duì)象緯度最小值;xmax為所有地理對(duì)象緯度最大值;Gwidth為畫布寬度;Y為映射后屏幕橫坐標(biāo);y為對(duì)象地理坐標(biāo)經(jīng)度;ymin為所有地理對(duì)象經(jīng)度最小值;ymax為所有地理對(duì)象經(jīng)度最大值;Gheight為畫布高度。
2)求每個(gè)對(duì)象的影響力:該影響力值作為每個(gè)對(duì)象的影響范圍的中心點(diǎn)的透明度,計(jì)算公式為
式中,V為影響力中心點(diǎn)透明度;v為某對(duì)象的待表達(dá)特征的值;vmin為所有對(duì)象待表達(dá)特征的值中最小值;vmax為所有對(duì)象待表達(dá)特征的值中最大值。
3)繪制灰度圖:按照式(1)式、(2)將所有對(duì)象映射到畫布中,并且以坐標(biāo)點(diǎn)為中心,以V值為中心點(diǎn)透明度繪制一個(gè)灰度逐漸變淺的圓。所有的點(diǎn)繪制完成后,畫布中每個(gè)像素就有了不同透明度值,形成了灰度圖。
4)顏色渲染:定義一個(gè)調(diào)色板,色彩由淺到深按照一定的規(guī)律變化。將調(diào)色板與步驟3)中繪制出的灰度圖疊加,將灰度圖色彩化,透明度值越大的地方顏色越淺越高亮。疊加的過程是指利用Bitmap ImageAttributes的 SetRemapTable方法將原灰度圖替換成色彩變換的顏色。
空間數(shù)據(jù)分布的熱度計(jì)算需要滿足地理對(duì)象映射精準(zhǔn)、熱度計(jì)算科學(xué)合理、熱度生成快速高效、分析結(jié)果直觀正確等條件,為政府、人們辦公生活中了解實(shí)事動(dòng)向、分布狀況提供便捷直觀的工具,為決策制定提供依據(jù)。其過程可以分解為3個(gè)階段:數(shù)據(jù)準(zhǔn)備階段、熱度計(jì)算階段和結(jié)果分析階段。
數(shù)據(jù)準(zhǔn)備階段主要解決空間數(shù)據(jù)獲取,存儲(chǔ)前的預(yù)處理以及構(gòu)建方便數(shù)據(jù)組織管理快速檢索的數(shù)據(jù)存儲(chǔ)模型等問題。數(shù)據(jù)準(zhǔn)備是熱度分析的基礎(chǔ),數(shù)據(jù)質(zhì)量直接關(guān)系熱度分析結(jié)果的好壞,數(shù)據(jù)的快速存儲(chǔ)檢索是熱度快速生成的保障。熱度計(jì)算階段主要解決熱度計(jì)算方法確定問題,為了使地理對(duì)象需要表達(dá)的特征值能夠得到有效直觀的表達(dá),滿足人們快速得到有效信息的要求,建立快速便捷的特征值與熱圖的映射計(jì)算關(guān)系是本階段要解決的關(guān)鍵問題,也是空間熱度分析的關(guān)鍵。結(jié)果分析階段是熱度分析成果展示,熱圖作為最直觀的可視化工具可以為用戶提供有效的全面的信息,但是對(duì)熱度進(jìn)行分析總結(jié),對(duì)地理對(duì)象分布熱度態(tài)勢(shì)進(jìn)行文字說明,為用戶提供指導(dǎo)性建議也是必不可少的。
在熱圖生成過程中,如果直接運(yùn)用大量數(shù)據(jù)進(jìn)行計(jì)算,則運(yùn)算量巨大,對(duì)前端運(yùn)行環(huán)境要求較高且運(yùn)算速度較慢。為提高熱度計(jì)算的算法效率,使其能夠具有較高的運(yùn)行速率和較好的運(yùn)行效果,需要對(duì)初始數(shù)據(jù)集進(jìn)行預(yù)處理,來避免對(duì)整個(gè)數(shù)據(jù)集的逐個(gè)掃描。
為解決上述問題,本文提出一種基于多級(jí)網(wǎng)格的空間聚類方法:首先通過不同分辨率下生成的動(dòng)態(tài)網(wǎng)格對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,將數(shù)據(jù)量化映射到網(wǎng)格中,建立快速的空間索引,將網(wǎng)格內(nèi)部地理對(duì)象數(shù)量代替對(duì)象本身作為熱圖計(jì)算的基本單元,將格網(wǎng)內(nèi)地理對(duì)象特征值的均值作為格網(wǎng)屬性值進(jìn)行熱度分析,最終以網(wǎng)格作為統(tǒng)計(jì)單元進(jìn)行后續(xù)的熱度計(jì)算。由于在現(xiàn)實(shí)生活中同一較小區(qū)域內(nèi)的地理對(duì)象待分析的屬性通常差距不大(比如北京二環(huán)內(nèi)各小區(qū)的房價(jià)相差不大)且格網(wǎng)劃分較密,因此網(wǎng)格結(jié)構(gòu)能夠有效保存原始數(shù)據(jù)的特征信息(如對(duì)象數(shù)量、聚集中心、屬性值等),失真度較小,變形程度也較小,而且采用這種方法能夠有效減少熱度計(jì)算時(shí)參與運(yùn)算的數(shù)據(jù)量,提高熱度分析效率。通過對(duì)該方法研究及試驗(yàn)驗(yàn)證發(fā)現(xiàn)其具有較高的可用性,并且會(huì)作為以后研究的重點(diǎn),繼續(xù)研究海量數(shù)據(jù)快速進(jìn)行熱度分析的方法(見圖1)。
圖1 空間數(shù)據(jù)分布熱度計(jì)算流程圖
本文以全國居民小區(qū)房產(chǎn)價(jià)格空間熱度分析為實(shí)例,利用網(wǎng)絡(luò)爬蟲技術(shù)從互聯(lián)網(wǎng)上獲取全國居民小區(qū)的地理位置及實(shí)時(shí)房價(jià)等地理信息,利用SQL Server 2000數(shù)據(jù)庫進(jìn)行存儲(chǔ),在Visual Studio 2005平臺(tái)上采用C#GDI+語言進(jìn)行圖形圖像編程,實(shí)現(xiàn)全國房價(jià)高低態(tài)勢(shì)直觀分布的熱圖,并結(jié)合實(shí)際情況對(duì)所得結(jié)果進(jìn)行驗(yàn)證,確保熱度分析方法的有效性。該方法可為人們購房決策提供依據(jù)。
能夠支持前端熱度高效運(yùn)算的基礎(chǔ)是空間數(shù)據(jù)的高效存儲(chǔ)、快速提取及協(xié)同計(jì)算,這就對(duì)后臺(tái)的數(shù)據(jù)存儲(chǔ)及處理提出了較高要求。同時(shí)面對(duì)結(jié)構(gòu)復(fù)雜的空間數(shù)據(jù),對(duì)數(shù)據(jù)合理的存儲(chǔ)和組織調(diào)度是提高前端熱度算法運(yùn)行效率的保障。
互聯(lián)網(wǎng)上爬取數(shù)據(jù)可以組織成多種形式進(jìn)行存儲(chǔ)(比如XML、JSON等)。考慮到存儲(chǔ)組織的便捷性,本文所述實(shí)例將獲取數(shù)據(jù)組織成類似POI(Point of Interest,每個(gè)POI通常都包含4方面最基本的信息:名稱、類別、經(jīng)度、緯度)結(jié)構(gòu)的點(diǎn)對(duì)象存儲(chǔ)到數(shù)據(jù)庫中。本試驗(yàn)數(shù)據(jù)來源主要從“安居客”網(wǎng)站上爬取,由于全國居民小區(qū)數(shù)量巨大,需要設(shè)計(jì)盡可能簡潔的字段名稱來節(jié)省存儲(chǔ)空間。根據(jù)需求,地理對(duì)象存儲(chǔ)字段及存儲(chǔ)結(jié)構(gòu)如表1所示。
表1 數(shù)據(jù)庫設(shè)計(jì)表
算法實(shí)現(xiàn)過程分為后端數(shù)據(jù)服務(wù)和前端熱圖呈現(xiàn)兩個(gè)部分。后端數(shù)據(jù)服務(wù)主要是從數(shù)據(jù)庫中讀取全國小區(qū)數(shù)據(jù),并且按照當(dāng)前分辨率劃分格網(wǎng),進(jìn)行聚類計(jì)算,將小區(qū)數(shù)據(jù)轉(zhuǎn)化成格網(wǎng)作為前端熱度計(jì)算的基本單元。前端熱圖計(jì)算呈現(xiàn)將后端提供的統(tǒng)計(jì)格網(wǎng)作為一個(gè)地理對(duì)象映射到顯示區(qū)域內(nèi),并且在映射過程中按照對(duì)象特征值的大小計(jì)算影響力繪制到顯示區(qū)域內(nèi),生成灰度圖。然后按照提前定義的調(diào)色板將灰度圖與調(diào)色板疊加,生成色彩變化鮮明的熱圖。該部分為熱度分析計(jì)算的核心,關(guān)鍵代碼如下:
圖2為全國居民小區(qū)價(jià)格熱度分析圖,由圖可以看出目前該系統(tǒng)共統(tǒng)計(jì)全國小區(qū)數(shù)量110 423個(gè),全國房價(jià)較高地區(qū)集中在北京、上海、廣州、深圳、天津、南京、成都等一線城市。圖3為北京市房產(chǎn)價(jià)格熱度分析圖,圖中北京市一、二、三、四環(huán)內(nèi)呈高亮顏色切分布較均勻,表示該地區(qū)房價(jià)最高且價(jià)格相差不多;五環(huán)內(nèi)顏色稍淺且分布不均,說明四環(huán)外五環(huán)內(nèi)房價(jià)稍低且小區(qū)數(shù)量較四環(huán)內(nèi)相對(duì)少些;此外房山區(qū)和通州地區(qū)有兩個(gè)高亮點(diǎn)。上述情況與現(xiàn)實(shí)中房價(jià)狀況完全相符,可見該種分析方法是合理的。
圖2 全國居民小區(qū)價(jià)格熱度分析圖
本文所述的空間熱度分析方法方便簡單,能夠直觀地反映地理對(duì)象某一特征的空間分布態(tài)勢(shì),解決了空間數(shù)據(jù)存儲(chǔ)、管理、檢索,熱圖計(jì)算、快速生成等問題,并且通過具體實(shí)例證明了該方法的可靠性??臻g熱度分析能夠能幫助用戶更好地認(rèn)知空間環(huán)境,為人們工作生活中重大決策提供依據(jù)。
圖3 北京市居民小區(qū)價(jià)格熱度分析圖
[1]曾毅,高斌,李銘明,等.一種HeatMap技術(shù)可視化GIS三維數(shù)據(jù)方法[J].電腦編程技巧與維護(hù),2011(22):120-122.
[2]WANG G.C#熱圖生成(一)——with.NET 2.0[EB/OL].2010-05-13.http:∥www.cnblogs.com/Gildor/archive/2010/05/13/1734649.html.
[3]WANG G.C#熱圖生成(二)——with Silverlight[EB/OL].2010-05-18.http:∥www.cnblogs.com/Gildor/archive/2010/05/18/1738225.html.
[4]WANG G.C#熱圖生成(三)——with Silverlight改進(jìn)熱圖顯示[EB/OL].2010-05-21.http:∥archive.cnblogs.com/a/1740987/
[5]火丁筆記.淺談 Heatmap[EB/OL].2011-01-04.http:∥huoding.com/2011/01/04/39.
[6]宣國富,徐建剛,趙靜.基于ESDA的城市社會(huì)空間研究——以上海市中心城區(qū)為例[J].地理科學(xué),2010,30(1):22-28.
[7]徐顧偉,汪浩,秦永健,等.基于移動(dòng)社交網(wǎng)絡(luò)的空間資源利用分析系統(tǒng)[J].計(jì)算機(jī)應(yīng)用研究,2011,8(28):2958-2960.
[8]劉啟亮,鄧敏,石巖,等.一種基于多約束的空間聚類方法[J],測(cè)繪學(xué)報(bào),2011,40(4):509-516.