GMT(Generic Mapping Tools)是一套open source的軟體,用來繪製精細的、各式各樣的地理圖形或是xy,xyz軸的分佈圖;我想地球科學領域的同好幾乎都用過他。兩位主要的作者Paul Wessel和
Walter 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 makeFor OpenSuSE users:
zypper in gcc makeFor Fedora/CentOS users:
yum install gcc makeFor 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:
- Select default units in GMT:
我們習慣公制單位,因此選擇SI units (cm)。 - Select default PostScript output format for GMT:
PS比EPS具有更多的頁面列印的彈性設定,因此我們放心的選擇PS。 - Select POSIX Advisory File Locking:
選擇"YES. Use file locking"。
我們如果想要把gmt的指令當成管線再傳給下一個gmt指令,最好將.gmtcommands這個檔案鎖定寫入。在舊的solaris(< 5.7)或是linux核心<2.4的機器上,存取NFS檔案時會有問題。不過我們的機器都遠比這來得新,所以不必考慮這個問題。
B. NetCDF Setup
- Select the appropriate netCDF library option:
如果你不知道或不確定你有沒有netcdf的話,點選"Please get and install the latest netCDF 3.6.x"即可。
C. GMT Setup
- Select the FTP site nearest you:
選擇Japan或是Australia都可以。(真希望以後有台灣的mirror,而且是在地球所裡面!) - Select passive [Default] or active ftp transmission:
你可能要了一下你的網路架構。通常主機架在防火牆內部,你必須要選擇passive的方式。如果不是,選擇active。 - Select the components you want (bzip2 sizes indicated):
反正硬碟都夠大,全勾選吧! - Select which triangulation algorithm to use:
選擇Watson's algorithm。原因是Watson的演算法是GNU的,但是Shewchuk's algorithm卻不是GNU的。雖然不能如此自由的使用,但他還是免費的,如果你有需要,是需要自己編譯的。 - Select library build type:
static跟shared的差別是,gmt要不要跟其他應用程式共用函式庫。如果共用的話,可以節省空間,不過可能會被愚蠢的系統管理員搞砸而無法正常使用;static是自己擁有自己的函式庫;缺點是佔用更多的硬碟空間,優點是不會被愚蠢的管理員惡搞而無法使用。
要選擇哪一個都無所謂,自己決定吧! - Select the C compiler you want to use:
選擇gcc吧!除非你還有裝其他的C compiler! - Select the make program you want to use:
選擇make吧!除非你還有其他make工具。 - Select GMT final destination directories:
除非你想要自訂每個目錄的位置,否則放置subdir的地方預設就會是你執行install_gmt的目錄。假設你想要在/opt/gmt裡執行install_gmt,那麼第一行就填入"/opt/gmt"吧!sundir就可以不用管他了。 - Select alternative GMT_SHAREDIR directory:
shared directory會放置一些比較大型的檔案,除非你有硬碟空間上的考量,否則可以略過他! - Alternative coastline directories:
同樣的,如果你有硬碟空間上的考量,否則可以略過他! - Select supplemental packages to install:
您可以全部勾選!! - Additional information for MEX (Matlab or Octave):
octave是一套linux下的matlab的替代方案,他比起matlab僅稍稍遜色一些,不過由於沒有圖形介面且參考資料較少,其實懂得使用octave的人少之又少;
假設您沒有在GMT下呼叫matlab或是octave的函數的需求,此處留空白或是填入位置都是沒有效果的。 - Complete the operation:
恭喜你,填完表格了!你可以選擇裝完成後刪除所有下載下來的檔案,也可以執行測試的script看看gmt有沒有安裝成功!
cd /opt/GMT就讓這個script幫我把netcdf以及gmt自動安裝完成!結束之後,您應該會看到有一個類似這樣提示設定:
./install_gmt param.list
這樣,就輕鬆完成自訂安裝囉!
二、使用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"往後,我們可以到/usr/share/doc/gmt/html/index.html來翻閱手冊以及文件。
export PATH=$PATH:$GMTHOME/bin
For Fedora/CentOS users:
yum install gmt gmt-examplesFor OpenSuSE users:
請加入science repos:
zypper install gmt gmt-examplesFor MaxOS users:
如果你沒有fink或是沒有聽過fink,請到這裡選擇你的cpu架構並安裝他(假設你已經知道如何安裝fink了!)。安裝完畢後請更新fink套件管理的cache:
fink scanpackages && fink index你沒看錯,fink就是看上linux裡最強的套件管理系統:apt-get,所以他的操作模式就跟debian使用的經驗幾乎相同;透過他你也可以在mac輕易的安裝許多gnu的程式!
apt-get install gmt gmt-shlibs gmt-docs
三、下載高解析度海岸線檔
如果你用的是第一個方法,也就是到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這樣無論是用哪一種方法安裝GMT,都可以畫出美麗的圖啦!剩下就憑自己的功力囉!
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
Share |
沒有留言:
張貼留言