データ処理
異なるチャンネルデータの結合
WIN1ch
クラスやWIN
クラスは,「+」で足すことで,異なるチャンネルのデータを結合できる.
チャンネルの検索
WIN.select
メソッドで,
観測点名や成分名を指定してWIN
からチャンネルを抽出できる.
「*」や「.」(または「?」) によるワイルドカードも使用可能.
Example
import wintools
fp = "./etc/991109.064607"
chtable = "./etc/991109.064607.ch"
dat = wintools.read(
fp,
chtable=chtable,
)
dat.select(
station="KAG",
component="Z",
)
データの切り出し
WINクラスから特定チャンネルの切り出し
WIN
クラスのインスタンスからデータを取り出す.
dat[0]
とかdat["0200"]
,dat[1:3]
,dat[["0200","0201","0203"]]
のように,インデックス番号の単体・スライスか,文字列のチャンネル番号の単体・リストを与えて,任意のチャンネルのデータを絞り出すことができる.
切り出し結果が単体チャンネルの場合はWIN1ch
クラスが出力される.
切り出し結果,チャンネルが複数ある場合はWIN
クラスが出力される.
時間方向の切り出し
WIN.trim
メソッドを使う.
引数に与えた開始時間,終了時間の区間でデータを切り出す.
いずれかの時間を与えない(もしくはNone)場合,与えなかった方向には切り落とさない.
contain_end
をTrue
にすると,終了時間を含むように切り出す.
Example
import wintools
import datetime
fp = "991109.064607"
chtbl = "991109.064607.ch
dat = wintools.read(
fp,
chtable = chtbl,
encoding = "utf-8",
apply_calib=True,
)
dat.trim(
datetime.datetime(1999, 11, 9, 6, 46, 0),
None,
contain_end=True,
)
データのプロット
WIN
やWIN1ch
のplot
メソッド.
matplotlib
に準じて線のスタイルの引数を与えることができる.
また,fig, axを返すので,これを使って後からプロットのカスタマイズが可能.
savefp
で保存先のパスを指定すると,画像を保存する.
複数チャンネルデータのプロット
WIN
クラスによるプロット.
import wintools
import pandas as pd
from wintools.lib.win.reader import core
fp = "./etc/991109.064607"
chtable = "./etc/991109.064607.ch"
dat = wintools.read(
fp,
chtable=chtable,
encoding = "utf-8",
apply_calib=True,
)
dat[:3].plot()

単チャンネルデータのプロット
WIN1ch
クラスによるプロット.
WIN
の0番目のデータをプロットしている.
import wintools
import pandas as pd
from wintools.lib.win.reader import core
fp = "./etc/991109.064607"
chtable = "./etc/991109.064607.ch"
dat = wintools.read(
fp,
chtable=chtable,
encoding = "utf-8",
apply_calib=True,
)
dat[0].plot()

ObsPyとの連携
ObsPyへの波形データ出力
WIN
またはWIN1ch
クラスのto_obspy
メソッドを使う.
WIN1ch
であればobspy.Trace
を,
WIN
であればobspy.Stream
を出力する.
WINファイルにデータがないネットワーク名,地域名は付与されない.
ObsPyからWINオブジェクトへの変換
wintools.from_obspy
関数を使う.
引数にobspyのTrace
またはStream
を与えると,それぞれWIN1ch
またはWIN
クラスを出力する.
また,chtable
引数を与えると,wintools.read
と同様にチャンネルテーブル情報を付加できる.