資料結構在GIS中的應用

2021-05-12 07:37:48 字數 2171 閱讀 7006

計算機是一門研究用計算機進行資訊表示和處理的科學。這裡面涉及到兩個問題:資訊表示、資訊處理,資訊表示直接關係到資訊處理的演算法與效率。

資訊(資料)之間往往是有重要的結構關係,資料結構就是對資料表示以及其上操作或功能的封裝,分邏輯結構和儲存結構兩個層面。

邏輯結構定義了資料之間的邏輯結構關係。資料元素相互之間的關係稱為結構,有四類基本結構:集合、線性結構、樹形結構、圖狀結構(網狀結構)。

樹形結構和圖形結構全稱為非線性結構。集合結構中的資料元素除了同屬於一種型別外,別無其它關係。線性結構中元素之間存在一對一關係,樹形結構中元素之間存在一對多關係,圖形結構中元素之間存在多對多關係。

在圖形結構中每個結點的前驅結點數和後續結點數可以任意多個。

儲存結構定義了資料實際在計算機中儲存結構關係,是某種邏輯結構在計算機上的具體實現,分順序儲存結構和鏈式儲存結構。順序儲存方法:它是把邏輯上相鄰的結點儲存在物理位置相鄰的儲存單元裡,結點間的邏輯關係由儲存單元的鄰接關係來體現,由此得到的儲存表示稱為順序儲存結構。

順序儲存結構是一種最基本的儲存表示方法,通常借助於程式語言中的陣列來實現。鏈結儲存方法:它不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關係是由附加的指標字段表示的。

由此得到的儲存表示稱為鏈式儲存結構,鏈式儲存結構通常借助於程式語言中的指標型別來實現。索引儲存方法:除建立儲存結點資訊外,還建立附加的索引表來標識結點的位址。

雜湊儲存方法:就是根據結點的關鍵字直接計算出該結點的儲存位址。

在gis開發實現中,空間索引、空間資料儲存、地圖管理、地圖符號化及渲染、空間分析等都會用到很多的資料結構,下面作一些簡要介紹,僅供參考,讀者可以有不同的實現,效率也會有一些差異。

陣列或鍊錶,在gis中應用最為廣泛,幾乎到處可見其身影。比如,線或多邊形就是point型別的陣列,讀shapefile檔案時,檔案已經記錄下該要素包含的點數,陣列的長度就被確定了,如果新增節點,最好採用封裝好的動態陣列或鍊錶來儲存;網格索引,用二維陣列表示,每個陣列元素記錄下該網格範圍所對應的資料儲存位址,方便空間資料的檢索;圖層管理,一張地圖是由若干個圖層疊加而成,用陣列或鍊錶來儲存這些圖層資訊,圖層順序調的整轉化為陣列或鍊錶的刪除和插入。

堆疊和佇列,也屬於線性結構,只是比陣列和鍊錶多了一些限制,堆疊是先進後出,佇列是先進先出。比如,線性四叉樹索引,用中序遍歷的方法降四叉樹線性化,其中樹的中序遍歷,非遞迴演算法就需要用到堆疊;***軌跡跟蹤,隨著***點的增加,軌跡會越來越長,在實時跟蹤過程中,可能只需要保留當前最近一段時間的點,更早之前的點被儲存到資料庫中,不再繪製,所以,採用迴圈佇列來儲存***當前一些點,利用了***時間順序先進先出的特點,同時能迴圈利用佇列;客戶端**瓦片快取池,也可以採用迴圈佇列,當前可視範圍內獲取到的新瓦片插入到佇列中,當佇列滿的時候,淘汰最早存放在佇列中的瓦片,同時保持佇列快取池的容量。

優先佇列,是不同於先進先出佇列的另一種佇列,每次從佇列中取出的是具有最高優先權的元素,二叉堆就是優先佇列,分最大堆和最小堆,它能快速地從乙個集合中找出最大(小)的元素。最優路徑,演算法中經常執行一步就是從後繼節點中找出最優的節點,採用的就是最小堆,它能迅速地找出到當前節點權值最小的節點。

樹,是一種遞迴定義的資料結構,一對多的關係,樹是沒有迴路的連通圖。四叉樹索引,就是典型的樹結構,按mbr(minimum bounding rectangle 最小外包矩形)相交條件從樹根一步步往下查詢,篩選出要素子集;ogc中xml解析,xml(gml)結構本身也是樹狀結構;等高線,巢狀關係的表達,是樹結構;屬性資料詞典庫,採用trie資料結構,多叉樹的形式,建立屬性詞典庫,通過字串的匹配實現屬性查詢。

圖,是一種資料元素間為多對多關係的資料結構,通常採用鄰接矩陣或鄰接表的方式來儲存。道路網或管網的拓撲構建,道路網或管網屬於網狀結構,用圖來描述節點與弧段之間的拓撲關係,便於最優路徑、最大流最小割通路、爆管、旅行商等網路分析。

雜湊,設計hash函式代入key算出位址,儲存value值,雜湊查詢效率高,但可能存在衝突,對記憶體空間占用相對較大一點。道路網或管網構建,以節點的node_id為key,以後繼節點的集合為value;gml引擎,以圖層編號為key,屬於該圖層的要素集合為value;線標註,線被裁減後,通過統一的key來拼接,以不同裁減路段集合為value。

以上簡要介紹了gis常用資料結構,但應用遠遠不止這些。資料結構+演算法=程式,在資料表示和處理上,具體採用哪種邏輯結構,需要分析資料元素之間的邏輯關係,而確定了邏輯結構,還要考慮採用什麼儲存結構來實現,也是需要根據實際情況來分析的,資料結構直接關係到演算法的具體實現及效率,在gis開發實現中應用非常廣泛。

GIS資料結構專業名詞

8.柵格資料結構 基於柵格模型的資料結構簡稱為柵格資料結構,指將空間分割成有規則的網格,在各個網格上給出相應的屬性值來表示地理實體的一種資料組織形式。黃杏元 馬勁松 湯勤,地理資訊系統概論 9.空間索引 是指依據空間物件的位置和形狀或空間物件之間的某種空間關係按一定的順序排列的一種資料結構,其中包含...

第五章GIS的資料表達與資料結構

1 地理現象及其認識的抽象過程 無論現實世界如何複雜,人們在對其認識和抽象表達時,總是把它們分成幾種基本的幾何型別,並賦予它們不同的屬性和編碼。然後在根據一定的資料結構和資料庫模型對其進行表達 組織和儲存。2 幾何型別與地理現象的對應關係 呈點狀分布的地理現象 點狀幾何型別 呈線狀分布的地理現象 線...

試論C 語言在資料結構中應用

摘要 資料結構是面向過程程式設計中的乙個重要概念,即使在物件導向程式設計中也具有重要的地位,因為面對繁多而複雜的待處理資料,如果沒有資料結構將資料組織起來,那麼程式的編寫將變得極為艱難。在整個程式編寫的過程中,資料結構為程式設計中的法,而使用的語言就是程式設計中的術。在該文中將試析c 語言如何在資料...