柵格數據
出自 MBA智库百科(https://wiki.mbalib.com/)
柵格數據(Raster Data)
目錄 |
柵格數據是指按網格單元的行與列排列、具有不同灰度或顏色的陣列數據。
每一個單元(象素)的位置由它的行列號定義,所表示的實體位置隱含在柵格行列位置中,數據組織中的每個數據表示地物或現象的非幾何屬性或指向其屬性的指針。,一個優秀的壓縮數據編碼方案是:在最大限度減少電腦運算時間的基點上進行最大幅度的壓縮。
柵格結構是大小相等分佈均勻、緊密相連的像元(網格單元)陣列來表示空間地物或現象分佈的數據組織。是最簡單、最直觀的空間數據結構,它將地球錶面劃分為大小、均勻、緊密相鄰的網格陣列。每一個單元(象素)的位置由它的行列號定義,所表示的實體位置隱含在柵格行列位置中,數據組織中的每個數據表示地物或現象的非幾何屬性或指向其屬性的指針。對於柵格結構:點實體由一個柵格像元來表示;線實體由一定方向上連接成串的相鄰柵格像元表示;面實體(區域)由具有相同屬性的相鄰柵格像元的塊集合來表示。柵格結構的特點是數據直接記錄屬性的指針或屬性本身,而其所在位置則根據行列號轉換成相應的坐標給出。也就是說,定位是根據數據在數據集合中的位置得到的。
柵格結構是用有限的網格逼近某個圖形,因此用柵格數據表示的地表是不連續的,是近似離散的數據。柵格單元的大小決定了在一個象元所覆蓋的面積範圍內地理數據的精度 ,網格單元越細柵格數據越精確,但如果太細則數據量太大。尤其按某種規則在象元內提取的值,如對長度、面積等的度量,主成分值、均值的求算等,其精度由象元的大小直接決定。由於柵格結構中每個代碼明確地代表了實體的屬性或屬性值,點實體在柵格結構中表示為一個象元,線實體表示為具有方向性的若幹連續相鄰象元的集合,面實體由聚集在一起的相鄰象元表示,這就決定了網格行列陣列易為電腦存儲、操作、顯示與維護,因此,這種 結構易於實現,演算法簡單,易於擴充、修改,直觀性強,特別是容易與遙感影像的聯合處理。
在柵格文件中,每個柵格只能賦予一個唯一的屬性值,所以屬性個數的總數是柵格文件的行數乘以列數的積,而為了保證精度,柵格單元分得一般都很小,這樣需要存儲的數據量就相當大了。通常一個柵格文件的柵格單元數以萬計。但許多柵格單元與相鄰的柵格單元都具有相同的值,因此使用了各式各樣的數據編碼技術與壓縮編碼技術。主要的編碼技術簡介如下:
(一)直接柵格編碼
直接柵格編碼是將柵格數據看作一個數據短陣,逐行或逐列逐個記錄代碼。可每行從左到右逐個記錄,也可奇數行從左到右,偶數行從右到左記錄,為特定目的也可採用其它特殊順序。通常稱這種編碼的圖像文件為柵格文件,這種網格文件直觀性強,但無法採用任何種壓縮編碼方法。如為:4,4,4,4,7,7,7,7;4,4,4,4,4,7,7,7;等等可用程式設計語言按順序文件或隨機文件記錄這些數據。
(二)鏈式編碼
鏈式編碼又稱弗里曼鏈碼或世界鏈碼。它由某一原始點和一系列在基本方向上數字確定的單位矢量鏈。基本方向有東、東南、南、西南、西、西北、北、東北等8個,每個後繼點位於其前繼點可能的8個基本方位之一。8個基本方向的代碼可分別用0,1,2,3,4,5,6,7表示,既可按順時針也可按逆時針表示。柵格結構按逆時針編碼上圖(2)可記錄為:1,3,7,7,7,6,6,5,4。其中前兩個數字1與3表示線狀物起點的坐標,即在第一行第三列,從第三個數字起表示單位矢量的前進方向。
鏈式編碼有效地壓縮了柵格數據,尤其對多邊形的表示最為顯著,鏈式編碼還有一定的運算能力,對計算長度、面積或轉折方向的凸凹度更為方便。比較適於存儲圖形數據。但對邊界做合併和插入等修改編輯工作很難實施,而且對局部修改要改變整體結構,效率較低。
(三)游程編碼
游程編碼是柵格數據壓縮的重要且比較簡單的編碼方法。它的基本思路是:對於一幅柵格圖像,常有行或列方向相鄰的若幹點具有相同的屬性代碼,因而可採用某種方法壓縮重覆的記錄內容。方法之一是在柵格數據陣列的各行或列象元的特征數據的代碼發生變化時,逐個記錄該代碼及相同代碼重覆的個數,從而可在二維平面內實現數據的大量壓縮。另一種編碼方案是在逐行逐列記錄屬性代碼時,僅記錄下發生變化的位置和相應的代碼。游程編碼的編碼和解碼的演算法都比較簡單,占用的電腦資源少,游程編碼還易於檢索、疊加、合併等操作,在柵格單元分得更細時,數據的相關性越強,壓縮效率更高,數據量並沒有明顯增加。因此,該編碼適合微型電腦等中央處理器處理速度慢,存儲容量小的設備進行圖像處理。
(四)塊式編碼
塊式編碼是游程編碼擴展到二維空間的情況,游程編碼是在一維狀態記錄柵格單元的位置和屬性,如果採用正方形區域作為記錄單元,每個記錄單元包括相鄰的若幹柵格,數據結構由記錄單元中左上角的柵格單元的行、列號(初始位置)和記錄單元的邊長(半徑)與記錄單元的屬性代碼三部分組成,這便是塊式編碼。因此可以說,游程編碼是塊式編碼的特殊情況,塊式編碼是游程編碼的一般形式。
塊式編碼的運算能力弱,必要時其編碼的柵格數據須通過解碼轉換成柵格矩陣編碼的數據形式才能順利進行。塊式編碼在圖像合併、插入、面積計算等功能方面較強。
(五)四叉樹數據結構
四叉樹編碼又名四元樹編碼,可以通俗理解為一個具有四分枝結構的樹,它具有柵格數據二維空間分佈的特征,這是一種更為有效的編碼方法。四叉樹編碼將整個圖形區域按照四個象限遞歸分割成2n×2n象元陣列,形成過程是:將一個2×2圖像分解成大小相等的四部分,每一部分又分解成大小相等的四部分,就這樣一直分解下去,一直分解到正方形的大小正好與象元的大小相等為止,即逐步分解為包含單一類型的方形區域(均值塊),最小的方形區域為一個柵格單元。
(七)各種編碼的比較分析
比較以上各種編碼,可得出如下主要結論:
⑴ 直接柵格編碼直觀簡單,但數據出現大量冗餘;
⑵ 鏈式編碼對邊界的運算方便,壓縮效果好,但區域運算較困難;
⑶ 游程編碼即較大幅度地保留了原始柵格結構,又有較高的壓縮效率,而且編碼解碼也較容易,但僅局限在一維空間上處理數據;
⑷ 塊式編碼在圖像合併、插入、面積計算等功能方面較強,當所表示的地理數據相關性強時,壓縮效率相當高;但地理數據相關性差時,塊式編碼的效果較差,而且塊式編碼的運算能力較弱;
⑸ 四叉樹編碼運算速度快,存儲空間小,解析度可變,壓縮效率高,但其轉換具有不確定性,難以形成統一演算法。
- (一)柵格數據的獲取途徑。
柵格數據的獲取主要由以下幾個途徑:
⑴ 柵格法:在待輸入的圖形上均勻劃分柵格單元,逐個柵格地決定其屬性代碼,最後形成柵格數字地圖文件。這是人工編碼,當數據量太大時,該法費工費時,工作量相當大。
⑵轉換法:用手扶跟蹤數字化或自動跟蹤數字化得到矢量結構數據,再轉換為柵格結構。由矢量數據向柵格數據轉換是理想的方法。
⑶掃描數字化:逐點掃描待輸入的專題地圖,對掃描數據重新採樣與再編碼,從而得到柵格數據文件。
⑷ 分類影像輸入:將經過分類解譯的遙感影像數據直接或重新採樣後輸入系統,這是高效獲取數據的方法。
- (二)柵格像元代碼的確定原則
當依據一定的要求給定單位網格後,而網格中有多種地物類型(或說屬性)時,則根據需要採取如下方案之一決定柵格單元的代碼。
⑴ 中心點法:即用處於柵格中心處的地物類型(屬性或量值或屬性記錄指針)或現象特征決定該柵格單元的代碼。對於具有連續分佈特征的地理要素,如降水分佈、人口密度等問題,中心法是被首要選用的。
⑵ 面積占優法:以占矩形面積最大的地物或現象特性的重要性決定柵格單元的代碼,此法常見於分類較細,地物類別斑塊較小的情況。
⑶ 長度占優法:當覆蓋的柵格過中心位置時,橫線占據該格中的大部分長度的屬性值定為該柵格單元的代碼。
⑷ 重要性法:根據柵格內不同地物的重要性,選取最重要的地物類型決定相應的柵格單元代碼。此法常見於具有特殊意義而面積較小且不在柵格中心的地理要素。尤其是點、線狀地理要素,如城鎮、交通樞紐、交通線、河流水系等。
以上4點正確使用,則能較好地保持地表的真實性,儘可能地保持原圖或原始數據的精度問題。當然,縮小單個柵格單元面積,使每個柵格單元代表更為精細的地面矩形單元,減少混合單元、混合類型與混合面積,可大大提高量算精度,保持真實形態及更細小的地物類型。但增加柵格個數會使數據多,冗餘嚴重。為解決此問題,產生了一系列各具特色的柵格數據壓縮編碼方法。
- 數據結構更加簡單,即由像元組成矩陣結構,其中的像元值表示坐標,有時與屬性表相關聯。
- 格式更加強大,可進行高級的空間和統計分析。
- 可以表示連續錶面以及執行錶面分析。
- 點、線、面和錶面都可同樣存儲。
- 對複雜數據集也可執行快速疊置。
- 要將數據存儲為柵格還需要考慮其他因素,有時選擇基於矢量的存儲方法反而會更合適。例如:由於柵格數據集的像元尺寸具有局限性,所以可能會帶來空間誤差。柵格數據集可能會非常大。雖然解析度會隨著柵格像元大小的減小而提高,但這會占用更多的磁碟空間,而且會拖慢處理速度。對於給定區域,將柵格像元大小更改為現有大小的一半時,所需的存儲空間會增大為原來的四倍,具體情況取決於所使用的數據類型和存儲技術。將數據重建到固定間距的柵格像元邊界時也會損失一定的精度。


