hypoTD Ver.2 使用マニュアルとプログラム配布
1. はじめに
hypoTD_ver2 は、過去に発生した地震を用いた相対震源決定法であり、ver.1 に比べ、ユーザーがより簡単に操作できるよう変更されている。

メインプログラム(ateq_td)の実行で、テンプレート地震の登録、指定された回数のイタレーションによる相対震源決定が行われるようにした。

震源の緯度、経度、深さの推定誤差は、horiuchi et al.(2025) に記載されている方法で求めるようにした。

走時計算は、1)2層傾斜構造、2)多層構造、3)気象庁走時表 の3種類から選べるようにした。

本ソフトウェア利用で必要な入力ファイルは、
1)到着時刻データと初期震源、
2)速度構造、
3)観測点座標、
4)使用するファイル名を指定するファイル etc/wave_dir、
5)地震とノイズとを識別する判定パラメータのテーブル(../etc/hypo_remove.dat)である。

出力データは、hypoTDで計算された震源リスト(arriv_dd/hypo**)である。
  
2.Directory構造
(1) JMA_measure、win_measure、hypoDD_measure
気象庁検測値データ、Winフォーマット検測値ファイル、hypoDDによるフォーマットを、hypoTD用データフォーマットに変換するソフト

(2) auto_td:hypoTDによる相対震源決定(ateq_td)のソースコード

(3) arriv:hypoTDのフォーマットに変換した検測値データ

(4) etc:速度構造、観測点の座標、入力ファイル名(wave_dir.dat)、地震とノイズを識別する判定パラメータのテーブル(../etc/hypo_remove.dat)

(5) arriv_dd:hypoTDによる震源決定結果の震源リスト
  
3.気象庁検測値データ、Winフォーマット検測値ファイル、hypoDDフォーマットを hypoTD 用データフォーマットに変換するソフト
以下を実行することにより、検測値データを hypoTD のフォーマットで arriv ディレクトリーに格納される。
以下の例での 1984 は、1984年のデータを表す。

arriv/arv_1984.dat(バイナリー形式の、年毎の到着時刻データ)  
arriv/hypo_1984.dat(フォーマット付き、ダイレクトアクセス形式の年毎の震源リスト)  
arriv/event.dat(フォーマット付き、ダイレクトアクセス形式の全ての地震の震源リスト)

注)event.dat は、ateq_td を実行すると、計算された震源リストに置き換えられる。
(1)気象庁一元化震源到着時刻データ
1)コンパイル  
cd JMA_measure  
make  

2)入力データ  
検測値データのファイル名を print.dat に入れる。複数個ある場合は複数個。  
print.dat の例:  
measure_20240102_1.txt  

3)実行  
./read_jma_arriv
(2)Winフォーマット
1)コンパイル  
cd win_measure  
make  

2)データ  
print.dat に読み込むピックファイルのディレクトリー名を入れる。複数個ある場合は複数個。  
print.dat の例:  
picks/1611  

3)実行  
./read_win
(3)hypoDDフォーマット
1)コンパイル  
cd hypoDD_measure  
make  

2)データ  
print.dat に読み込むファイル名を入れる。複数個ある場合は複数個。  
print.dat の例:  
test1.pha  

3)実行  
./read_lv
4.入力データ
到着時刻以外の入力データは、  
1)観測点座標  
2)速度構造  
3)データ選択ファイル  
4)地震とノイズを識別するテーブル
(1)観測点座標
例1:  
etc/jma_stn.dat  
観測点 番号 緯度 経度 海抜(km)  
EHTO 1 36.5354 140.5136 0.041  
ETKM 2 36.4386 140.5687 0.009  
EMTH 3 36.3396 140.5182 0.025  
EIBR 4 36.2575 140.4601 0.027  
ENGK 5 36.1456 140.4295 0.020  

例2:  
etc/stn_dd.dat  
NCAAR 39.275936 -121.026962  
NCAAS 38.430138 -121.109589  
NCABJ 39.165771 -121.192993  
NCABR 39.138126 -121.488167  

・観測点番号は、入れなくてもよい。  
・海抜が書かれていない場合は、0.0km が指定される。  
・観測点ファイル名を間違えた場合は、観測点コードを書いて計算が終了する。
(2)速度構造モデル
etc/vel_model.dat に速度モデルを入れる。

例:  
# はコメント行  
# Component Name  
UD NS EW AZ AX AYMZ MX MY SZ SX SY TZ TX TY   !削除しないこと  

# Select type of velmodel. 1; two layer, 2; JMA table, 3; N Layer N<50  
1  

# 速度構造例(コメント付き)  
# 5.40 -59.0 7.75 -2.3 3.15 -59.0 4.35 -2.3  31.0  !Tohoku Univ.
# 5.50 -53.49 7.80 -2.13 3.25 -44.68  4.41 -1.57  32.0  !Ukawa
6.00 -30.0 8.0 -2.3 3.53 -30.0 4.50 -2.3 40.0  

# Number of layers  
# depth  Vp     Vs(km)
6  
-2.00 4.800 2.844  
0.50 4.950 2.931  
1.00 6.000 3.521  
24.00 6.648 3.858  
40.01 8.10 4.50  
700.00 12.0 6.66  

#を除く行
1行目   未使用。 消さないこと。
2行目  1  速度モデルの選択  1,2,3を入れる。
1;2層傾斜モデル  
2;気象庁走時表  
3;N層モデル(層内の速度は一定)  

3行目 2行目を、1にした場合の速度モデル
 6.00 -30.0 8.0 -2.3 3.53 -30.0 4.50 -2.3  40.0 とした場合の速度は以下で与えられる。
2層傾斜モデルの速度計算例:  
Vp = 6.0 * {(R - dep) / R} -30.0
Vs = 3.53 * {(R - dep) / R} -30.0

2層目の深さ:40km  
2層目の速度:  
Vp = 8.0 * {(Rm - dep) / Rm} -2.3
Vs = 4.5 * {(Rm - dep) / Rm} -2.3

R = 6371.05  
Rm = 6371.05 - 40.0  
と表せる。
4行目 2行目を3とした場合の速度モデルの層数
5行目以降
 N層モデルの深さ、P波速度、S波速度
 この例だと、深さ-2km(標高2km) から、0.5kmまでの、P波速度は、4.8km/sec,  S波は2.844 km/sである。
N層モデルでは、平行層モデルが使われており、地球の半径は、考慮されていない。

(3)データ選択ファイル
etc/wave_dir.dat

例:  
# Input files of ateq_td  
3   !1 Number of iteration  
# station code file 
../etc/stn_dd.dat   !2 Station for hypoDD sample data  
# File name of Event list for re-location 
../arriv/event.dat  !3 Relocation list including template EQ  
# lat1,lat2,lon1,lon2,dep1,dep2
-90.0 90.0 -180.0 180.0 -2.0 700.0  !4 Relocation area  
# Magnitude range for the selection of Template EQ
1.0 6.0  !5 Magnitude range for template EQ selection  
# Minimum numbers of P and S arrival times for the selection of Template EQ
0 0      !6 Minimum P and S readings for template EQ selection  
# Shallowest depth for templete EQ selection
0.1      !7 Shallowest depth(km) for template EQ selection  

説明:  
以下の行番号では、コメント行は除く。
1行目 イタレーションの回数
2行目 観測点データのファイル名
3行目 全地震の震源リストのファイル名 
震源リストには、地震番号が書かれており、検測値データ(バイナリーデータ)と、震源リストが紐付けされている。地震番号は、年毎に指定されている。
4行目 震源決定を行う地震の緯度、経度、深さ範囲。
5行目 テンプレート地震として、登録する地震のマグニチュードの範囲。
6行目 テンプレート地震として、登録する地震のP波、S波読み取り数の下限。
  20 10 とすると、 P波、S波読み取り数が20,10以上で、且つ、指定されたマグニチュードの範囲の地震を登録する。
7行目 テンプレート地震として登録する地震の上限の深さ(km)。
 0.1 とすると、震源の深さが地表に決定された地震は、テンプレート地震として、登録されない。
(4)地震とノイズを識別する判定パラメータのテーブル
../etc/hypo_remove.dat

例:  
0.1   !1 err_min      Minimum sd_cross  
2.0   !2 rat_stn_sd2  remove error picks sd2=2.0*sd  
0.4   !3 sd_remove    remove hypo when large sd (sec)  
10.0  !4 dl_remove    remove hypo when large location error (km)  
0.2   !5 rat_err_eq   remove hypo if 60% of large sd eq.  
70.0  !6 del_lim_sd_change km  
5.0   !7 magnitude to remove S arrival  

説明:  
1行目 ;相対震源決定の走時残差の最小値
2行目 ;読み取りデータを削除する場合の基準
 1行目が 0.1 2行目が2.0の場合が、
 50個の地震の走時残差のRMSをsd, 走時残差の平均値からのずれを av とすると
 Sd が0.1秒より小さければ、sd=0.1 とし、av>2sd であれば、その観測点データを削除
3行目 50個の地震の走時残差の中で、RMSがこの値以上であれば、そのテンプレート地震との震源決定を行わない
4行目 50個の相対震源決定を行った場合の、震源位置のばらつきが、この値以上であれば、震源決定を行わない。
5行目 50個の相対震源決定で、震源決定できた地震の割合が、この値以下であれば、震源決定を行わない。
6行目 平均的観測点間距離の閾値。 例えば、70km で、平均的観測点間距離が、Lとすると、3行目、5行目のデータは、
 Lが70kmを超えた場合に、3行目、5行目のデータを、L/70で、除して、判定に使う。
7行目 マグニチュードがこの値以上であれば、S波到着時刻を使用しない。

震源決定できない地震の割合が数%以下であれば、上記パラメータは変更不要。
5. hypoTDによる震源決定
(1)コンパイル 
auto_td ディレクトリーでmake とすると、ateq_tdがコンパイルされる。
(2)実行 cd auto_td ./ateq_td
6.hypoTDの出力
arriv_dd に、震源リストが作成される。

(1)ファイル名:arriv_dd/hypotd_asc_ita.dat  
ita:iteration の回数  
ファイル形式:アスキーフォーマット  
例:hypotd_asc_001.dat

    write(38,1302) iyear,im,id,ih,imin,t,  
      1 phi,dphi,ram,dram,dep,ddep,fmag,nobsp,nobss,sd_all_cross  
1302   format(i4,4i2,f7.2,f8.4,f7.4,f10.4,f7.4,2f7.2,f5.2,2i4,f6.2)  

Date     origin  Lat     err   Long    err   Depth  err   Mag  Np Ns RMS  
1984 1 31931  5.80  36.8646 0.0104 -121.4131 0.0155  3.91  1.52 2.52  93 0 0.16  
1984 1 32058 34.57  36.8755 0.0007 -121.6182 0.0015  3.37  0.29 2.39  62 0 0.14  
1984 1 51756 17.10  36.7045 0.0008 -121.3740 0.0008  1.25  0.23 1.44  19 0 0.13  

震源決定できなかったイベントは、初期震源が入っており、sd_all_cross = 9.9 になっている。
(2)ファイル名:arriv_dd/hypotd_dir_ita.dat  
ita:iteration の回数  
ファイル形式:フォーマット付きダイレクトアクセス、レコード長 120 byte  
例:hypotd_dir_001.dat

      322                                                                                                                  
84 1 31931  0.00   5.80  0.00 36.8646 0.0104 -121.4131 0.0155  3.91  1.52 2.52  93  0  93     3 0.16  
84 1 32058  0.00  34.57  0.00 36.8755 0.0007 -121.6182 0.0015  3.37  0.29 2.39  62  0  62     4 0.14  
84 1 51756  0.00  17.10  0.00 36.7045 0.0008 -121.3740 0.0008  1.25  0.23 1.44  19  0  20     5 0.13  

1行目:地震数  
2行目以降:  
(年-1900), 月, 日, 時, 分, 秒, 発震時, 誤差, 緯度, 誤差, 経度, 誤差, 深さ, 誤差, マグニチュード, P波読み取り数, S波読み取り数, 観測点数, イベント番号, 相対震源決定の走時残差の標準誤差

character*1 cret, c_temp, c_hypo_flag  
    open(7,file=file_hypo,access='direct',form='formatted',  
    1 recl=120,status='unknown')  
    write(7,1303,rec=irece) cret,iy,im,id,ih,imin,sec,t,dt,  
    1 phi,dphi,ram,dram,dep,ddep,fmag,nobsp,nobss,nobsall,  
    1 c_temp,c_hypo_flag,irec_arv,sd_all_cross  

1303 format(a1,1x,5i2,f6.2,f8.2,f6.2,f8.4,f7.4,f9.4,f7.4,2f7.2,f5.2,3i4,1x,2a1,i9,f6.2)

cret 改行  
iy,im,id,ih,imin,sec 時刻  
t,dt origin time とその誤差  
phi,dphi,ram,dram,dep,ddep 緯度・経度・深さとその誤差  
fmag マグニチュード  
nobsp,nobss,nobsall P波・S波読み取り数・観測点数  
c_temp,c_hypo_flag 気象庁フラグ  
irec_arv イベント番号  
sd_all_cross 走時残差の標準誤差  

震源決定できなかったイベントは、気象庁震源が入っており、sd_all_cross = 9.9 になっている。
7.気象庁走時表の変更方法
1)走時表を変更する場合は、3.入力データ 2) etc/vel_model.dat に速度構造モデルを入れる。
用いる走時表のタイプを 2 にする。

2)../etc/jma_trav_del_dep.dat を変更する。

3)深さ、距離方向のグリッド数が、236,106を超える場合は、
common /c_trav_jma/ パラメータの引数を増やす。

以下は sub_trv.f の最後の、走時表読み取りプログラムである。

      subroutine read_jma_trv
      common /c_trav_jma/idelg(236),idepg(106),travp(106,236),
     1 travs(106,236)
      open(7,file='../etc/jma_trav_del_dep.dat')
      ndel=236
      ndep=106
      do kdep=1,ndep
      do kdel=1,ndel
         read(7,100) travp(kdep,kdel),travs(kdep,kdel),
     1 idepg(kdep),idelg(kdel)
 100     format(1x,f9.3,2x,f9.3,i4,i7)
         enddo
         enddo
         close(7)
         return
      end
8.リアルタイム相対震源決定の方法
1)etc/wave_dir.dat の変更

2)ateq_td.f の中の以下の system call をコメントにする。

    text='cp ../arriv_dd/hypotd_dir.dat '//event_list
    ccc   call system(text)   !cp calculated hypo for the next iteration

3)ateq_td.f の 179行目 subroutine read_new_event_test(iflag) を変更し、
    新しい地震が発生したら、その地震を震源決定するようにする。
9.ダウンロード
以下のリンクをクリックすると、hypoTD Ver.2 をダウンロードできます。

		hypoTD Ver.2 ソースファイルをダウンロード(1.08MB)

ご質問のある方は、「お問い合せ」ページ記載のメールアドレス宛にご連絡ください。