API Reference
波形データの読み込み
parse(file_name, file_name2=None, file_name3=None, fmt='vector', gain=None, bit=None, noheader=False)
強震動データを読み込み、vectorsオブジェクトとしてパースします。
fmtに指定したフォーマットに応じて適切に変換します。例えば,防災科研K-NET/KiK-netの場合、fmt="nied"と指定すれば拡張子に応じて自動的に変換される。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
file_name
|
str
|
読み込むファイルのパス(K-NET/KiK-netの場合はEWファイル名を指定すること。"~~~~.EW","~~~~~.EW2"など) |
必須 |
file_name2
|
str
|
追加のファイルパス(SAC形式用など)。ほとんどの場合は不要。 |
None
|
file_name3
|
str
|
追加のファイルパス(SAC形式用など)。ほとんどの場合は不要。 |
None
|
fmt
|
str
|
データのフォーマット ("vector", "nied", "jma", "win", "sac") |
'vector'
|
gain
|
float
|
振幅倍率(win形式のみ) |
None
|
bit
|
int
|
データビット数(win形式のみ) |
None
|
noheader
|
bool
|
ヘッダーがあるかどうか(vectors形式のみ) |
False
|
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
読み込まれたデータの vectorsインスタンス |
波形解析
vectorsオブジェクトには、波形を処理するための様々なメソッドが用意されています。
vectors
3成分(EW, NS, UD)の強震動データを一括して管理・解析するためのクラス。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
header |
dict
|
観測点情報や記録時間などを含むヘッダー |
tim |
ndarray
|
時間軸データ(秒) |
ew |
ndarray
|
EW成分の波形データ |
ns |
ndarray
|
NS成分の波形データ |
ud |
ndarray
|
UD成分の波形データ |
dt |
float
|
サンプリング間隔(秒) |
adjust(v)
amplify(amp)
振幅倍率を変更した vectorsオブジェクトの生成。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
amp
|
float
|
振幅の倍率 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
新しい vectorsインスタンス |
append(v)
bandpass(low=0.05, high=10)
3成分(EW, NS, UD)すべてに対して、バンドパスフィルタを一括適用する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
low
|
float
|
低域カットオフ周波数(Hz) |
0.05
|
high
|
float
|
高域カットオフ周波数(Hz) |
10
|
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
フィルターが適用された新しい vectorsインスタンス |
copy()
differentiation(low=0.05, high=50)
3成分(EW, NS, UD)すべてに対して、フーリエ変換を用いて数値微分する。指定した周波数帯域(low - high)以外はカットされる。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
low
|
float
|
低域カットオフ周波数(Hz) |
0.05
|
high
|
float
|
高域カットオフ周波数(Hz) |
50
|
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
微分によって生成された新しい vectorsインスタンス |
envelope()
every(n)
指定したサンプル数毎に間引いた vectorsオブジェクトの生成。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
n
|
int
|
間引くデータ数。n個飛ばしのデータが生成される。 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
間引き処理後の新しい vectorsインスタンス |
extract(start, end=60, to_end=True)
指定した時間区間の vectorsオブジェクトを抽出する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
start
|
float
|
抽出時間の開始時刻 |
必須 |
end
|
float
|
抽出時間の終了時刻 |
60
|
to_end
|
bool
|
最後まで抽出する場合はTrue。endで指定した時刻で切り取る場合はFalse。endとto_end=Trueを指定した場合はto_endが優先される。 |
True
|
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
抽出された新しい vectorsインスタンス |
integration(low=0.2, high=50)
3成分(EW, NS, UD)すべてに対して、フーリエ変換を用いて数値積分する。指定した周波数帯域(low - high)以外はカットされる。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
low
|
float
|
低域カットオフ周波数(Hz) |
0.2
|
high
|
float
|
高域カットオフ周波数(Hz) |
50
|
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
積分によって生成された新しい vectorsインスタンス |
jma_seismic_intensity(print_result=True)
気象庁計測震度を計算する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
print_result
|
bool
|
結果をコンソールに表示する場合はTrue |
True
|
戻り値:
| タイプ | デスクリプション |
|---|---|
float
|
計算された計測震度値 |
level_shift(level)
データに一律のスカラー値を加えた vectorsオブジェクトの生成。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
level
|
float
|
データに加えるスカラー値 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
新しい vectorsインスタンス |
normalize(scale=1.0)
正規化された vectorsオブジェクトの生成。
最大振幅が1、あるいは指定した数値となるようにデータを規格化する。成分毎に正規化されることに注意。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
scale
|
float
|
正規化後の最大振幅。デフォルトは1。 |
1.0
|
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
正規化された新しい vectorsインスタンス |
output(output_file, fmt='%15.7f')
3成分(EW, NS, UD)の時刻歴波形をファイルに出力する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
output_file
|
str
|
出力先ファイル名 |
必須 |
fmt
|
str
|
出力フォーマット |
'%15.7f'
|
output_csv(output_file, fmt='%15.7f')
3成分(EW, NS, UD)の時刻歴波形をCSV形式でファイルに出力する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
output_file
|
str
|
出力先ファイル名 |
必須 |
fmt
|
str
|
出力フォーマット |
'%15.7f'
|
output_pickle(output_file)
vectorsオブジェクトをpickle形式(バイナリ)でファイルに出力する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
output_file
|
str
|
出力先ファイル名 |
必須 |
peak_ground_2d(print_result=True)
水平2成分合成波の最大値(PGAやPGV)を算出する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
print_result
|
bool
|
結果を表示するかどうか |
True
|
戻り値:
| タイプ | デスクリプション |
|---|---|
float
|
最大値 |
peak_ground_3d(print_result=True)
3成分合成波の最大値(PGAやPGV)を算出する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
print_result
|
bool
|
結果を表示するかどうか |
True
|
戻り値:
| タイプ | デスクリプション |
|---|---|
float
|
最大値 |
plot_all(start=0, end=60, to_end=False, output_file=None)
3成分(EW, NS, UD)の時刻歴波形を一括してプロットする。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
start
|
float
|
表示の開始時刻(秒) |
0
|
end
|
float
|
表示の終了時刻(秒) |
60
|
to_end
|
bool
|
波形データの最後まで表示する場合はTrue。endとto_end=Trueの両方が指定された場合は、to_endが優先される。 |
False
|
output_file
|
str
|
外部ファイルに画像として出力する場合はファイル名を指定する。ファイル名の拡張子に応じた形式で保存される。 |
None
|
reset_tim()
時刻のリセット。
extractなどの処理では内部変数timの基準時刻が変化しない。基準時刻をデータの先頭にしたい場合に使用する。
戻り値:
| タイプ | デスクリプション |
|---|---|
|
なし(開始時刻が0秒となる) |
response_spectrum_max()
水平成分の応答スペクトルをRotD100で算出する。実行するとvectorsオブジェクトにAttributesが追加される。 Sa: 加速度応答スペクトル(h=5%)。 Sv: 速度応答スペクトル(h=5%)。 Sd: 変位応答スペクトル(h=5%)。 Sa_rot: 加速度応答スペクトルが最大となる方位(ラジアン)。 Sv_rot: 速度応答スペクトルが最大となる方位(ラジアン)。 Sd_rot: 変位応答スペクトルが最大となる方位(ラジアン)。
戻り値:
| タイプ | デスクリプション |
|---|---|
|
このメソッドは値を返さない。代わりに属性(Sa, Sv, Sd, Sa_rot, Sv_rot, Sd_rot)が追加される。 |
rotation(rot, deg='deg')
水平2成分(EW, NS)を指定した角度だけ回転させた vectorsオブジェクトの生成。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
rot
|
float
|
回転角(北から時計回りの角度) |
必須 |
deg
|
str
|
角度の単位。'deg'(度)または 'rad'(ラジアン) |
'deg'
|
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
回転後の成分を持つ新しい vectorsインスタンス |
set_origin_time(origin_time_str)
基準時刻を指定する。
指定した時刻が基準時刻(timの0秒)となるように、timのみが更新される。波形データは修正されない(trimingやzero_paddingされない)。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
origin_time_str
|
str
|
設定する基準時刻。"%Y/%m/%d %H:%M:%S"のフォーマットで記述する。(例:2018/06/18 07:58:00) |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
|
なし(timの基準時刻が指定した時刻となる。波形データは修正されない。) |
time_shift(shift)
時間シフトさせた vectorsオブジェクトの生成。
指定した時間(秒)だけデータをずらす。(例:shift=15を指定した場合、元データの15秒の値が冒頭にくる。)なお刈り込みは行わないので、ずらしたデータはデータ後部に移動させただけであることに注意。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
shift
|
float
|
シフトさせる時間(秒) |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
時間シフトさせた新しい vectorsインスタンス |
to_vector(comp)
指定した成分のvectorオブジェクト(一成分)を抽出する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
comp
|
string
|
抽出する成分。"ew","ns","ud"のいずれかを指定する |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
vector
|
抽出された vectorインスタンス |
trend_removal(sec=None)
3成分(EW, NS, UD)すべてに対して、線形トレンドの除去(基線補正)を一括適用する。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
sec
|
float
|
データ開始から指定した時刻(s)までのデータで基線補正をする(大振幅前のデータで基線補正したい場合に用いる)。デフォルトは全時刻のデータの平均値で基線補正をする。 |
None
|
戻り値:
| タイプ | デスクリプション |
|---|---|
|
なし(インスタンス内の各成分が補正後の波形に更新される) |
trim(ntim)
指定したデータ数にトリミングした vectorsオブジェクトの生成。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
ntim
|
int
|
先頭からntimのデータ数までを残して、後続のデータを削除する |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
新しい vectorsインスタンス |
zero_padding(ntim)
ゼロ埋めされた vectorsオブジェクトの生成。
指定したデータ数となるよう、データをゼロで埋める。(例:6000サンプルのデータにntim=12000を指定した場合、6001-12000が0値である12000サンプルのデータとなる。)
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
ntim
|
int
|
指定するデータ数。保持データの長さより短い場合には、短くしない。 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
vectors
|
ゼロ埋めされた新しい vectorsインスタンス |