データの読み書き
時系列データを読む場合は、基本的にgwpy.timeseriesのTimeSeries もしくはTimeSeriesDictを用いる。 単一ファイルの単一チャンネルを読むだけなら前者で十分だが、結局のところ後者の方が上位互換なので、常にそちらを使う方がおススメ。 (gwpy1.0.0では、バグにより単一チャンネルであってもTimeSeriesで複数ファイルをまとめ読みできないとの報告がある。)
frame fileを読む
柏のKAGRAメインサーバー(以下 柏サーバー)では/data 、神岡サーバーでは /frame0 もしくは /frame1 以下にファイルが置いてある。 ディレクトリ構造の詳細はJGW-G1911052を参照。 GPS時刻を調べるには、GPS Time Converterなどを使うのが手っ取り早い。
例えば、2020/3/9 14:00 UTCあたりの干渉計信号(strain)とREFL定盤の加速度計の信号を読むには、
1 from gwpy.timeseries import TimeSeriesDict
2 from gwpy.timeseries import TimeSeriesDict
3 import numpy as np
4 sources = ['/data/full/12677/K-K1_C-1267797600-32.gwf', '/data/full/12677/K-K1_C-1267797632-32.gwf', '/data/full/12677/K-K1_C-1267797664-32.gwf']
5 channels = ['K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ', 'K1:PEM-ACC_MCF_TABLE_REFL_Z_OUT_DQ']
6 data = TimeSeriesDict.read(sources, channels, format='gwf.lalframe', pad=np.nan, nproc=4)
7 print(data[channels[0]])
8 print(data[channels[1]])
TimeSeries([ -2.13041590e-12, -2.12980671e-12, -2.12920164e-12,
..., 3.02297020e-13, 3.03052655e-13,
3.03810103e-13]
unit: dimensionless,
t0: 1267797600.0 s,
dt: 6.103515625e-05 s,
name: K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ,
channel: K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ)
TimeSeries([-0.00049336, 0.00021882, -0.00037257, ...,
0.0007291 , -0.00051094, 0.00017448]
unit: dimensionless,
t0: 1267797600.0 s,
dt: 0.00048828125 s,
name: K1:PEM-ACC_MCF_TABLE_REFL_Z_OUT_DQ,
channel: K1:PEM-ACC_MCF_TABLE_REFL_Z_OUT_DQ)