コンテンツにスキップ

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)

指定したvectorsオブジェクトと同じデータ数となるよう整形した vectorsオブジェクトの生成。

指定のvectorsオブジェクトの方がデータが長い場合は、同じデータ数となるまでゼロ埋めをする(zero_padding)。データが短い場合は、同じデータ数となるまでトリミングする(trim)。

引数:

名前 タイプ デスクリプション デフォルト
v vectors

データ長を参照するための vectorsオブジェクト

必須

戻り値:

タイプ デスクリプション
vectors

整形された新しい vectorsインスタンス

amplify(amp)

振幅倍率を変更した vectorsオブジェクトの生成。

引数:

名前 タイプ デスクリプション デフォルト
amp float

振幅の倍率

必須

戻り値:

タイプ デスクリプション
vectors

新しい vectorsインスタンス

append(v)

vectorsオブジェクトを後ろに繋げる。

引数:

名前 タイプ デスクリプション デフォルト
v vectors

後ろに追加する vectorsオブジェクト

必須

戻り値:

タイプ デスクリプション
vectors

後ろにvが追加された新しい vectorsインスタンス

bandpass(low=0.05, high=10)

3成分(EW, NS, UD)すべてに対して、バンドパスフィルタを一括適用する。

引数:

名前 タイプ デスクリプション デフォルト
low float

低域カットオフ周波数(Hz)

0.05
high float

高域カットオフ周波数(Hz)

10

戻り値:

タイプ デスクリプション
vectors

フィルターが適用された新しい vectorsインスタンス

copy()

vectorsオブジェクトのコピー。

戻り値:

タイプ デスクリプション
vectors

コピーされた vectorsインスタンス

differentiation(low=0.05, high=50)

3成分(EW, NS, UD)すべてに対して、フーリエ変換を用いて数値微分する。指定した周波数帯域(low - high)以外はカットされる。

引数:

名前 タイプ デスクリプション デフォルト
low float

低域カットオフ周波数(Hz)

0.05
high float

高域カットオフ周波数(Hz)

50

戻り値:

タイプ デスクリプション
vectors

微分によって生成された新しい vectorsインスタンス

envelope()

3成分(EW, NS, UD)すべてに対して、包絡線を求める。

戻り値:

タイプ デスクリプション
vectors

包絡線が格納された vectorsインスタンス

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インスタンス