データ処理
異なるチャンネルデータの結合
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と同様にチャンネルテーブル情報を付加できる.