interpolate_depthSectionコマンド マニュアル

(The documentation of interpolate_depthSection command)

Last Update: 2022/9/2


◆機能・用途(Purpose)

深さ断面データを深さに関して一定の刻みになるように補間する。
Interpolate a depth-section data to a constant depth interval.


◆概要(Overview)

このプログラムでは観測点直下の地下構造情報を観測点毎に独立に、 深さ(あるいは標高)のみの関数として求めるタイプの解析を念頭に置く。 自己相関関数を用いた反射応答の推定がその例である。 この例ではまずラグタイム\(\tau\)の関数として自己相関関数を求め、 これを反射応答に換算する。 ラグタイム\(\tau\)を地表と地下の反射面の間の往復走時であると仮定することで 反射応答を深さ(あるいは標高)\(z\)の関数に直すことができるが、 もともと\(\tau\)について一定刻みであるので \(z\)に関しては一定刻みにはならない。 また、山岳地域のように観測点の標高を無視できないケースや \(\tau\)から\(z\)への変換に用いる速度構造が観測点毎に異なるケースでは、 \(z\)のサンプル値も観測点毎に異なる。 これは観測点間での平均操作等の事後処理を行う上で不便である。
This program bears in mind analyses to extract a subsurface structural information beneath a station, independently among the stations and as a function of depth (or altitude) alone. An example for this type of analysis is the estimation of a reflection response from autocorrelation functions. A typical procedure of this example is to first compute autocorrelation functions as a function of lag time \(\tau\), and then convert to a reflection response. The lag time \(\tau\) can be transfered to a depth (or an altitude) \(z\) assuming that \(\tau\) represents a two-way traveltime between the ground surface and a subsurface reflector; however, the reflection response that had a homogeneous sampling interval for \(\tau\) does not have a homogeneous sampling interval for \(z\). In case of mountain regions where station altitudes are not negligible, or in case of velocity structures for the conversion from \(\tau\) to \(z\) that differ by stations, the sample values of \(z\) are different among stations, which is inconvenient for some kind of afterprocessings (e.g., averaging the responses over the stations).

そこでこのプログラムでは反射応答をはじめとする地下構造情報において \(z\)のサンプル間隔を揃える機能を提供する。 補間前の時点で\(z\)の刻みは十分に細かいと仮定して 単純な線形補間を用いる。
This program provides a function to unify the sampling interval of \(z\) for subsurface structural information (e.g., the reflection response). A simple linear interpolation is adopted assuming that the sampling interval of \(z\) before the interpolation was fine enough.


◆ソースコード(Source code)

$YMAEDA_OPENTOOL_DIR/structural_survey/src/interpolate_depthSection.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
入力ファイル名。
The input file name.

入力ファイルはタブ区切りのテキストファイルとし、 いずれか1つの列が\(z\)の値(深さまたは標高)を表すものとする。 全ての行で列数が等しく、 \(z\)について昇順または降順でなければならない (順番がばらばらであってはならない)。
The input file must be a text file separated by tabs, and either column of the file must represent the values of \(z\) (depths or altitudes). The number of columns must be consistent throughout all lines, and \(z\) values must be either ascending or descending order (i.e., a random order is not allowed).
第2引数
2nd argument
出力ファイル名。
The output file name.


●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
z_column 入力ファイルにおいて\(z\)の値が書かれている列番号(先頭を1とする)。
The column number (starting from 1) corresponding to the \(z\) values in the input file.
入力ファイルの列数以下の自然数。
A natural number less than or equal to the number of columns of the input file.
1
data_columns 入力ファイルにおいて補間したいデータ(地下構造情報)が書かれている 列番号(先頭を1とする)のリスト。
A list of the column number (starting from 1) corresponding to the data (subsurface structural information) to be interpolated.
入力ファイルの列数以下の自然数をカンマ(,)で区切って並べた文字列。
A string composed of natural numbers separated by commas (,); each natural number must be less than or equal to the number of columns of the input file.
2
dz 補間後の\(z\)の間隔\(\Delta z\)。
The interval of \(z\) after the interpolation (\(\Delta z\)).
正の実数。
A positive real number.
省略不可
Cannot be omitted
zmin 作成するデータの\(z\)の下限\(z_{min}\)。
The lower bound of \(z\) of the data to create (\(z_{min}\)).
実数。 入力ファイルにおける\(z\)の最小値以上でなければならない。
A real number greater than or equal to the smallest value of \(z\) in the input file.
入力ファイルにおける\(z\)の最小値以上の、 \(\Delta z\)の整数倍となる最小の値。
The minimum value of the integer multiples of \(\Delta z\) greater than or equal to the smallest value of \(z\) in the input file.
zmax 作成するデータの\(z\)の上限\(z_{max}\)。
The upper bound of \(z\) of the data to create (\(z_{max}\)).
実数。 \(z_{min}\)よりも大きく、 かつ入力ファイルにおける\(z\)の最大値以下でなければならない。 更に、\(z_{max}-z_{min}\)が\(\Delta z\)で割り切れなければならない。
A real number greater than \(z_{min}\) and less than or equal to the largest value of \(z\) in the input file. In addition, \(z_{max}-z_{min}\) must be dividable by \(\Delta z\).
入力ファイルにおける\(z\)の最大値以下の、 \(\Delta z\)の整数倍となる最大の値。
The maximum value of the integer multiples of \(\Delta z\) less than or equal to the largest value of \(z\) in the input file.


