コンテンツにスキップ

データ処理

異なるチャンネルデータの結合

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_endTrueにすると,終了時間を含むように切り出す.

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,
)

データのプロット

WINWIN1chplotメソッド. 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()
WIN.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()
WIN1ch.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と同様にチャンネルテーブル情報を付加できる.