摘 要:地理信息系統(tǒng)中空間數(shù)據(jù)結(jié)構(gòu)主要有矢量數(shù)據(jù)結(jié)構(gòu)和柵格數(shù)據(jù)結(jié)構(gòu),兩者之間的轉(zhuǎn)換是GIS的關(guān)鍵技術(shù)之一。在GIS的具體應(yīng)用中,不同的分析處理所要求的數(shù)據(jù)格式也不一樣。基于此背景,本文提出了對矢量線要素柵格化的兩種常用方法:八方向柵格化和全路徑柵格化,并通過java編程實現(xiàn)了兩者之間的對比。
關(guān)鍵詞:GIS 柵格化 八方向柵格化 全路徑柵格化
中圖分類號:G71 文獻標識碼:A 文章編號:1672-3791(2013)04(a)-0066-01
GIS中空間數(shù)據(jù)結(jié)構(gòu)主要有矢量數(shù)據(jù)結(jié)構(gòu)和柵格數(shù)據(jù)結(jié)構(gòu)兩種,兩者之間的相互轉(zhuǎn)換是GIS的關(guān)鍵技術(shù)之一。矢量數(shù)據(jù)結(jié)構(gòu)是把所有的地理空間實體都用X、Y坐標進行表示的一種數(shù)據(jù)結(jié)構(gòu),而柵格數(shù)據(jù)結(jié)構(gòu)則是以規(guī)則的格網(wǎng)陣列來表示地理空間實體或有連續(xù)分布規(guī)律現(xiàn)象的數(shù)據(jù)組織,兩者都可以用來表達地理空間實體的點、線、面三種基本類型。在GIS的具體應(yīng)用中都有其各自的優(yōu)缺點,如矢量數(shù)據(jù)能表達的實體位置精度更高、輸出的圖形更精確美觀、數(shù)據(jù)冗余度小等,而柵格數(shù)據(jù)結(jié)構(gòu)簡單,相比矢量數(shù)據(jù)更適合于空間分析中的疊置分析和某些自然現(xiàn)象的空間分布規(guī)律的表達。所以為了在GIS中能合理利用這兩種數(shù)據(jù)結(jié)構(gòu),以便進一步對空間數(shù)據(jù)在不同的應(yīng)用中進行分析處理,常常需要實現(xiàn)矢量數(shù)據(jù)結(jié)構(gòu)與柵格數(shù)據(jù)結(jié)構(gòu)間的相互轉(zhuǎn)換轉(zhuǎn)換。目前,矢量數(shù)據(jù)與柵格數(shù)據(jù)之間的轉(zhuǎn)換已經(jīng)發(fā)展了許多高效的算法,如對矢量線要素的有八方向柵格化、對矢量面要素的內(nèi)部點擴散算法等。本文主要是提出了矢量線要素柵格化的兩種常用算法:八方向柵格化和全路徑柵格化,在簡要介紹這兩種算法的基礎(chǔ)上,通過java編程試驗的方法,對利用這兩種算法實現(xiàn)對矢量線要素柵格化進行了實驗測試和比較。
1 八方向柵格化及其特點
所謂八方向柵格化,是指在根據(jù)矢量線的傾角情況,在每行或每列上,只有一個像元被”涂黑”(賦予不同背景色的灰度值)。設(shè)有一條線段起始坐標分別為(x1,y1),(x2,y2),其算法實現(xiàn)主要過程如下。
第一步:計算出線段端點(x1,y1),(x2,y2)所在的行、列號(I1,J1)及(I2,J2),并將它們”涂黑”。
第二步:計算出線段兩個端點所在位置的行差與列差為rowCut、colCut。如果rowCut-colCut>=0,則逐行求出本行中心線與過這兩個端點的交點,并將它們”涂黑”。
y=y中心線
x=(y-y1)b+x1,(其中)
如果列rowCut-colCut<0,則逐列求出本列中心線與過這兩個端點的直線的交點,并將它們”涂黑”。
x=x中心線
y=(x-x1)b’+y1,(其中)
八方向柵格化的特點:在保持八方向連通的前提下,柵格影像看起來最細,不同線劃間最不易”粘連”,且容易實現(xiàn)。
2 全路徑柵格化及其特點
全路徑柵格化是用分帶法進行矢量向柵格的轉(zhuǎn)換,即按行計算起始列號和終止列號(或按列計算起始行號和終止行號)的方法。設(shè)有一條線段起始坐標分別為(x1,y1),(x2,y2),其算法實現(xiàn)主要過程如下:
第一步:計算出線段兩個端點所在位置的行差與列差為rowCut、colCut。(以下以colCut-rowCut>=0為例進行計算)
第二步,計算線段兩端點傾角a的正切
第三步,計算起始列號ja。
第四步,計算終止列號je。
第五步,將第i行從ja列開始到j(luò)e列為止的中間所有柵格”涂黑”。
第六步,遍歷線段所穿過的所有行,如果不是終止行,則把je賦給ja;行號i加1,并轉(zhuǎn)第四步,否則結(jié)束。
全路徑柵格化的特點:柵格化后的線要素較八方向柵格化飽滿,適合于要向任何方向進行探測的柵格影像或想知道矢量覆蓋的范圍,計算較復(fù)雜。
3 兩種方法對矢量線要素柵格化的實現(xiàn)與對比
從前面的分析可以看出,不管采取八方向柵格化還是全路徑柵格化,都可以實現(xiàn)對矢量線要素的柵格化。為了能使測試結(jié)果有對比性,本文主要是利用了java編程語言創(chuàng)建了八方向柵格化和全路徑柵格化的程序,并在同一個窗體上對這兩種算法對矢量線要素柵格化進行了顯示。如圖1,通過線段的平移,以保證兩線段的性質(zhì)都是一樣的,該程序的實現(xiàn)是以當(dāng)行差大于列差進行測試的。
4 結(jié)語
通過上述編程試驗測試表明,八方向柵格化和全路徑柵格化方法都能實現(xiàn)對線要素柵格化的目的。但八方柵格化方法柵格化后的線要素比較精細,數(shù)據(jù)量較小;而全路徑柵格化法柵格化后的線要素比較飽滿,但計算較八方向柵格化法復(fù)雜。
參考文獻
[1]蘭小機,劉德兒.地理信息系統(tǒng)(Version 2)[M].江西理工大學(xué).
[2]張宏,溫永寧,劉愛利,等.地理信息系統(tǒng)算法基礎(chǔ)[M].科學(xué)出版社,2006,6.
[3]李璐.一種矢量數(shù)據(jù)柵格化的方法及其應(yīng)用[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2009,10.
[4]白燕,廖順寶.矢量數(shù)據(jù)屬性信息無損柵格化的實現(xiàn)方法[J].地理信息科學(xué)學(xué)報,2010,6.
[5]王建,杜道生.矢量數(shù)據(jù)向柵格數(shù)據(jù)轉(zhuǎn)換的一種改進算法[J].地理與地理信息科學(xué),2004,20(1):31-34.