2009年10月20日 星期二

GMT簡易安裝筆記

GMT(Generic Mapping Tools)是一套open source的軟體,用來繪製精細的、各式各樣的地理圖形或是xy,xyz軸的分佈圖;我想地球科學領域的同好幾乎都用過他。兩位主要的作者Paul WesselWalter H. F. Smith是超強的unix/C/地震學家,在筆者的心目中,那簡直就是神的境界!!!

儘管不是用java寫成的,但是作者還是非常貼心的提供各種平台的版本(Unix, Linux, Mac, OS/2以及Windows)供大家安裝。安裝的方法大致上有兩種:到GMT網頁上去下載安裝,或是利用Linux內建的套件管理程式安裝。本文主要針對Linux以及MacOS上安裝GMT所做的筆記。

一、至GMT首頁下載安裝

點選頁面上GMT的圖示連到首頁,並且點左側DOWNLOAD連結。我們用Automated install的安裝方式,首先請確定是否可以解bzip2:

which bzip2
如果有顯示,就表示可以繼續下一步;沒顯示的話,運氣不好,自己想想辦法吧@_@|||
其次,請確定你能夠正常的使用bash。不過bash是linux的default shell,debian的dash也是可以的。
第三,假設你要把GMT安裝到/opt/gmt裡,請確定你有/opt/gmt的讀寫權限。如果沒有也沒關係,用root去安裝他即可。
第四,請確定你的系統裡有gcc跟make:
For Debian users:
aptitude install gcc make
For OpenSuSE users:
zypper in gcc make
For Fedora/CentOS users:
yum install gcc make
For MacOSX users:
請放入Application的光碟片,把xcodes安裝起來,這樣就會有gcc跟make了。
最後,下載安裝的script檔,並且把他變成可執行:
wget -c ftp://ftp.soest.hawaii.edu/gmt/install_gmt chmod +x install_gmt
接著,請連結到INSTALL_FORM填寫一些表格。

A. Basic requirement:

  1. Select default units in GMT:
    我們習慣公制單位,因此選擇SI units (cm)。
  2. Select default PostScript output format for GMT:
    PS比EPS具有更多的頁面列印的彈性設定,因此我們放心的選擇PS。
  3. Select POSIX Advisory File Locking:
    選擇"YES. Use file locking"。
    我們如果想要把gmt的指令當成管線再傳給下一個gmt指令,最好將.gmtcommands這個檔案鎖定寫入。在舊的solaris(< 5.7)或是linux核心<2.4的機器上,存取NFS檔案時會有問題。不過我們的機器都遠比這來得新,所以不必考慮這個問題。

B. NetCDF Setup

  1. Select the appropriate netCDF library option:
    如果你不知道或不確定你有沒有netcdf的話,點選"Please get and install the latest netCDF 3.6.x"即可。

C. GMT Setup

  1. Select the FTP site nearest you:
    選擇Japan或是Australia都可以。(真希望以後有台灣的mirror,而且是在地球所裡面!)
  2. Select passive [Default] or active ftp transmission:
    你可能要了一下你的網路架構。通常主機架在防火牆內部,你必須要選擇passive的方式。如果不是,選擇active。
  3. Select the components you want (bzip2 sizes indicated):
    反正硬碟都夠大,全勾選吧!
  4. Select which triangulation algorithm to use:
    選擇Watson's algorithm。原因是Watson的演算法是GNU的,但是Shewchuk's algorithm卻不是GNU的。雖然不能如此自由的使用,但他還是免費的,如果你有需要,是需要自己編譯的。
  5. Select library build type:
    static跟shared的差別是,gmt要不要跟其他應用程式共用函式庫。如果共用的話,可以節省空間,不過可能會被愚蠢的系統管理員搞砸而無法正常使用;static是自己擁有自己的函式庫;缺點是佔用更多的硬碟空間,優點是不會被愚蠢的管理員惡搞而無法使用。
    要選擇哪一個都無所謂,自己決定吧!
  6. Select the C compiler you want to use:
    選擇gcc吧!除非你還有裝其他的C compiler!
  7. Select the make program you want to use:
    選擇make吧!除非你還有其他make工具。
  8. Select GMT final destination directories:
    除非你想要自訂每個目錄的位置,否則放置subdir的地方預設就會是你執行install_gmt的目錄。假設你想要在/opt/gmt裡執行install_gmt,那麼第一行就填入"/opt/gmt"吧!sundir就可以不用管他了。
  9. Select alternative GMT_SHAREDIR directory:
    shared directory會放置一些比較大型的檔案,除非你有硬碟空間上的考量,否則可以略過他!
  10. Alternative coastline directories:
    同樣的,如果你有硬碟空間上的考量,否則可以略過他!
  11. Select supplemental packages to install:
    您可以全部勾選!!
  12. Additional information for MEX (Matlab or Octave):
    octave是一套linux下的matlab的替代方案,他比起matlab僅稍稍遜色一些,不過由於沒有圖形介面且參考資料較少,其實懂得使用octave的人少之又少;
    假設您沒有在GMT下呼叫matlab或是octave的函數的需求,此處留空白或是填入位置都是沒有效果的。
  13. Complete the operation:
    恭喜你,填完表格了!你可以選擇裝完成後刪除所有下載下來的檔案,也可以執行測試的script看看gmt有沒有安裝成功!
點選"GET PARAMETERS",就可以得到我們剛剛所有選項的設定檔的頁面;請把他另存成一個檔案,假設叫做param.list;也假設你要安裝gmt的位置在/opt/GMT:
cd /opt/GMT
./install_gmt param.list
就讓這個script幫我把netcdf以及gmt自動安裝完成!結束之後,您應該會看到有一個類似這樣提示設定:
這樣,就輕鬆完成自訂安裝囉!

二、使用linux的套件管理程式安裝

使用各家linux所提供的套件管理程式來安裝GMT是最快樂不過的事情了!因為他又快又簡單!
For Debian/Ubuntu users:

aptitude install gmt gmt-examples gmt-tutorial-pdf gmt-tutorial gmt-doc-pdf gmt-doc-ps
不過,debian裡竟然沒有自動幫我們把GMT的環境變數給設定上去!我們只好手動設定!
GMTHOME="/usr/lib/gmt"
export PATH=$PATH:$GMTHOME/bin
往後,我們可以到/usr/share/doc/gmt/html/index.html來翻閱手冊以及文件。
For Fedora/CentOS users:
yum install gmt gmt-examples
For OpenSuSE users:
請加入science repos:
zypper install gmt gmt-examples
For MaxOS users:
如果你沒有fink或是沒有聽過fink,請到這裡選擇你的cpu架構並安裝他(假設你已經知道如何安裝fink了!)。安裝完畢後請更新fink套件管理的cache:
fink scanpackages && fink index
apt-get install gmt gmt-shlibs gmt-docs
你沒看錯,fink就是看上linux裡最強的套件管理系統:apt-get,所以他的操作模式就跟debian使用的經驗幾乎相同;透過他你也可以在mac輕易的安裝許多gnu的程式!

三、下載高解析度海岸線檔

如果你用的是第一個方法,也就是到GMT官方網站去安裝GMT的話,你應該就有高解析度的海岸線檔案了。請檢查/usr/share/gmt/coast(放置海岸線檔案的資料料夾),看看這些cdf檔是否有binned_border_h.cdf、binned_GSHHS_h.cdf、binned_river_h.cdf這幾個高解析度的檔案。如果沒有的話,我們就只好手動來新增:

wget -c ftp://ftp.iris.washington.edu/pub/gmt/GSHHS2.0.1_full.tar.bz2
wget -c ftp://ftp.iris.washington.edu/pub/gmt/GSHHS2.0.1_high.tar.bz2
tar jxvf GSHHS2.0.1_full.tar.bz2 -C /tmp
rsync -av /tmp/share/coast/ $GMTHOME/share/coast/
rm -r /tmp/share
tar jxvf GSHHS2.0.1_high.tar.bz2 -C /tmp
rsync -av /tmp/share/coast/ $GMTHOME/share/coast/
rm -r /tmp/share
這樣無論是用哪一種方法安裝GMT,都可以畫出美麗的圖啦!剩下就憑自己的功力囉!

Share

沒有留言:

張貼留言