KMST(KAGRA Main Data System)で Frame file (.gwf) を読む¶
- アカウント申請: JGW-M191020
- スタートアップガイド: JGW-M1910076
- System-B (KMST2) の使い方: JGW-T2314750
- 各データがどこにあるのか:JGW-G2214561
- DMGマニュアル: https://dac.icrr.u-tokyo.ac.jp/KAGRA/DAWG/DMG/Manuals <- DAC wikiへ入る方法: JGW-L2011668
Frame file の絶対パスを取得してgwpyで読む¶
In [1]:
import os
from gwpy.time import to_gps
# 時刻を指定して、該当するファイルを取得する関数
def gwf_KMST(start, end, frame_type='full'):
if frame_type=='full':
path = '/data/KAGRA/raw/full'
prefix = 'K-K1_C-'
T = int(32)
elif frame_type=='science':
path = '/data/KAGRA/raw/science'
prefix = 'K-K1_R-'
T = int(32)
elif frame_type=='s-trend':
path = '/data/KAGRA/raw/trend/second'
prefix = 'K-K1_T-'
T = int(600)
elif frame_type=='m-trend':
path = '/data/KAGRA/raw/trend/minute'
prefix = 'K-K1_M-'
T = int(3600)
else:
print('"frame_type" setting error! Please select from (full, science, s-trend, m-trend)')
return
t0 = (int(to_gps(start))//T)*T
N = -((t0 - int(to_gps(end)))//T)
sources = ['{}/{:5.0f}/{}{:.0f}-{:.0f}.gwf'.format(path, (t0 + i*T)//100000, prefix, t0 + i*T, T) for i in range(N)]
return [s for s in sources if os.path.isfile(s)]
実際に読んでみる
In [2]:
from gwpy.timeseries import TimeSeriesDict
start = '2025-01-31 14:01:12 JST'
end = '2025-01-31 14:10:00 JST'
files = gwf_KMST(start, end, frame_type='full')
data = TimeSeriesDict.read(source = files,
channels = ['K1:CAL-CS_PROC_DARM_STRAIN_DBL_DQ',
'K1:PEM-SEIS_IXV_GND_X_OUT_DQ'])
print(data)
TimeSeriesDict([('K1:CAL-CS_PROC_DARM_STRAIN_DBL_DQ', <TimeSeries([-3.96339425e-13, -3.96210763e-13, -3.96050991e-13,
..., -5.62975642e-13, -5.63342422e-13,
-5.63711536e-13]
unit=Unit(dimensionless),
t0=<Quantity 1.42233488e+09 s>,
dt=<Quantity 6.10351562e-05 s>,
name='K1:CAL-CS_PROC_DARM_STRAIN_DBL_DQ',
channel=None)>), ('K1:PEM-SEIS_IXV_GND_X_OUT_DQ', <TimeSeries([ 0.16124028, 0.7661218 , 1.2857995 , ...,
-0.15102142, -0.29820377, -0.46236202]
unit=Unit(dimensionless),
t0=<Quantity 1.42233488e+09 s>,
dt=<Quantity 0.00195312 s>,
name='K1:PEM-SEIS_IXV_GND_X_OUT_DQ',
channel=None)>)])
DetCharのCacheファイルを利用してgwpyで読む¶
In [3]:
! ls /home/detchar/cache/
1368975618_1371337218_O4a.cache ER2.ffl 1368975618_1371337218_O4a.ffl full_O3GK.ffl C20_O3GK.cache full_O3GK_fixed_20210309.ffl C20_O3GK.ffl latest.cache CacheMinute_GPS latest.ffl CacheSecond_GPS latest_minute.cache Cache_GPS latest_minute.ffl ER1.cache latest_second.cache ER1.ffl latest_second.ffl ER2.cache tmp
In [4]:
from gwpy.time import to_gps
from gwpy.timeseries import TimeSeriesDict
data = TimeSeriesDict.read("/home/detchar/cache/Cache_GPS/13647.ffl",
channels = ['K1:CAL-CS_PROC_DARM_STRAIN_DBL_DQ',
'K1:PEM-SEIS_IXV_GND_X_OUT_DQ'],
start = 1364782218,
end = 1364782518)
print(data)
TimeSeriesDict([('K1:CAL-CS_PROC_DARM_STRAIN_DBL_DQ', <TimeSeries([-3.78695960e-13, -3.79012410e-13, -3.79421923e-13,
..., 2.94073635e-12, 2.94295044e-12,
2.94516257e-12]
unit=Unit(dimensionless),
t0=<Quantity 1.36478222e+09 s>,
dt=<Quantity 6.10351562e-05 s>,
name='K1:CAL-CS_PROC_DARM_STRAIN_DBL_DQ',
channel=None)>), ('K1:PEM-SEIS_IXV_GND_X_OUT_DQ', <TimeSeries([ 0.23454924, -0.1891914 , -0.18198629, ...,
-0.5949305 , -0.44377816, 0.11380227]
unit=Unit(dimensionless),
t0=<Quantity 1.36478222e+09 s>,
dt=<Quantity 0.00195312 s>,
name='K1:PEM-SEIS_IXV_GND_X_OUT_DQ',
channel=None)>)])
NDS2を利用してデータを読む¶
https://dac.icrr.u-tokyo.ac.jp/KAGRA/DAWG/DMG/Manuals/nds2/nds2-enduser
を参照 (現在m31-02 (system-A)が廃止されたので利用不可)
DGSネットワークで NDS2を利用して Frame file (.gwf) を読む¶
以下の場所でのみ使用可能
- KAGRA坑内
- 神岡の解析棟・北部会館
- NAOJ三鷹のサテライトコントロールルーム
「過去にはあったけど現在は無いチャンネル」は見れないので注意
In [1]:
from gwpy.timeseries import TimeSeriesDict
data = TimeSeriesDict.fetch(channels = ['K1:CAL-CS_PROC_DARM_STRAIN_DBL_DQ',
'K1:PEM-SEIS_IXV_GND_X_OUT_DQ'],
start = 1364782218,
end = 1364782518,
host='k1nds2',
port=31200)
print(data)
TimeSeriesDict([('K1:CAL-CS_PROC_DARM_STRAIN_DBL_DQ', <TimeSeries([-3.78695960e-13, -3.79012410e-13, -3.79421923e-13,
..., 2.94073635e-12, 2.94295044e-12,
2.94516257e-12]
unit=Unit("NONE"),
t0=<Quantity 1.36478222e+09 s>,
dt=<Quantity 6.10351562e-05 s>,
name='K1:CAL-CS_PROC_DARM_STRAIN_DBL_DQ',
channel=<Channel("K1:CAL-CS_PROC_DARM_STRAIN_DBL_DQ" [raw], 16384.0 Hz) at 0x7f905c1ac4c0>)>), ('K1:PEM-SEIS_IXV_GND_X_OUT_DQ', <TimeSeries([ 0.23454924, -0.1891914 , -0.18198629, ...,
-0.5949305 , -0.44377816, 0.11380227]
unit=Unit("um / s"),
t0=<Quantity 1.36478222e+09 s>,
dt=<Quantity 0.00195312 s>,
name='K1:PEM-SEIS_IXV_GND_X_OUT_DQ',
channel=<Channel("K1:PEM-SEIS_IXV_GND_X_OUT_DQ" [raw], 512.0 Hz) at 0x7f905c1ac790>)>)])