開源類庫GDAL與ArcGIS的關係

      ArcGIS 10已經出來了,豐富的GIS工具和改進的界面交互是10的新特點。在這些新特點中,也包括了新的數據格式的支持。這裏的格式分爲兩部分,柵格數據格式和矢量數據格式。

      對於ESRI的矢量庫,可以說有目前業界支持功能最強大的ArcGIS桌面平臺支持。無論從矢量模型的抽象,到數據格式的規範定義,ESRI都是走在業界最前面的。在FME擴展的支持下,幾乎支持了目前所有的矢量數據格式,將近有100多種矢量格式能夠被支持。

     柵格數據的處理ESRI支持的不如主流的遙感軟件,但是現在大有趕超之勢,柵格數據中的代數運算等功據,以及有限的一些分類工具使得ArcGIS慢慢呈現出對柵格數據支持的完善。10中,Imageserver已經成爲一個單獨的擴展模塊了而不是單獨的產品了,整個功能也和ArcGIS有了更好的緊密聯繫。

     說了這麼多,那和GDAL開源有什麼關係。我想說大有關係,ArcGIS 10新功能中提及的支持更多的柵格數據格式,本質上是因爲GDAL柵格庫新版本支持了更多的數據格式。ArcGIS 10其實在底層對柵格數據的處理都是採用的GDAL類庫。

     GDAL類有什麼特點呢?爲什麼ESRI都用它?

     我覺得模型抽象得好是這個開源類庫成功的關鍵。無論你是柵格還是矢量,好的模式是成功的關鍵。如果看過設計模式,就會理解相同過程的操作方式可以提煉出來。在柵格中所有的柵格數據操作也都有固定的操作方式(其實這取決於結構),因爲柵格定義上本質的操作是對Cell做修改,細節上稍有不同,有的是1位,有的是多位, 有的是一個波段所有信息都存完,然後接着存第二個波段,有的是存完一行波段信息接着另一行波段信息,然後第一波段的第二行接着第二個波段第二行存儲,所有這些都是細節,可以被掩蓋。表象上我們對柵格數據的理解可以很簡單,一個波段一層數據,一層數據裏面只有每個cell。每種GDAL柵格數據格式都按這種方式操作處理,對於用戶他不需要理解細節,而只需要知道如和得到波段(層數據),對每層數據的每個cell做操作,Cell對應的值,可以是現實中的顏色,高程等等。而對矢量的抽象更是如此,Arcgis中矢量的模型描述設計的是層(Layer),包含多個層的數據集(dataset),我們在GDAL的矢量庫中看到的也是這些概念,用戶最細粒度的僅需知道Feature(要素),至於Feature下面的實際數據如何存儲的,用戶不需要關係。有了這些概念,所有不同的數據格式可以被一致的對待。這就是模型抽象的力量,邏輯上的概念劃分(設計模式中,稱爲原語操作)使得對象所據有的一般意義的本質特性被抽象出來,相同的操作可以處理所有的這類不同對象。 

     理解GDAL的模型抽象可以幹什麼?

     我爲什麼研究它,是因爲我要擴展它,擴展的本質就是把自己定義的格式按照它的模型規範來定義。

     熟悉GDAL類庫可以幹什麼?

    可以自己寫一個GIS系統,  而且很強大。因爲GIS系統的本質是對數據的處理,GDAL就是內核。我們做的工作僅限於如何讀寫數據,如何顯示數據。這讓個人寫一個GIS處理平臺成爲可能。

 

 

發佈了77 篇原創文章 · 獲贊 77 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章