Staff/obs-commander
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
| LANG NOT FOUND ]
開始行:
[[Staff]]
スクリプト観測ソフト"Nayuta Obs-Commander" の説明です。~
現時点 (2022年5月)では NICにのみ対応。
* obs-commander に向いている観測 [#a7d7d193]
- ポインティングの精度を求めない(視野に入っていればいい...
- 露出時間も含めて観測のやり方が決まっている観測
- 同じ設定の観測を、何天体も繰り返すタイプの観測
-- 具体的には共同利用の継続観測やJ-GEM follow up など。
- night-plan mode を使うことで、異なる種類の観測も連続し...
* はじめかた [#i93cdaae]
- %%obs1b%% obs3 でブラウザを立ち上げ http://192.168.42.1...
-- 42系のマシンであればどこからでもアクセスできるが、現時...
- ブラウザに操作画面が表示されなければ、%%obs1b%% obs3で...
@obs3:$ systemctl --user restart obscmdr
// @obs3:$ setup_obscmdr
- スクリプトを走らせる前に、ucc_run「観測準備」、各装置の...
-- ローテータの設定やフォーカス合わせもスクリプト化できる...
- NICの場合
-- ucc_run で「赤外線撮像観測」の観測準備を実行、エンクロ...
-- nicpc にログインし、ds9立ち上げ & テスト撮像 (e.g., TL...
-- @obs3: nayuta -sc 0 でローテータの同期設定をしておく(...
-- フォーカス合わせをしておくのが無難(スクリプト化もでき...
- MALLSの場合
-- ucc_run で「可視光分光観測」の観測準備を実行、エンクロ...
-- obs3 で mls -t 1 を実行して、カメラ制御できることを確認
-- msv にログインして msv --connect を実行しておく
-- 「分光器制御」ソフトは「通常モード」で立ち上げておく
--- フラットの電圧だけは手動 (GUI) で設定しておく
-- フォーカス合わせをしておくのが無難(スクリプト化もでき...
* Simple Mode の使い方 [#jb1ac1b9]
1種類の観測(1つのスクリプト)を実行するモード。
** 観測方法 [#v0c5df43]
+ トップページで、
-- 観測スクリプトを新規作成する場合は、[Create new obs] ...
-- 既存スクリプトを使う場合は、リストから選び、[View] ボ...
+ スクリプト編集画面の"Commands" 欄に、コマンドを記入する。
-- 実行開始行番号を "Run from line #" に続く欄に記入し、[...
+ ステータス画面に、進捗状況が表示される。
- 実行を途中で止めたい場合は、以下のいずれかのボタンを押...
-- [QSTOP]: 現在実行中の行が完了するまで待ち、次の行には...
-- [RSTOP]: 現在、観測繰り返しコマンド repobs を使ってい...
-- [XSTOP]: 現在の露出が終わるまで待ち、次の露出は行わな...
-- [QKILL]: バックグラウンドで走っているqobs というプログ...
- 例えば、以下のスクリプトの10行目(「60秒露出10点ディザ...
line 10: repobs nic "DL 83 60 starA 10 10" --num 20
line 11: pinpoint nic starB
-- QSTOP を押すと、10行目のコマンドが完了する(つまり、"D...
-- RSTOP を押すと、20回中7回目の"DL 83 60 starA 10 10"が...
-- XSTOPを押すと、10回中3回目の60秒露出が終わるまで実行さ...
** スクリプトの書き方 [#y6df12df]
- 観測スクリプト"NIC samples" にサンプルがあります。
- 基本的にはただのシェルスクリプト。
- obs3上で実行できるコマンドが使える。(コマンドは obs3上...
- 原則は1行に1コマンドずつ並べる。
-- セミコロン(;) で複数のコマンドを並べたり、パイプ(|) を...
- 行の先頭に '#' を書くと、コメントアウトされる(その行は...
- %%現時点 (2022年8月)では、''コンマ (,) を含むコマンド (...
- 一番簡単な例(ポインティングと露出)
pinpoint nic HD125184
instcmd nic "DL 3 4 HD12584 10 10"
-- 2行目の 'instcmd' は、装置PC(nicpc等)にコマンドを送...
- いったんスクリプトを止めるポイントをつくるとき(例えば...
pinpoint nic HD125184
qstop
instcmd nic "DL 3 4 HD12584 10 10"
-- この例だと、obs-commander を使う意味がほとんどないが...
- 対話プロセスがあるコマンドは原則使わない(返答できない...
-- DS9 クリックはできるかもしれないが..
* Night-Plan Modeの使い方 [#x8a686d0]
複数種類の観測を連続して実行できるモード。
- 現時点 (2023年10月) では、NICまたはMALLS「どちらか」に...
** 概念の説明 [#rdd01b83]
- recipe: 1つの天体の観測についての情報(天体名、観測可能...
- program: recipe をグループ分けするためのラベル。同じpro...
- night-plan: 1晩の観測計画。複数の recipeの集合。基本的...
** 基本の観測方法(自分の plan の観測) [#de99eb43]
- obs-commander トップページで "Night-Plan Mode"タブを選...
- 観測する plan の &color(white,blue){ View }; ボタンを押...
- View options から、使用する装置 (NIC or MALLS) を選んで...
- Status が 'None' の recipeが有効(条件があえば観測され...
-- 観測を有効化したい場合、そのrecipe行の &color(white,bl...
-- 一時的に除外したいrecipe がある場合は、そのrecipe行の...
-- ページの下のほう、&color(white,gray){"Enable all"}; ボ...
- ページの下のほう、&color(white,gray){"Reset obs UTs for...
- 現在観測可能な recipe の 天体名 と Obs. UT は太字で表示...
- recipe 一覧表の直下、&color(white,green){"Start night-p...
-- "Wait and ask before starting the next recipe." にチ...
-- 現在観測可能で priority が高いものから観測されていく
-- 同じ priority なら、観測可能な時間が短いものから先に...
- 観測が始まった recipe は status列に&color(red){ 'starte...
-- 実行中 recipe の詳しいステータスを見たいときは &color(...
- 観測を止めるときは、
-- &color(black,orange){Stop next recipe}; を押すと、現在...
-- &color(black,orange){Stop next exposure}; を押すと、現...
--- あるいは、recipe の詳細ステータスページで、 &color(bl...
- night-plan 実行中でも、(実行中recipe以外は)recipe の...
** recipe の作り方 [#p1e29f28]
- night-plan ページ 左上 &color(white,blue){ Create a new...
- recipe 編集ページで必要事項を入力、選択する
-- Observable (Active) UT: この recipe が観測可能な (acti...
-- Priority: recipe の 優先度。''数字が大きいほど優先度が...
-- Script: [[simple mode のスクリプトの書き方>#y6df12df]]...
- recipe 編集が終わったら、 &color(white,gray){ Save }; ...
- &color(white,gray){ Export to another night-plan }; を...
- &color(white,green){ Run this recipe only }; を押すと...
** 共有 recipeの登録・実行 [#a7fb570b]
- 継続観測(共同利用、内部)やOISTER観測など、''複数の観...
- 観測方法
-- 共有 recipeしか観測しない場合: "SharedRecipes"内で実行...
-- 自分の plan に組み込んで観測したい場合: 自分の planに ...
* 高度な使い方 [#b70fb613]
- repobs (指定コマンドを繰り返すコマンド)など [[自動化...
-- UT15時までstarAを観測し、次に starBが沈むまで観測する例
pinpoint nic starA
repobs nic "DL 3 2 starA 10 10" --ut 15:00
pinpoint nic starB
repobs nic "DL 3 2 starB 10 10" --el 20
- 観測スクリプトの中で変数を使う。
-- qvar コマンドで変数名とその値を設定し、スクリプト中で ...
gvar --set objname=star123
pinpoint nic @{objname}
instcmd nic "Lo 3 2 @{objname}"
--- 空白を含む値を入れると、意図しない挙動をするかもしれ...
-- exptime4sn コマンドが推奨する露出時間は、@{autoexp} で...
gvar --set xpix=640 ypix=580
pinpoint nic starA -xy @{xpix} @{ypix}
exptime4sn nic 500 -xy @{xpix} @{ypix}
instcmd nic "Lo 3 @{autoexp} starA"
-- (参考1) $HOME, $PATH など、システムで設定されている環...
echo $HOME
echo $PATH
-- (参考2) 以下のように export コマンドでシェルの変数を...
export objname=star123; echo $objname
echo $objname
実行結果
(1行目) >> star123
(2行目) >>
- fulautofocus, exptime4sn でグラフを表示する -d オプショ...
fulautofocus nic
fulautofocus nic -D &
exptime4sn nic 200 -xy 335 760
exptime4sn nic 200 -D &
-- Dオプション時、第1、第2引数の意味はないが、引数・オプ...
* トラブルシュート [#gc67b9d0]
- pinpoint コマンド等で、 X Window が表示されるべき時に、...
-- --> おそらく obs2等、他のPCに表示されている。%%obs1bで...
@obs3:$ restart_obscmdr
ダメなら
@obs3:$ setup_obscmdr
- %%obs3 以外の端末で、obs-commander を使うとき%% (2023年...
-- 端末からsshでobs3にログインし、
@obs3:$ killall ds9
@obs3:$ setup_obscmdr
-- obs-commander で test-shell を実行し、ds9他 x-window...
* 管理者向け情報 [#w100ddda]
- obs-commander の出力を見たいとき
@obs3:$ screen -ls
で obscmdr というセッションがあることを確認.
@obs3:$ screen -r obscmdr
でセッションにattach。これでステータスを見れる。detach す...
- service の status を見る
systemctl --user status obscmdr
- service のユニットファイル
~/.config/systemd/user/obscmdr.service
中身:
[Unit]
Description = obs-commander daemon
[Service]
ExecStart = /usr/bin/screen -d -m -S obscmdr /home/nhao/...
Restart = always
Type = forking
Environment = "DISPLAY=:1"
[Install]
WantedBy = default.target
- ユニットファイルを更新したときは
systemctl --user daemon-reload
systemctl --user restart obscmdr
- crontab の設定
-- 以下はダメっぽいので、とりあえずコメントアウト
20 16 * * * /usr/bin/systemctl --user restart obscmdr
-- systemctl で Restart = always としたのでcronab は不要?
- obscmdr が使う python パッケージは仮想環境でインストー...
. /home/nhao/bin/autoobs/venv/bin/activate
として仮想環境を有効化してから pip でインストールする。そ...
systemctl --user restart obscmdr
* 改善したいこと [#wba35481]
- status 画面のスクリプト欄をスクロールテーブル化(長くな...
- %%観測実行中にスクリプトを編集できるようにする%% (済)
- [[ここ>https://www.sejuku.net/blog/25316]]を参考に、sta...
-- %%Ajax はうまくいかなかったので、iframe を使う方法を試...
--- iframe は古いやり方らしいので、Ajax をもう一度試す?
- insert above/below ボタンも作る
- running command を csv ではなく sqlなどで管理?
-- コンマ入りコマンドにも対応。
-- 終了時刻なども表示できるように
- %%コマンドに "-" (ハイフン)が入っていると、GUIでrepla...
** night-plan mode [#b165fa38]
- %%obs UT を自動設定%%(済み)
-- %%太陽系外天体%%(済み)
-- %%太陽系天体%%(済み)
- %%"Reset UTs for all" ボタン%%(済み)
- %%recipe を違う plan に export するボタン%% (済み)
- %%「次の recipe 実行前に qaskする」 をオプション化%% (...
- 同種の recipe を一括作成するボタン
- %%"Add J-GEM recipes" ボタン%%(済み)
- %%"Delete/Disable/Enable/Export program" ボタン %%(済...
- %%plan 実行中であることをわかりやすくする(flush の色を...
- %%plan内の天体を hskymon に表示するボタン%%(済み)
- 「たぶん次に行う recipe」 を色分けして表示
- %%各 nightplan ページに表示される recipe の順番を任意に...
- 一晩の観測スケジュール予想を表示(難しい)
- %%現在、観測可能な天体 (recipe) を区別 (UTs を太文字で?...
- script maker
-- NIC: ある程度済み。詳細オプションを加える
-- MALLS: 未
- night-plan 実行後に"latest status"ページからスクリプト...
終了行:
[[Staff]]
スクリプト観測ソフト"Nayuta Obs-Commander" の説明です。~
現時点 (2022年5月)では NICにのみ対応。
* obs-commander に向いている観測 [#a7d7d193]
- ポインティングの精度を求めない(視野に入っていればいい...
- 露出時間も含めて観測のやり方が決まっている観測
- 同じ設定の観測を、何天体も繰り返すタイプの観測
-- 具体的には共同利用の継続観測やJ-GEM follow up など。
- night-plan mode を使うことで、異なる種類の観測も連続し...
* はじめかた [#i93cdaae]
- %%obs1b%% obs3 でブラウザを立ち上げ http://192.168.42.1...
-- 42系のマシンであればどこからでもアクセスできるが、現時...
- ブラウザに操作画面が表示されなければ、%%obs1b%% obs3で...
@obs3:$ systemctl --user restart obscmdr
// @obs3:$ setup_obscmdr
- スクリプトを走らせる前に、ucc_run「観測準備」、各装置の...
-- ローテータの設定やフォーカス合わせもスクリプト化できる...
- NICの場合
-- ucc_run で「赤外線撮像観測」の観測準備を実行、エンクロ...
-- nicpc にログインし、ds9立ち上げ & テスト撮像 (e.g., TL...
-- @obs3: nayuta -sc 0 でローテータの同期設定をしておく(...
-- フォーカス合わせをしておくのが無難(スクリプト化もでき...
- MALLSの場合
-- ucc_run で「可視光分光観測」の観測準備を実行、エンクロ...
-- obs3 で mls -t 1 を実行して、カメラ制御できることを確認
-- msv にログインして msv --connect を実行しておく
-- 「分光器制御」ソフトは「通常モード」で立ち上げておく
--- フラットの電圧だけは手動 (GUI) で設定しておく
-- フォーカス合わせをしておくのが無難(スクリプト化もでき...
* Simple Mode の使い方 [#jb1ac1b9]
1種類の観測(1つのスクリプト)を実行するモード。
** 観測方法 [#v0c5df43]
+ トップページで、
-- 観測スクリプトを新規作成する場合は、[Create new obs] ...
-- 既存スクリプトを使う場合は、リストから選び、[View] ボ...
+ スクリプト編集画面の"Commands" 欄に、コマンドを記入する。
-- 実行開始行番号を "Run from line #" に続く欄に記入し、[...
+ ステータス画面に、進捗状況が表示される。
- 実行を途中で止めたい場合は、以下のいずれかのボタンを押...
-- [QSTOP]: 現在実行中の行が完了するまで待ち、次の行には...
-- [RSTOP]: 現在、観測繰り返しコマンド repobs を使ってい...
-- [XSTOP]: 現在の露出が終わるまで待ち、次の露出は行わな...
-- [QKILL]: バックグラウンドで走っているqobs というプログ...
- 例えば、以下のスクリプトの10行目(「60秒露出10点ディザ...
line 10: repobs nic "DL 83 60 starA 10 10" --num 20
line 11: pinpoint nic starB
-- QSTOP を押すと、10行目のコマンドが完了する(つまり、"D...
-- RSTOP を押すと、20回中7回目の"DL 83 60 starA 10 10"が...
-- XSTOPを押すと、10回中3回目の60秒露出が終わるまで実行さ...
** スクリプトの書き方 [#y6df12df]
- 観測スクリプト"NIC samples" にサンプルがあります。
- 基本的にはただのシェルスクリプト。
- obs3上で実行できるコマンドが使える。(コマンドは obs3上...
- 原則は1行に1コマンドずつ並べる。
-- セミコロン(;) で複数のコマンドを並べたり、パイプ(|) を...
- 行の先頭に '#' を書くと、コメントアウトされる(その行は...
- %%現時点 (2022年8月)では、''コンマ (,) を含むコマンド (...
- 一番簡単な例(ポインティングと露出)
pinpoint nic HD125184
instcmd nic "DL 3 4 HD12584 10 10"
-- 2行目の 'instcmd' は、装置PC(nicpc等)にコマンドを送...
- いったんスクリプトを止めるポイントをつくるとき(例えば...
pinpoint nic HD125184
qstop
instcmd nic "DL 3 4 HD12584 10 10"
-- この例だと、obs-commander を使う意味がほとんどないが...
- 対話プロセスがあるコマンドは原則使わない(返答できない...
-- DS9 クリックはできるかもしれないが..
* Night-Plan Modeの使い方 [#x8a686d0]
複数種類の観測を連続して実行できるモード。
- 現時点 (2023年10月) では、NICまたはMALLS「どちらか」に...
** 概念の説明 [#rdd01b83]
- recipe: 1つの天体の観測についての情報(天体名、観測可能...
- program: recipe をグループ分けするためのラベル。同じpro...
- night-plan: 1晩の観測計画。複数の recipeの集合。基本的...
** 基本の観測方法(自分の plan の観測) [#de99eb43]
- obs-commander トップページで "Night-Plan Mode"タブを選...
- 観測する plan の &color(white,blue){ View }; ボタンを押...
- View options から、使用する装置 (NIC or MALLS) を選んで...
- Status が 'None' の recipeが有効(条件があえば観測され...
-- 観測を有効化したい場合、そのrecipe行の &color(white,bl...
-- 一時的に除外したいrecipe がある場合は、そのrecipe行の...
-- ページの下のほう、&color(white,gray){"Enable all"}; ボ...
- ページの下のほう、&color(white,gray){"Reset obs UTs for...
- 現在観測可能な recipe の 天体名 と Obs. UT は太字で表示...
- recipe 一覧表の直下、&color(white,green){"Start night-p...
-- "Wait and ask before starting the next recipe." にチ...
-- 現在観測可能で priority が高いものから観測されていく
-- 同じ priority なら、観測可能な時間が短いものから先に...
- 観測が始まった recipe は status列に&color(red){ 'starte...
-- 実行中 recipe の詳しいステータスを見たいときは &color(...
- 観測を止めるときは、
-- &color(black,orange){Stop next recipe}; を押すと、現在...
-- &color(black,orange){Stop next exposure}; を押すと、現...
--- あるいは、recipe の詳細ステータスページで、 &color(bl...
- night-plan 実行中でも、(実行中recipe以外は)recipe の...
** recipe の作り方 [#p1e29f28]
- night-plan ページ 左上 &color(white,blue){ Create a new...
- recipe 編集ページで必要事項を入力、選択する
-- Observable (Active) UT: この recipe が観測可能な (acti...
-- Priority: recipe の 優先度。''数字が大きいほど優先度が...
-- Script: [[simple mode のスクリプトの書き方>#y6df12df]]...
- recipe 編集が終わったら、 &color(white,gray){ Save }; ...
- &color(white,gray){ Export to another night-plan }; を...
- &color(white,green){ Run this recipe only }; を押すと...
** 共有 recipeの登録・実行 [#a7fb570b]
- 継続観測(共同利用、内部)やOISTER観測など、''複数の観...
- 観測方法
-- 共有 recipeしか観測しない場合: "SharedRecipes"内で実行...
-- 自分の plan に組み込んで観測したい場合: 自分の planに ...
* 高度な使い方 [#b70fb613]
- repobs (指定コマンドを繰り返すコマンド)など [[自動化...
-- UT15時までstarAを観測し、次に starBが沈むまで観測する例
pinpoint nic starA
repobs nic "DL 3 2 starA 10 10" --ut 15:00
pinpoint nic starB
repobs nic "DL 3 2 starB 10 10" --el 20
- 観測スクリプトの中で変数を使う。
-- qvar コマンドで変数名とその値を設定し、スクリプト中で ...
gvar --set objname=star123
pinpoint nic @{objname}
instcmd nic "Lo 3 2 @{objname}"
--- 空白を含む値を入れると、意図しない挙動をするかもしれ...
-- exptime4sn コマンドが推奨する露出時間は、@{autoexp} で...
gvar --set xpix=640 ypix=580
pinpoint nic starA -xy @{xpix} @{ypix}
exptime4sn nic 500 -xy @{xpix} @{ypix}
instcmd nic "Lo 3 @{autoexp} starA"
-- (参考1) $HOME, $PATH など、システムで設定されている環...
echo $HOME
echo $PATH
-- (参考2) 以下のように export コマンドでシェルの変数を...
export objname=star123; echo $objname
echo $objname
実行結果
(1行目) >> star123
(2行目) >>
- fulautofocus, exptime4sn でグラフを表示する -d オプショ...
fulautofocus nic
fulautofocus nic -D &
exptime4sn nic 200 -xy 335 760
exptime4sn nic 200 -D &
-- Dオプション時、第1、第2引数の意味はないが、引数・オプ...
* トラブルシュート [#gc67b9d0]
- pinpoint コマンド等で、 X Window が表示されるべき時に、...
-- --> おそらく obs2等、他のPCに表示されている。%%obs1bで...
@obs3:$ restart_obscmdr
ダメなら
@obs3:$ setup_obscmdr
- %%obs3 以外の端末で、obs-commander を使うとき%% (2023年...
-- 端末からsshでobs3にログインし、
@obs3:$ killall ds9
@obs3:$ setup_obscmdr
-- obs-commander で test-shell を実行し、ds9他 x-window...
* 管理者向け情報 [#w100ddda]
- obs-commander の出力を見たいとき
@obs3:$ screen -ls
で obscmdr というセッションがあることを確認.
@obs3:$ screen -r obscmdr
でセッションにattach。これでステータスを見れる。detach す...
- service の status を見る
systemctl --user status obscmdr
- service のユニットファイル
~/.config/systemd/user/obscmdr.service
中身:
[Unit]
Description = obs-commander daemon
[Service]
ExecStart = /usr/bin/screen -d -m -S obscmdr /home/nhao/...
Restart = always
Type = forking
Environment = "DISPLAY=:1"
[Install]
WantedBy = default.target
- ユニットファイルを更新したときは
systemctl --user daemon-reload
systemctl --user restart obscmdr
- crontab の設定
-- 以下はダメっぽいので、とりあえずコメントアウト
20 16 * * * /usr/bin/systemctl --user restart obscmdr
-- systemctl で Restart = always としたのでcronab は不要?
- obscmdr が使う python パッケージは仮想環境でインストー...
. /home/nhao/bin/autoobs/venv/bin/activate
として仮想環境を有効化してから pip でインストールする。そ...
systemctl --user restart obscmdr
* 改善したいこと [#wba35481]
- status 画面のスクリプト欄をスクロールテーブル化(長くな...
- %%観測実行中にスクリプトを編集できるようにする%% (済)
- [[ここ>https://www.sejuku.net/blog/25316]]を参考に、sta...
-- %%Ajax はうまくいかなかったので、iframe を使う方法を試...
--- iframe は古いやり方らしいので、Ajax をもう一度試す?
- insert above/below ボタンも作る
- running command を csv ではなく sqlなどで管理?
-- コンマ入りコマンドにも対応。
-- 終了時刻なども表示できるように
- %%コマンドに "-" (ハイフン)が入っていると、GUIでrepla...
** night-plan mode [#b165fa38]
- %%obs UT を自動設定%%(済み)
-- %%太陽系外天体%%(済み)
-- %%太陽系天体%%(済み)
- %%"Reset UTs for all" ボタン%%(済み)
- %%recipe を違う plan に export するボタン%% (済み)
- %%「次の recipe 実行前に qaskする」 をオプション化%% (...
- 同種の recipe を一括作成するボタン
- %%"Add J-GEM recipes" ボタン%%(済み)
- %%"Delete/Disable/Enable/Export program" ボタン %%(済...
- %%plan 実行中であることをわかりやすくする(flush の色を...
- %%plan内の天体を hskymon に表示するボタン%%(済み)
- 「たぶん次に行う recipe」 を色分けして表示
- %%各 nightplan ページに表示される recipe の順番を任意に...
- 一晩の観測スケジュール予想を表示(難しい)
- %%現在、観測可能な天体 (recipe) を区別 (UTs を太文字で?...
- script maker
-- NIC: ある程度済み。詳細オプションを加える
-- MALLS: 未
- night-plan 実行後に"latest status"ページからスクリプト...
ページ名: