GDAL綜合整理--4:GDAL目錄結構

在網上看到這篇文章寫得非常全面,而且是中文的,就轉過來了,學習一下
其中有部分內容是重複的,不過不影響,非常好的資料

主要轉自http://blog.csdn.net/liminlu0314?viewmode=contents


以下摘自:

http://blog.csdn.net/liminlu0314/article/details/6933772

首先對於GDAL的目錄結構進行一個簡單的介紹。GDAL源代碼下載地址:http://trac.osgeo.org/gdal/wiki/DownloadSource,或者安裝svn從源代碼服務器下載,svn地址是:http://svn.osgeo.org/gdal/trunk

如果是使用下載的壓縮包,其目錄結構如下圖:


圖1 GDAL源碼壓縮包文件目錄結構

 

  如果使用svn下載的源代碼,目錄結構如下:

 

 圖2 GDAL SVN源碼文件目錄結構

從上面兩張圖中可以看出,GDAL的目錄結構不管是用什麼方式獲取的源代碼,它的目錄結構都是一樣的,下面就針對目錄結構中的每個文件夾和文件做一個簡單的說明。(按照字母順序來進行說明)

1、alg文件夾:alg文件夾中存放的是GDAL庫中提供的一些算法的源代碼,這些算法包括但不限於:DEM生成等高線算法;圖像糾正算法(幾何糾正,TPS糾正,正射RPC糾正);柵格矢量化算法;矢量柵格化算法;格網計算算法;PCT和RGB互轉算法;分類圖的小碎斑塊去除算法等。

2、apps文件夾:apps文件夾中存放的是GDAL庫中提供的一些命令行工具集的源代碼,這些工具集的介紹可以參考http://gdal.org/gdal_utilities.html,將來我會對這些工具做一個簡單的說明。其中有些工具非常的有用,比如gdalinfo,可以使用該工具來查看圖像的元數據信息等。

3、bridge文件夾:bridge文件夾中存放的是用來連接GDAL抽象類的定義以及GDAL自己的結構體定義和實現的源代碼。具體到後面涉及到GDAL的實現原理時會對該文件夾作一個比較詳細的介紹。

4、data文件夾:data文件夾中存放的是GDAL庫中需要用到的一些“配置文件”(此處用配置文件可能不太準確),這些文件主要有ESRI的投影文件,ESPG的投影文件,PCI的投影和橢球體文件,autoCAD的頭文件,以及其他的一些文件。在GDAL庫中有很多時候會自動讀取該文件夾中的文件,一般是通過環境變量來查找該文件夾,環境變量的名字叫GDAL_DATA,值就是data文件夾的路徑,或者可以在你的程序中使用函數 CPLSetConfigOption("GDAL_DATA","C:\GDAL\data");來進行設置該文件夾的目錄,如果沒有設置GDAL會自動從環境變量中查找,如果還是沒有找到,那麼GDAL可能會提示錯誤,比如如果不設置GDAL_DATA,那麼在寫如atuocad的dxf格式的時候就提示創建不成功,後面遇到的話會再進行說明。

5、doc文件夾:doc文件夾存放的是用來生產GDAL幫助文檔的一些dox文件,dox文件是使用doxygen工具來進行生成的,後面會對doxygen工具作一個簡單的介紹和說明,以及在自己的工程中怎麼使用doxygen生成自己的程序的開發幫助文檔等。總之一句話,這個文件夾就是用來生成GDAL庫的幫助文檔的一些東西。後面會告訴大家如何生成一份GDAL的幫助文檔,當然你也可以把gdal.org整個網站抓下來,J

6、frmts文件夾:這個文件夾可以說是GDAL代碼中東西最多的一個文件夾了,每次更新GDAL的版本後都會發現這個文件夾中會多出幾個文件夾,同時GDAL也會中支持的文件格式中多出來幾個新的文件格式。沒錯,這個文件夾存放的就是GDAL針對每種不同的特定的圖像格式解析的源代碼,可以舉幾個簡單的例子,比如bmp文件夾就是解析BMP圖像的,hfa文件夾就是用來解析Erdas的img圖像格式,raw文件夾用來讀取ENVI的hdr文件,還有pcidsk文件夾就是讀取PCI的pix格式的等等。所以這個文件夾存放的是解析各個文件格式的源代碼。

7、gcore文件夾:通過名字大家也應該知道這個文件夾是做什麼的了,叫core的肯定都是很核心的東西了,這個文件夾就是GDAL的靈魂所在,主要存放的GDAL抽象類的數據集,波段,圖像讀寫接口等都在這個裏面實現的。如果要知道GDAL的抽象類是怎麼對圖像格式進行抽象的,可以看看這個裏面的代碼。

8、html文件夾:html文件夾如果使用壓縮包的話,裏面應該是空的,這個文件夾主要是用來存放GDAL的生成的幫助文檔的地方,主要是使用前面介紹的doc文件夾中的dox腳本,使用doxygen工具生成的GDAL幫助文檔會出現在這個文件夾中。後面會和doc文件夾一起進行一個詳細介紹。

9、m4文件夾:m4文件夾存放的有好幾個已m4爲後綴名的文件,m4文件叫MacroProcessor Library,m4文件是編譯基礎中最核心的文件,這個文件主要是用autoconf來產生configure配置文件,繼而自動生成Makefile文件。這個文件夾中Windows平臺下貌似沒什麼作用,可能是我還不知道吧,在此略過。

10、man文件夾:man文件夾貌似是用來生成linux或者其他平臺下的幫助文件,估計是可以使用linux下的man幫助吧。Windows平臺下貌似也沒什麼用,略過。

11、ogr文件夾:用過GDAL的肯定知道ogr庫吧,在很久很久以前,GDAL和OGR是兩個庫,GDAL專門負責讀取柵格數據,OGR庫負責讀取矢量數據,然後可能是因爲兩個庫分開有些不方便,比如GDAL的算法庫中經常會用到矢量數據的讀取,或者還有別的原因吧,現在將這兩個庫整合在了一起,目前OGR庫就是GDAL庫的一個子集。其實OGR庫還是可以單獨編譯出來的。Ogr文件夾就是存放OGR庫源代碼的文件夾。這個文件夾裏面也是有很多東西的,後面再詳細進行介紹。

12、port文件夾:port文件夾中存放的是port庫的東西,port庫對於GDAL庫來說是一個底層的支持庫,port庫中定義了一些字符串的操作,文件處理,網頁請求,數據庫連接,哈希表,字符加密文件壓縮等基礎的函數。比如GDAL中所有的導出函數符號CPL_DLL就是在這個port文件夾中定義的,還有frmts文件夾中,打開文件,打開數據庫,打開網絡路徑等都是用的port庫,以及字符串的處理等。

13、swig文件夾:swig文件夾主要是存放swig的腳本。Swig全稱叫SimplifiedWrapper and Interface Generator,網址是www.swig.org,          swig的作用就是可以將C/C++寫的庫封裝爲Python,C#,Java,Perl和 Ruby等其他語言的訪問接口。網上GDAL的C#版本就是使用swig來編譯出來實現的,很強大吧。後面有時間的話,會寫一篇關於swig編譯GDAL的文章。

14、vb6文件夾:這個文件夾中用來將GDAL編譯成一個VB6的模塊,對於裏面具體的文件說明,以及如何編譯參考文件夾中的readme.txt,由於我對VB6的使用,還是僅限於拖個按鈕,寫個單擊事件的基礎,對於模塊之間的調用,實在是不太懂,所在就不說明了。想用VB6使用GDAL的可以自己研究一下,應該也不是很難。

15、wince文件夾:顧名思義,這個文件夾中的東西就是用來編譯Windows CE平臺下的GDAL庫用的,具體編譯請參考其中的說明文檔。

文件夾介紹完了,下面對文件進行一個大概說明:

1、aclocal.m4:同上面的m4文件夾

2、autogen.sh:Linux平臺下的shell文件,用來調用autoconf來產生configure配置文件的。

3、COMMITERS:該文件中的內容是GDAL開發人員的信息,姓名,聯繫郵箱以及各自負責開發的模塊說明等。

4、config.guess,config.sub,configure,configure.in:這四個文件貌似都是linux平臺下的配置文件,中Windows下沒啥用,略過。

5、Doxyfile:Doxyfile就是前面doc文件夾中說明提到的doxygen的工程文件,用來生成幫助文檔用的,後面在介紹doxygen的使用是會對該文件進行一個說明。

6、GDALmake.opt.in:這個文件是linux平臺下的GDAL庫編譯配置文件,功能在後面的nmake.opt中介紹。

7、gdalnightlysvn.sh:Linux平臺下調用svn獲取GDAL源代碼的一個shell腳本。

8、GNUmakefile:GNU的make文件。

9、HOWTO-RELEASE:GDAL發佈版本的一些說明。

10、install-sh:GDAL的安裝shell腳本,Linux平臺下。

11、LICENSE.TXT:GDAL的許可說明文件。

12、ltmain.sh:libtool的shell腳本,Linux平臺下,Windows下貌似沒用到。

13makefile.vc:GDAL的編譯文件,用來將源代碼編譯成dll文件,後面會在GDAL編譯中作一個介紹。

14、makegdal_gen.bat:用來生成VS的工程文件的一個批處理文件,後面在GDAL編譯中會對該文件的使用方式做一個說明。

15、makegdal10.sln:文件夾中所有的sln文件都是VS的項目文件,文件名後的數字代表的是VS的版本號。

16、 makegdal10.vcxproj和makegdal71.vcproj:VS的工程文件,該文件可以由makegdal_gen.bat文件自動生成,後面詳細介紹。

17、mkbindist.sh,mkgdaldist.sh和mktestdist.sh:三個shell腳本文件,Windows下沒用,略過。

18、NEWS:GDAL的新增功能,以及修復的bug記錄等。

19、nmake.opt:GDAL編譯選項配置文件,在編譯GDAL中,可以指定GDAL綁定的其他庫等都在這個裏面進行設置。在後面的GDAL編譯中會詳細介紹說明。

20、nmake-wince.opt:編譯wince版本的編譯選項配置文件。

21、PROVENANCE.TXT:GDAL目錄說明文件,如果上面說明的不夠清楚,可以參考這個文件。

22、submake.bat:一個編譯的批處理文件,目前沒啥用。

23、svnkeywords.sh:又是svn的一個shell腳本。

24、 VERSION:GDAL版本信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章