2009年10月20日 星期二

TauP-- the travel time calculator

TauP是美國南加州大學(USC)的Lithospheric Seismology Program所開發出來的程式之一,這套程式是用來計算地震波的走時(Travel Time)。除了travel time之外,她還可以計算ray path以及地震波的穿入(pierce)及轉折點(turning)。相較於傳統的ttimes程式,她可以處理更多的速度構造(iasp91, PREM以及QDT);並且可以分析許多虛擬波相的走時。更難能可貴的是,他是用Java所寫成的,因此不需再編譯,只要安裝JRE即可快樂使用。更詳盡的說明,可以看他的手冊,或是解壓縮後就附有使用手冊了。

TauP也採用GPL授權,他的授權聲明在這裡,如果你有趣的話,原始碼解壓縮後在src裡就有了。

目前最新版本的TauP是1.2,您可以點這裡下載,或是直接到這裡查看是否有最新的版本。我猜測作者們應該是在sparc架構上開發TauP,因為她提供了for little-endian類的處理器的版本,而little-endian恰好是x86架構處理器的排序處理方式;如果您在處理資料的時候出現NaN(Not a Number)的錯誤訊息,很可能是因為headers對不上的關係,建議拿這個版本來用;不過這裡僅提供原始碼,您如果有興趣,需要自己編譯;筆者初次嘗試的結果,Makefile並沒有寫好,自己嘗試編譯的結果也沒有成功;等有空再仔細看看好了。

安裝TauP on Linux/MacOS/Unix

假設我們想把TauP安裝在/opt(當然你也可以依照linux的習慣放在/usr/local底下):

wget -c http://www.seis.sc.edu/downloads/TauP/TauP-2.0.tgz
sudo tar zxvf TauP-2.0.tgz -C /opt
接下來設定環境變數:新增兩行到/etc/profile
export TAUP_HOME=/opt/TauP-1.2
export PATH=$PATH:$TAUP_HOME/bin
完成之後重新登入,輸入taup看看有沒有結果。

如果看不到圖形跑出來,表示你沒有安裝Java runtime environment。通知偉大的系統管理員安裝他吧!

地科系學生常遇到的 Q&A

  1. 為什麼系統檔案裡有許多地方有.profile這個檔案?該修改哪個才好呢?
  2. 系統裡一共會有三個地方會有profile這個名稱:/etc/profile, /etc/skel/.profile以及~/.profile(如果你不知道~是什麼意思,麻煩自己google)
    /etc/profile
    系統啟動時所需要的所有環境變數,所有使用者登入時第一個讀取的檔案,包含root也是。
    /etc/skel/.profile
    系統新增使用者時,會複製一份這個檔案到使用者的家目錄。這個檔案與系統管理員比較有關。
    ~/.profile
    個人登入時讀取的第二個檔案。如果變數名稱與/etc/profile相同,以後讀的檔案為主。
    所以如果是系統管理員,而所有的使用者都是需要用到這個程式,請寫在/etc/profile;如果你的能力勝過你的系統管理員,是自己安裝來自己用的只是沒root權限,請修改~/.profile。
  3. 為什麼我的系統裡沒有~/.profile也沒有/etc/profile這個檔案?
  4. 因為你的linux是Redhat系列(包含CentOS, ScientificLinux, Fedora, OracleLinux),請改用/etc/bash_profile以及~/.bash_profile
  5. 為什麼我修改完之後,一定需要重新登出?有沒有不重新登出的辦法?
  6. 修改完檔案之後,系統並不會自己去讀取環境變數,因此重新登入會強迫使用者重新讀取/etc/profile以及~/.profile這兩個檔案,也就是取得我們新賦予的環境變數。
    然而,手動讀取這些環境變數檔也是可以的:
    source /etc/profile
    或是
    source ~/.profile
    你會發現這樣一樣有效。這是個『有限』的有效,因為你的桌面環境是前一次登入所讀取的,你桌面的終端機的變數是後來再source而來的,因此你在桌面再開啟的終端機仍然是繼承先前桌面的環境變數,仍然是舊的變數設定。因此強烈建議不熟悉的使用者,重新登入。
  7. 我懷疑我的電腦沒安裝java,該怎麼確定?
  8. 1. 問你的系統管理員。
    2. 假設你的系統管理員不知道,可以自救:
    java -version
    如果出現command not found,表示沒有安裝。如果出現類似
    java version "1.6.0_24"
    Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
    Java HotSpot(TM) Server VM (build 19.1-b02, mixed mode)
    表示你的系統有安裝Java Runtime Environment。
    如果出現command not found的話,
    aptitude install sun-java6-jre
    在Debian/Ubuntu下安裝,或
    yum install java-1.6.0-openjdk
    在CentOS/Fedora下安裝,或
    zypper install java-1_6_0-openjdk
    在OpenSuSE下安裝。
  9. TauP有沒有文字介面能快速計算地震學的一些參數呢?
  10. 當然有,詳細指令請參考TauP指令筆記。TauP在1.2之後新增一個taup_console的指令,這是在taup裡新增一個shell來撰寫Jython語言的一個環境,與計算較無關連。你應該閱讀TauP說明檔來彌補本文的不足。

Share

1 則留言: