sacfile_normalize_by_moving_aveコマンド マニュアル

(The documentation of sacfile_normalize_by_moving_ave command)

Last Update: 2023/6/13


◆機能・用途(Purpose)

SAC時系列データファイルを読み込み、絶対値移動平均を用いて振幅を規格化する。
Read a SAC time series data file and normalize the amplitudes by moving absolute averages.

元々の時系列データを\(u(t_0+k\Delta t)\) (\(t_0\): 先頭時刻、\(\Delta t\): サンプリング間隔、\(k=0,1,2,\cdots,N-1\)、 \(N\): データサンプル数) とし、時刻\(t=t_0+k\Delta t\)における絶対値移動平均を \[\begin{equation} A(t_0+k\Delta t)=\frac{1}{2L+1}\sum_{l=k-L}^{k+L}|u(t_0+l\Delta t)| \label{eq.moving_ave} \end{equation}\] と定義する。 ここで\(L\)はユーザが指定する非負の整数である。 このプログラムでは \(u(t_0+k\Delta t)/A(t_0+k\Delta t)\) の時系列データを計算・出力する。 この処理は雑微動の解析(地震波干渉法等)において地震の影響を低減する方法として Bensen et al. (2007)によって推奨されている。
Let the original time series data be \(u(t_0+k\Delta t)\), where \(t_0\) is the beginning time of the data, \(\Delta t\) is the sampling interval, \(k=0,1,2,\cdots,N-1\), and \(N\) is the number of data samples. The moving absolute average at time \(t=t_0+k\Delta t\) is defined by Eq. (\ref{eq.moving_ave}), where \(L\) is a user-defined non-negative integer. This program computes and outputs a time series data \(u(t_0+k\Delta t)/A(t_0+k\Delta t)\). This operation is recommended by Bensen et al. (2007) as a method to reduce effects of earthquakes on analyses of ambient noise (e.g., seismic interferometry).


◆ソースコード(Source code)

$YMAEDA_OPENTOOL_DIR/sac_data/src/sacfile_normalize_by_moving_ave.c


◆使用方法(Usage)

コマンドライン引数でパラメータを指定する。 パラメータの一覧を下表に示す。
Specify parameters by command-line arguments. The table below shows a list of parameters.


●「-」から始まらない引数 (Arguments not beginning with “-”)

引数
Argument
与える値
Quantity to be given
第1引数
1st argument
入力SACデータファイル名。
The input SAC data file name.
第2引数
2nd argument
出力するSACファイル名(規格化した時系列データの出力先)。 第1引数と同じ名前を指定した場合は上書きされる。
Name of the output SAC file into which the normalized time series data will be written. If the same name as the 1st argument is specified, the input file will be overwritten.


●1つの「-」から始まる引数 (Arguments beginning with a single “-”)

このコマンドでは1つの「-」から始まる引数は存在しない。
This command does not have arguments beginning with a single “-”.


●「--パラメータ名=パラメータ値」の形式の引数 (Arguments of a form “--Parameter name=Parameter Value”)

「--パラメータ名=パラメータ値」の形式の引数は自由な順番で指定できる。 「-」から始まらない引数の間に挿入しても良い。 相反する指定がなされた場合には後の指定が優先される。 デフォルト値を持つパラメータは省略できる。
Arguments of a form “--Parameter name=Parameter Value” can be placed in an arbitrary order. They can even be inserted between arguments not beginning with “-”. In case of conflicting options being specified, the latter option has a higher priority. Parameters that have default values can be omitted.

パラメータ名
Parameter name
意味
Meaning
可能なパラメータ値
Allowed parameter values
デフォルト値
Default value
Nave 平均値の計算に用いるデータサンプル数\(N_{ave}\)。 (\ref{eq.moving_ave})式の\(L\)との関係は \(N_{ave}=2L+1\)である。 なお平均に用いる窓の長さ(\((N_{ave}-1)\Delta t\))として、 Bensen et al. (2007)ではバンドパスフィルターの最大周期の半分程度 が推奨されている。
The number of data samples \(N_{ave}\) used to compute the averages. This quantity is related to \(L\) in Eq. (\ref{eq.moving_ave}) as \(N_{ave}=2L+1\). Bensen et al. (2007) recommended approximately half the maximum period of the band-pass filter for the window length of the average (\((N_{ave}-1)\Delta t\)).
入力時系列データのデータサンプル数以下の正の奇数。
A positive odd number less than or equal to the number of data samples of the input time series data.
51
edge_treatment データの先頭・末尾における平均値の計算方法。 \(k<L\)または\(k\geq N-L\)のとき、 \(A(t_0+k\Delta t)\)は (\ref{eq.moving_ave})式のままでは計算できないので その対処方法をこのオプションで指定する。
Method to compute the average at the beginning or end of the data. As \(A(t_0+k\Delta t)\) for \(k<L\) and \(k\geq N-L\) cannot directly be computed using Eq. (\ref{eq.moving_ave}), an alternative method of computation needs to be specified by this option.
  • assume_zero
    \(k<0\), \(k\geq N\)において\(u(t_0+k\Delta t)=0\) であると仮定して(\ref{eq.moving_ave})式を用いる。
    Use Eq. (\ref{eq.moving_ave}) assuming \(u(t_0+k\Delta t)=0\) for \(k<0\) and \(k\geq N\).

  • shorten_window
    平均値の計算に用いる時間窓をデータに合わせて短縮する。すなわち \[\begin{eqnarray} & & A(t_0+k\Delta t) \nonumber \\ &=& \begin{cases} \frac{1}{L+k+1}\sum_{l=0}^{k+L}|u(t_0+l\Delta t)| \\ \hspace{2em} (k<L) \\ \frac{1}{2L+1}\sum_{l=k-L}^{k+L}|u(t_0+l\Delta t)| \\ \hspace{2em} (L\leq k<N-L) \\ \frac{1}{N+L-k}\sum_{l=k-L}^{N-1}|u(t_0+l\Delta t)| \\ \hspace{2em} (N-L\leq k) \end{cases} \label{eq.moving_ave.shorten_window} \end{eqnarray}\] を用いて計算する。
    Shorten the time window for the average computation to adapt the data; Eq. (\ref{eq.moving_ave.shorten_window}) is the explicit formula used in this case.

  • shorten_output
    出力する時系列データの時間窓を\(L\leq k<N-L\)に短縮する。
    Shorten the time window of the output time series data to \(L\leq k<N-L\).

  • use_other_files
    第1引数で与える時系列データの直前・直後のデータを表す 別の時系列データファイルを参照する。 すなわち\(k<0\)および\(k\geq N\)に対する\(u(t_0+k\Delta t)\) を別のファイルから読み込む。
    Use other time series data files that represent the data immediately before and after the time series data given by the 1st argument. In other words, read \(u(t_0+k\Delta t)\) for \(k<0\) and \(k\geq N\) from other files.

assume_zero
prev_file 第1引数で与える時系列データの直前のデータを表すSAC時系列データファイル名。 \(k<0\)における\(u(t_0+k\Delta t)\)を与える。 絶対日時またはファイル内の時刻のいずれかにおいて、 このファイルの最後のサンプル時刻が\(t=t_0-\Delta t\) でなければならない。
The name of a SAC time series data file that represents the time series data immediately before that given by the 1st argument; \(u(t_0+k\Delta t)\) for \(k<0\) is defined by this file. The time for the last sample of this file must be \(t=t_0-\Delta t\), either as an absolute date and time or as a times in the files.
ファイル名。
A file name.
--edge_treatment=use_other_filesの場合は省略不可。 それ以外の場合はこのオプションは用いられない。
Cannot be omitted in case of --edge_treatment=use_other_files. In the other cases, this option is not used.
next_file 第1引数で与える時系列データの直後のデータを表すSAC時系列データファイル名。 \(k\geq N\)における\(u(t_0+k\Delta t)\)を与える。 絶対日時またはファイル内の時刻のいずれかにおいて、 このファイルの最初のサンプル時刻が\(t=t_0+N\Delta t\) でなければならない。
The name of a SAC time series data file that represents the time series data immediately after that given by the 1st argument; \(u(t_0+k\Delta t)\) for \(k\geq N\) is defined by this file. The time for the first sample of this file must be \(t=t_0+N\Delta t\), either as an absolute date and time or as a times in the files.
ファイル名。
A file name.
--edge_treatment=use_other_filesの場合は省略不可。 それ以外の場合はこのオプションは用いられない。
Cannot be omitted in case of --edge_treatment=use_other_files. In the other cases, this option is not used.
refDateTime_given SACファイル内で基準日時が与えられているか否か、 またそれらを3つのSACファイル (第1引数、パラメータprev_file, next_file) の結合に使用するか否か。 このパラメータは --edge_treatment=use_other_filesの場合にのみ用いられる。
Whether the reference date and time are given in the SAC files and should be used for merging the three SAC files specified by the 1st argument and parameters prev_file and next_file. This parameter is used only when --edge_treatment=use_other_files.
  • yes
    基準日時が与えられており、それらを使用する。
    The reference date and time are given and should be used.

  • no
    基準日時が与えられていない、または与えられていたとしても使用しない。
    The reference date and time are not given, or should not be used even if they are given.

no


◆動作(Behaviour)

第1引数で指定したSACファイルを読み込み、 パラメータの指定にしたがって振幅を規格化した上で 第2引数で指定したSACファイルに出力する。
Read the SAC file specified by the 1st argument, normalize the amplitudes based on the parameters specified, and output the result into the SAC file specified by the 2nd argument.


◆使用例(Example)

sacfile_normalize_by_moving_ave station1_20230612_0900_1h.sac station1_20230612_0900_1h_normalized.sac --Nave=15 --edge_treatment=use_other_files --prev_file=station1_20230612_0800_1h.sac --next_file=station1_20230612_1000_1h.sac --refDateTime_given=yes


◆検証(Validation)

御嶽山剣ヶ峰観測点(NU.KGM2)における 2022/02/23 14:15-14:25 (日本時間)の10分間の上下動波形を用いて 規格化を行ってみた結果を図1, 図2に示す。
Figs. 1 and 2 show the results of normalization for the vertical waveform of 10-min long from 14:15 to 14:25 on Feb 23, 2022 (JST) at Kengamine station of Mt. Ontake, Japan (NU.KGM2).

これらの図において最上段が解析に使用した波形、 上から2段目が同じ波形の縦軸を拡大したものである。 波形の黒線部分が解析に用いた10分間の波形を示しており、 この時間帯には多数の地震が発生していることが分かる。
The top panel of these figures shows the waveform used, and the second top panel does the same waveform with an enlarged vertical axis scale. The black portion of the waveform corresponds to the 10-min window used for the analysis. Abundant earthquakes occurred in this period.

図1は--edge_treatmentオプションを変えてコマンドを実行した結果である。 波形の末尾付近の拡大図を左に示している。 なお--edge_treatment=use_other_filesのケースにおいて、 最上段の灰色の部分の波形をprev_file, next_fileとして用いた。 図1より、規格化による地震シグナルの抑制には成功したこと、 --edge_treatmentオプションによる差は僅かであることが分かる。
Fig. 1 shows the results from different --edge_treatment options. An enlargement near the end of the time window is shown at the left. In case of --edge_treatment=use_other_files, the gray portions of the waveform shown at the top were used for prev_file and next_file. Fig. 1 indicates that the earthquake signals were suppressed successfully, and there was only a slight difference among the results from different --edge_treatment options.



図1. --edge_treatmentオプションを変えた場合の結果。
Fig. 1. Results from different --edge_treatment options.

一方、図2は--Naveオプションを変えた場合の結果である。 --Nave=201あたりまでは地震シグナルをよく抑制できているが、 Naveがそれよりも大きくなると顕著な地震シグナルが消えずに残ってしまっている。 なお、この波形のサンプリングレートは100 Hzであるので --Nave=101が1秒の時間窓に相当する。
Fig. 2 shows the results from different --Nave options. The earthquake signals are suppressed up to --Nave=201 but not suppressed for larger Nave. In this example, the sampling rate of the waveform was 100 Hz, meaning that --Nave=101 corresponds to a 1-s window.



図2. --Naveオプションを変えた場合の結果。
Fig. 2. Results from different --Nave options.


◆引用文献 (References)