6287
Comment:
|
← Revision 43 as of 2023-01-12 11:07:29 ⇥
4657
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
柏PCの使い方 | ~+ KAGRA主データ保管装置の使い方 +~ |
Line 3: | Line 3: |
~+<<TableOfContents(2)>>+~ | |
Line 5: | Line 4: |
= 目的 = kashiwa PCを使用してみんなが快適に解析できるようにできるようにしたい あと環境構築などで詰まったことの備忘録 |
以下では簡単のため、このシステムを柏PCと呼びます。<<BR>> 柏PCを使用してみんなが快適に解析できるようにできるようにしたい。あと環境構築などで詰まったことの備忘録。 |
Line 11: | Line 8: |
~+<<TableOfContents(3)>>+~ |
|
Line 13: | Line 14: |
田越、大原さんあたりの誰かに柏のkagra main systemの利用アカウントが欲しい旨を連絡する。 | [[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=10201|Application for an account of KAGRA Main Storage System]] に従い申請する. |
Line 16: | Line 18: |
主にアカウント発行の際にメールでもらえるguideに沿って行えば良い |
主にアカウント発行の際にメールでもらえるguideに沿って行えば良い。 |
Line 27: | Line 28: |
= kashiwa PCのdefault環境では満足できない方へ = == virtualenv == matplotlibが古すぎてplotがダサくなる方やgwpyのerrorが自身のPCと異なり困る方など向け |
|
Line 31: | Line 29: |
おそらくkashiwaでpython環境構築に使うのが推奨されているのがvirtualenvである | ----- |
Line 33: | Line 31: |
kashiwa PCにログイン {{{ ssh m31-01 }}} 仮想環境の構築(python3.7の部分は好みのversionで良い, 後ろの~/.virtualenvs/new_envの部分も好きなpathに好きな名前で置いても良い) {{{ virtualenv -p python3.6 ~/.virtualenvs/new_env }}} 仮想環境を有効にする {{{ source ~/.virtualenvs/new_env/bin/activate }}} 今後、仮想環境を有効にする際は毎回これを打つ必要があり、面倒くさいので {{{ echo "alias nenv='source ${HOME}/new_env/bin/activate' " >> ${HOME}/.bashrc }}} と打てば、nenvと打つだけで仮想環境を有効にできる 次に仮想環境を有効にした状態でpipを用いてlibraryをinstallする {{{ pip install -U pip setuptools wheel pip install gwpy lalsuite }}} lalsuiteもinstallしないとframe fileが読めないので注意 |
----- = condorの使い方 = |
Line 57: | Line 34: |
gwpyをinstallする時に必要なものはほとんど一緒にinstallされると思うが、他に必要なlibraryがある場合は別途pip installを用いてinstallする | https://git.ligo.org/yuzurihara/commissioning-tools-for-kagra/-/tree/main/script condorのコマンドについては澤田さんのスライドを見てみてください https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=11049 ----- |
Line 73: | Line 57: |
以下のshell scriptを作業用のdirectiryにおく(公開鍵の設定などは済ましていることを前提としている) | 以下のshell scriptを作業用のdirectiryにおく |
Line 75: | Line 59: |
exePath=$(pwd)/$1 exePath=~${exePath#*$(cd ../$(dirname $0); pwd)} |
exePath=$(pwd)/$2 exePath=~${exePath#*$(cd $(dirname $0); cd ../ ;pwd)} |
Line 78: | Line 62: |
ssh-add ~/.ssh/id_rsa | |
Line 82: | Line 65: |
python ${exePath} | $1 ${exePath} |
Line 86: | Line 69: |
ssh-add -D ~/.ssh/id_rsa | |
Line 88: | Line 70: |
公開鍵の設定を済ましておけばかなりリモートで作業を行なってfileを持ち帰るという作業はスムーズになる ----- |
|
Line 93: | Line 78: |
== virtualenvの環境の種類を変えるとframe fileが読めなくなる == | === gwpy 1.0.0 にするとframe fileがtimeseries.readで読めなくなる === |
Line 96: | Line 81: |
$ python test.py | 単一ファイル読み出し(ok) data = TimeSeries.read(['/data/full/12567/K-K1_C-1256700000-32.gwf', '/data/full/12567/K-K1_C-1256700032-32.gwf', '/data/full/12567/K-K1_C-1256700064-32.gwf', '/data/full/12567/K-K1_C-1256700096-32.gwf'], c K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ, start = 1256700000, end = 1256700100, format='gwf.lalframe') |
Line 98: | Line 84: |
単一ファイル読み出し TimeSeries([-522.9516 , -522.9491 , -522.79504, ..., -354.20483, -354.3787 , -354.50488] unit: nm / s, t0: 1247030016.0 s, |
TimeSeries([ 2.24202135e-11, 2.24398064e-11, 2.24622275e-11, ..., -1.91058005e-11, -1.90862017e-11, -1.90661226e-11] unit: dimensionless, t0: 1256700000.0 s, |
Line 104: | Line 90: |
name: K1:CAL-CS_PROC_MICH_DISPLACEMENT_DQ, channel: K1:CAL-CS_PROC_MICH_DISPLACEMENT_DQ) |
name: K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ, channel: K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ) |
Line 107: | Line 93: |
複数ファイル読み出し XLAL Error - XLALFrStreamGetREAL4TimeSeries (LALFrStreamReadTS_source.c:127): End of frame stream while 1114112 points remain to be read XLAL Error - XLALFrStreamGetREAL4TimeSeries (LALFrStreamReadTS_source.c:127): I/O error XLAL Error - XLALFrStreamReadREAL4TimeSeries (LALFrStreamReadTS_source.c:236): Internal function call failed: I/O error XLAL Error - XLALFrStreamGetREAL4TimeSeries (LALFrStreamReadTS_source.c:127): End of frame stream while 589824 points remain to be read XLAL Error - XLALFrStreamGetREAL4TimeSeries (LALFrStreamReadTS_source.c:127): I/O error XLAL Error - XLALFrStreamReadREAL4TimeSeries (LALFrStreamReadTS_source.c:236): Internal function call failed: I/O error XLAL Error - XLALFrStreamGetREAL4TimeSeries (LALFrStreamReadTS_source.c:127): End of frame stream while 65536 points remain to be read XLAL Error - XLALFrStreamGetREAL4TimeSeries (LALFrStreamReadTS_source.c:127): I/O error XLAL Error - XLALFrStreamReadREAL4TimeSeries (LALFrStreamReadTS_source.c:236): Internal function call failed: I/O error Traceback (most recent call last): File "/home/taiki.tanaka/work/PEMInjection/test.py", line 55, in <module> data = TimeSeries.read(sources,channel,format='gwf.lalframe',nproc=2,start=int(gpsstart),end=int(gpsend)) File "/gpfs/home/taiki.tanaka/.virtualenvs/gw/lib/python3.6/site-packages/gwpy/timeseries/core.py", line 314, in read return timeseries_reader(cls, source, *args, **kwargs) File "/gpfs/home/taiki.tanaka/.virtualenvs/gw/lib/python3.6/site-packages/gwpy/timeseries/io/core.py", line 50, in read return io_read_multi(joiner, cls, source, *args, **kwargs) File "/gpfs/home/taiki.tanaka/.virtualenvs/gw/lib/python3.6/site-packages/gwpy/io/mp.py", line 108, in read_multi raise exc |
複数ファイル読み出し(ng) data = TimeSeries.read(['/data/full/12567/K-K1_C-1256700000-32.gwf', '/data/full/12567/K-K1_C-1256700032-32.gwf', '/data/full/12567/K-K1_C-1256700064-32.gwf', '/data/full/12567/K-K1_C-1256700096-32.gwf'], c K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ, start = 1256700000, end = 1256700100, format='gwf.lalframe') |
Line 128: | Line 98: |
python -m pdb *.pyで実行するとerrorが出ず、問題なくframe fileを読める | gwpy0.15.0だとこのエラーは起こらず、1.0.0だと起こる 今のところ1.0.0でこの問題を解決する方法が分からないので、pipでのinstallの際は {{{ pip install gwpy==0.15.0 }}} とすることを勧める。 ちなみに{{{TimeSeriesDict.read}}}なら複数ファイルでも問題なく読めるので、1チャンネルだけのときもこちらを使うようにすれば問題ない。 |
KAGRA主データ保管装置の使い方
以下では簡単のため、このシステムを柏PCと呼びます。
柏PCを使用してみんなが快適に解析できるようにできるようにしたい。あと環境構築などで詰まったことの備忘録。
ちなみにframe fileのデータが欲しいだけなら、Pastaviを使えば良い(宇宙線研のネットワークにつなぐ必要あり)
セットアップ
アカウント申請
Application for an account of KAGRA Main Storage System に従い申請する.
startup
主にアカウント発行の際にメールでもらえるguideに沿って行えば良い。 一応、JGW docにも資料がある
frame fileを読んでみる(python)
環境はdefaultでほとんどできているはずなのでgwpyを使ってframe fileを読んでみる Lecture in Japanese
frame fileを読んで様々なplotを書くためのsample codeやcondor_jobを使ってjobを投げるためのshellなどが豊富にある Kozapy
condorの使い方
https://git.ligo.org/yuzurihara/commissioning-tools-for-kagra/-/tree/main/script
condorのコマンドについては澤田さんのスライドを見てみてください
https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=11049
自身のPC上でprogram編集と結果閲覧を完結したい人向け
自身のpc上のeditorを愛している方や、ネットワークが弱くsshでm31-01にログインした状態で作業するのにストレスがある方向け
自身のpc上に作業用のディレクトリを適当に作る(mkdir以下は当然任意)
mkdir ~/work
作ったdirectoryにcodeを書く
emacs ~/work/test.py . . .
以下のshell scriptを作業用のdirectiryにおく
exePath=$(pwd)/$2 exePath=~${exePath#*$(cd $(dirname $0); cd ../ ;pwd)} rsync -arp --inplace $(cd $(dirname $0); pwd) m31-01:~/ ssh -Y -t -t m31-01 <<EOC source ~/.virtualenvs/new_env/bin/activate $1 ${exePath} exit EOC rsync -arp --inplace m31-01:~/$(basename $(cd $(dirname $0); pwd))/ $(cd $(dirname $0); pwd)
公開鍵の設定を済ましておけばかなりリモートで作業を行なってfileを持ち帰るという作業はスムーズになる
詰まった問題
詰まった問題やこのページの通りやってもうまくいかないことを書き込む
gwpy 1.0.0 にするとframe fileがtimeseries.readで読めなくなる
単一source fileなら読めるが複数source fileを読もうとするとerrorが出る
単一ファイル読み出し(ok) data = TimeSeries.read(['/data/full/12567/K-K1_C-1256700000-32.gwf', '/data/full/12567/K-K1_C-1256700032-32.gwf', '/data/full/12567/K-K1_C-1256700064-32.gwf', '/data/full/12567/K-K1_C-1256700096-32.gwf'], c K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ, start = 1256700000, end = 1256700100, format='gwf.lalframe') TimeSeries([ 2.24202135e-11, 2.24398064e-11, 2.24622275e-11, ..., -1.91058005e-11, -1.90862017e-11, -1.90661226e-11] unit: dimensionless, t0: 1256700000.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) 複数ファイル読み出し(ng) data = TimeSeries.read(['/data/full/12567/K-K1_C-1256700000-32.gwf', '/data/full/12567/K-K1_C-1256700032-32.gwf', '/data/full/12567/K-K1_C-1256700064-32.gwf', '/data/full/12567/K-K1_C-1256700096-32.gwf'], c K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ, start = 1256700000, end = 1256700100, format='gwf.lalframe') RuntimeError: Failed to read /data/full/12470/K-K1_C-1247030016-32.gwf: Internal function call failed: I/O error
gwpy0.15.0だとこのエラーは起こらず、1.0.0だと起こる
今のところ1.0.0でこの問題を解決する方法が分からないので、pipでのinstallの際は
pip install gwpy==0.15.0
とすることを勧める。 ちなみにTimeSeriesDict.readなら複数ファイルでも問題なく読めるので、1チャンネルだけのときもこちらを使うようにすれば問題ない。