2010年9月3日 星期五

Takeoff and incident angle from TauP

TauP 1.2以上的版本可以在taup_time裡面求得該phase的takeoff angle以及incident angle,筆者目前所能下載到的最新版本為2.0 beta6,相信如果需要這些資訊的研究人員可以更輕易的使用taup。TauP的作者Philip非常貼心的把Takeoff angle以及incident angle欄位放在後面,這樣一來使用者就無需更改呼叫taup的shell script。

taup_time -ph PcP,ScP -deg 46.5 -h 122.2

Model: iasp91
Distance   Depth   Phase   Travel    Ray Param  Takeoff  Incident  Purist    Purist
  (deg)     (km)   Name    Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name
-----------------------------------------------------------------------------------
   46.50   122.2   PcP      587.05     3.532     15.12    10.62    46.50   = PcP
   46.50   122.2   ScP      808.93     4.185      9.94    12.61    46.50   = ScP

請各位無痛升級到新版的TauP吧!

Share

2010年9月2日 星期四

SeisMac 初體驗

今天逛逛Apple Download時,發現其實在MacOSX上有許多好玩的小程式。特別是在Math & Science的分類裡,有一個SeisMac的小程式。不過從Apple Download經常無法下載,後來google才知道原來SeisMac也是IRIS提供的一套免費小程式,他利用MacBook上的Sudden Motion Sensor(SMS)來記錄XYZ三軸的加速度,並且允許你將所見的畫面儲存成tif,或是另存成sac(binary),asac(ascii)以及csv格式。

開啟SeisMac之後,輕輕搖晃或是手指輕拍你的laptop,或是跟我一樣隨意搖晃你的MacBook,你會發現移動的加速度已經被記錄下來啦!

接著,你可以儲存這些seismogram為sac格式!

缺點是,三個分量必須個別儲存,有點討厭。這三個分量並不是E/N/Z方向,而是以laptop為參考座標的X/Y/Z三個方向。儲存完之後,還真的可以用SAC去跑唷!

不過我還是不知道這樣有趣的小程式究竟可以如何使用--用在地震儀上未免也太貴了些。如果你對這個小程式感興趣的話,或許應該參考他的SeisMacHelp頁面!

Share

SAC installation on Linux and MacOSX

先前我一直沒有寫一篇如何在linux上安裝Seismic Analysis Code(SAC)的筆記,是因為在sac的網站上已經有很詳細的說明。下載下來的sac都已經是可以直接執行的binary,所以幾乎沒有任何問題。由於最近開始練習使用Mac來做日常工作,我想日後如果想在MacOSX上面跑sac的使用者也可以依此參考,因此寫下這篇簡單的sac on mac筆記。

在linux上,只要確定你安裝的linux是x86還是x86_64的版本即可。假設將sac解壓縮到/opt,則只需要在~/.profile裡設定幾個環境變數即可:

export SAC=/opt/sac
export SACLIB=$SAC/lib
export SACAUX=$SAC/aux
export PATH=$PATH:$SAC/bin
如果是csh的愛好者,你的環境變數應該長得像這樣:
setenv SAC /opt/sac
setenv SACLIB $SAC/lib
setenv SACAUX $SAC/aux
set path = ( $path $SAC/bin )

在MacOSX上,你也應該下載一個適合自己版本的sac來用。我的MacOS是Leopard(10.5),是64位元的版本,intel的cpu,可以執行x86或是x86_64的binary,不過當我設定好環境變數之後,敲入sac卻有錯誤訊息:

dyld: Library not loaded: /opt/local/lib/libSM.6.dylib
Referenced from: /opt/sac/bin/sac
Reason: image not found
Trace/BPT trap
dylib我不知道是什麼,不過看前面libSM.6我猜應該是缺乏動態函式libSM,所以dylib應該是dynamic library的意思,在linux相當於少了libSM.6.so的意思。知道少了這個lib,在linux只要用套件管理程式裝起來就可以了。但是在mac並沒有套件管理程式,該怎麼做呢?

為了解決這個問題,我們必須裝上MacPorts,這是一個開放原始碼的軟體,他收集了很多開放原始碼的程式,像是在linux世界裡常見的gedit,gimp等等的程式,可以透過MacPorts移植到MacOS上使用。但是,這些套件都是原始碼,他會下載原始碼到你的電腦上並自動編譯、安裝,所以會非常耗時;建議晚上安裝,早上起來就好了。

但是要安裝MacPorts,則必須要有gcc、make這些工具。而這些工具都是由xcode來的。也就是說,你必須先安裝xcode,才能有gcc,才能安裝MacPorts,才能安裝libSM.6.dylib,才能順利執行sac。

大部分安裝好MacOSX之後是不會有xcode的,你必須從安裝光碟裡去選擇並安裝xcode。安裝完xcode之後,你就有fortran, c, c++, python, Java等編譯器可以使用。接著下載給Snow Leopard(10.6), Leopard(10.5)以及Tiger(10.4)的MacPorts安裝檔來安裝。

安裝完成後,你的shell應該就能找到port這個指令。由於我不清楚mac如何更改default shell為tcsh,所以奉勸還是忘記有tcsh這類shell吧。安裝好之後,都是用port指令當做mac的套件管理程式。
更新MacPorts並且更新套件庫索引:

sudo port selfupdate
尋找套件名稱:
port search foo
安裝套件:
sudo port install foo
移除套件:
sudo port uninstall foo
回到我們的問題本身--套件的關鍵字是libSM,因此我們透過search找到的套件名稱為xorg-libsm,因此只需要輸入:
sudo port install xorg-libsm
再次執行sac,就可以快樂的在MacOSX上使用sac。

更舊版本的Mac恐怕需要更舊版本的sac才行--我所測試的sac版本為101.4。希望本文能對於Mac的使用者有所助益。

Share