◆動作(Behaviour)

第1引数で指定したファイルから パラメータz_columnで指定した列の値を\(z\)として、 パラメータdata_columnsで指定した各列の値をデータ\(f(z)\)として読み込む。 \(z_{min}\)から\(z_{max}\)までの範囲で\(\Delta z\)の刻みで \(f(z)\)の補間値を求め、 第2引数で指定したファイルに出力する。
From the file specified by the 1st argument, the values in the column specified by parameter z_column are read as the values of \(z\), and those in each column specified by parameter data_columns are read as the data \(f(z)\). Then the interpolated values of \(f(z)\) are computed from \(z_{min}\) to \(z_{max}\) at increments of \(\Delta z\), and the results are written into the file specified by the 2nd argument.

出力ファイルは第1列を\(z\)の値、 第2列以降を補間したデータの値 (パラメータdata_columnsで指定した順) とするテキストファイルであり、 列の区切りにはタブが用いられる。
The output file is a text file, where the values of \(z\) are written in the 1st column and those of data are written in the remaining columns in the order of parameter data_columns. Tabs are used to separate the columns.


◆使用例(Example)

interpolate_depthSection original.dat interpolated.dat --z_column=2 --data_columns=4,5 --dz=1.0

original.dat
0.1[TAB]1.2[TAB]2.3[TAB]2.4[TAB]-12.0
0.2[TAB]3.4[TAB]4.5[TAB]6.8[TAB]-34.0
0.3[TAB]5.6[TAB]6.7[TAB]11.2[TAB]-56.0
0.4[TAB]7.8[TAB]8.9[TAB]15.6[TAB]-78.0
0.5[TAB]9.0[TAB]0.1[TAB]18.0[TAB]-90.0

ここで[TAB]はタブを表す。
Here, [TAB] indicates a tab.

この例では引数の--z_column=2により original.datの第2列の値が\(z\)と見なされる。 また--data_columns=4,5により original.datの第4列と第5列の値がデータと見なされ、 これらが補間の対象になる。 第1列、第3列は無視される。
In this example, the argument --z_column=2 indicates that the 2nd column of original.dat are the values of \(z\), and the argument --data_columns=4,5 indicates that the 4th and 5th columns of original.dat are the data to be interpolated. The 1st and 3rd columns are ignored.

zmin, zmaxの値は引数で指定していないので ファイルoriginal.datを元に自動設定される。 original.datにおいて\(z\)の最小値は1.2であり、 この値以上の最小のdzの整数倍は2.0であるので\(z_{min}=2.0\)となる。 同様にして\(z_{max}=9.0\)となる。
As the values of zmin and zmax are not specified by the arguments, they are automatically determined based on file original.dat. The smallest value of \(z\) in original.dat is 1.2, and the minimum value of the integer multiples of dz greater than or equal to 1.2 is 2.0. Therefore \(z_{min}=2.0\) in this example. In the same way, \(z_{max}=9.0\) is obtained.

したがって\(z_{min}=2.0\)から\(z_{max}=9.0\)まで \(\Delta z=1.0\)の刻みで補間値の計算が行われ、 結果がinterpolated.datに出力される。 引数--data_columns=4,5により、 original.datの第4列を補間したデータがinterpolated.datの第2列に、 original.datの第5列を補間したデータがinterpolated.datの第3列に出力される。 これにより、出力ファイルは以下のようになる。
Therefore, the interpolated values are computed from \(z_{min}=2.0\) to \(z_{max}=9.0\) at increments of \(\Delta z=1.0\), and the results are written into interpolated.dat. According to the argument --data_columns=4,5, the interpolated data of the 4th and 5th columns of original.dat are written into the 2nd and 3rd columns of interpolated.dat, respectively. Hence the output file is as follows.

interpolated.dat
2.0[TAB]4.0[TAB]-20.0
3.0[TAB]6.0[TAB]-30.0
4.0[TAB]8.0[TAB]-40.0
5.0[TAB]10.0[TAB]-50.0
6.0[TAB]12.0[TAB]-60.0
7.0[TAB]14.0[TAB]-70.0
8.0[TAB]16.0[TAB]-80.0
9.0[TAB]18.0[TAB]-90.0