[[NIC-Top]] に戻る
nic_software.txt
NICコマンド類の説明
20110730 禅野
20120502 高橋: calfocus.sh を追加
NICの操作コマンドはほぼすべて /usr/local/nic/bin/ に入れてある。
それらについて簡単に解説してみる。
NICの操作コマンドを使うには、次の2点が設定されていなければならない。
1. 環境変数 PATH に /usr/local/nic/bin を含める。
2. 環境変数 NIC_DEF_FILE を設定する。現在は
NIC_DEF_FILE=/usr/local/nic/nic.def
でなければならない。
(NIC制御PCにユーザ nicop でログインする場合は ~/.bash_profile
で設定するようにしてある)
コマンド名の後ろに [sh] とかあるのは、コマンドファイルの種類を示している。
[sh]: sh スクリプト。
[bash]: bash スクリプト。
[tcl]: Tcl スクリプト。
[perl]: Perl スクリプト
[C]: C言語で書かれたソースをコンパイルしてできたバイナリ。
[= Lo]: Lo というコマンドへのシンボリックリンクであることを示す。
C言語のソースは ~/src/ にある。
*** 観測用コマンド [#w4123880]
観測者が直接使うようなもの
Lo [bash]
TL [= Lo]
DL [sh]
PLo [bash]
PTL [= PLo]
これらについては観測マニュアルを参照のこと。
xstop [sh]
データ取得コマンド(Loなど)の実行を中止したい場合に
このコマンドを使う。引数なし。このコマンドは
単に「止まってね」という目印をつけるだけなので
その目印をまじめにチェックしてるコマンドしか
止まらない。
cg3_init [sh]
COGITO3(VMEラック)の電源を入れた直後はこのコマンドを
実行してCOGITO3を初期化する。引数なし。
中身は、単に簡単なクロックパターンを走らせるだけ。
shutter [sh]
シャッターを動かすコマンド。
shutter open
shutter close
shutter pol
と使う。単に shutter とすると現在位置を表示する。
現在位置はステータスファイル /usr/local/nic/shutter.status
に書かれている。
モータードライバの電源を切ったままこのコマンドを使うと
ステータスファイルの中身と実際とが食い違うことになる。
この場合、明らかに現在位置がわかっていれば、
shutter -set open
などとして、ステータスファイルだけを更新することができる。
シャッターが中途半端な位置で止まったりした場合は
shutter -init
とした上で
shutter open
などとする。
pol [sh]
半波長板を動かすコマンド。
観測者が使うのは
pol in
pol out
で、半波長板を出し入れするときだけと思われる。
半波長板を回転させるためには
pol 0
pol 225
pol 450
pol 67.5
などとするが、これらは普通、偏光観測用のスクリプト(PLo, PTL)
から呼ばれる。
ステータスファイルは /usr/local/nic/pol.status
shutter 同様に -set オプションなどが使える。
pol -h
でヘルプが表示される。
counter_check [sh]
現在の画像保存ディレクトリ名と、次の画像ファイルにつけられる
番号を表示する。引数なし。
counter_set [sh]
次の画像ファイルにつけられる番号を手動で設定する。
counter_set 201
とすると、次に Lo や DL で取る画像ファイル名は
j110729_0201.fits などになる。
すでに存在する番号を指定した場合は上書きされるので注意。
datavol [sh]
現在の画像保存ディレクトリの総容量を表示する。引数なし。
dark [sh]
ダークフレームを取るためのスクリプトだが未完成。
disp3 [sh]
引数に番号を指定すると現在の画像保存ディレクトリの中から
その番号のついたFITS画像をds9に表示する。
disp3 18
とすると j110730_0018.fits, h110730_0018.fits,
k110730_0018.fits を表示する。
-d オプションで画像ディレクトリを指定できる。
たぶん使わない。
poldisp [sh]
PTL で偏光の試し撮りをすると、最後に生データのまま
0-45(Q), 22.5-67.5(U) の引き算を行った画像を表示する。
U画像が表示されたあとにQ画像が表示される。
poldisp u
poldisp q
とするとこれらの画像を切り替えて表示できる。
たぶん使わない。
niclean [sh]
作業ディレクトリにある、FITSヘッダ用テンプレートファイル
などを消去する。おかしな情報がFITSヘッダに入ったり、
望遠鏡がヘンな方向を向いたりする場合に使うといいかも
しれない。欲しい情報まで消えるかもしれないので注意。
telescop [sh]
なゆた望遠鏡システムと通信するかどうかを決めるコマンド。
telescop control ... 望遠鏡と通信する。
telescop status ... 望遠鏡情報ファイルだけ読み出す。
telescop off ... なにもしない。
これのステータスファイルは /usr/local/nic/tel.use
基本的には開発者のメンテナンス用コマンド。
focus [sh]
望遠鏡のフォーカスを調節するコマンド。
focus -6.03
などと使う。引数なしで focus とすると現在のフォーカス値を
表示する。
calfocus.sh [sh]
Ishiguro et al. (2011) ドーム温度とフォーカス位置の
依存関係を使って、フォーカス位置の推定値を出す。
ただし、あまり厳密ではない。
calfocus.sh dome_temp(摂氏)
(例) calfocus.sh 12.3
point2 [sh]
望遠鏡を目標にポインティングさせるためのコマンド。
これを使うにはあらかじめ目標リストファイルを作っておく。
リストファイルには
Albireo 2000 19 30 43.38 +27 57 35.0
などと、目標名、分点、RAの時、分、秒、Decの時、分、秒を
空白区切りで書いた行を並べる。(目標名には空白を含められない)
そうしておいて、そのリストファイルの名前と目標名とを指定する。
point2 ~/catalog/my_objlist.txt Albireo
という感じに使う。
point [sh]
これは point2 から呼び出されるが、観測者が直接使ってもよい。
point 2000 19 30 43.38 +27 57 35.0
などと使う。
offset [sh]
望遠鏡をすこしだけ動かすためのコマンド。
offset ra_offset dec_offset
と、RA, Dec のオフセットを、どちらも角度秒で指定する。
telwait [sh]
望遠鏡が指定位置まで到達するのを待つ。引数なし。
現在は RA, Dec どちらも2秒角以内に入るまで待つが
ちょっとゆるすぎる?
変更するにはこの telwait というファイルを直接編集する。
これで待てるのはポインティングするときで、
offset を動かした場合には対応していない。
*** 以下のコマンドは観測者が直接使うことはないと思われる [#k861628d]
*** 望遠鏡操作関連コマンド [#k954e925]
do_point.sh [sh]
point/offsetコマンドの下請けコマンド。
これは望遠鏡非依存で、実際にはさらに
望遠鏡依存の do_point_tel.* を呼び出す。
do_point_tel.nayuta [sh]
なゆた望遠鏡用の point/offset 下請けコマンド。
ここで望遠鏡向けのコマンド文字列を組み立てる。
実際に望遠鏡と通信するのはさらに下請けがやる。
telcontrol [C]
なゆた望遠鏡のUCCコマンドサーバとソケット通信する
プログラム。
nayuta_cmd.sh [sh]
telcontrol コマンドはときどき RESULT=NG で失敗
するので、3回くらい再試行するためのスクリプト。
nayuta_cmd.sh MT CMD OFFSET=ON
という感じで使う。
nayuta_status.sh [sh]
なゆた望遠鏡のステータスのうちキーワードを指定して
その値を得る。
例えば
nayuta_cmd.sh UCC CMD STAT=ENCL
とやると
ALARM=08 00 00
ENC_CTRL_MODE=ASYNC
ENC_REAL_ANG=72.800000
ENC_CMD_ANG_ANS=73.000000
ENC_DRIVE=ON
...
という感じでずらずらとステータスが得られるが、
その中から ENC_REAL_ANG を知りたい場合、
nayuta_status.sh ENCL ENC_REAL_ANG
とすると
72.800000
と表示される。
nayuta_wait.sh [sh]
なゆた望遠鏡の RA, Dec, Focus について、
現在位置が設定値±しきい値以下になるまで待つ。
オプションは ra|dec|focus、しきい値、タイムアウト秒。
タイムアウトを省略すると600秒まで待つ。
nayuta_wait.sh ra 1 60
などと使う。RA, Decの場合のしきい値は角度秒で指定する。
telinfo.sh [sh]
UCCの望遠鏡情報ファイル Telescope.inf を読み出して
FITSヘッダ用のテンプレートファイルを作る。
telinfo_extra.sh [sh]
望遠鏡情報ファイルに入っていない情報で、FITSヘッダに
入れたいものがある場合、個別に値を取ってきてヘッダに
追加するためのスクリプト。
現在は、DOME_FLAT_COUNT を追加している。
ほかにも入れたいキーワードがある場合はこのファイルに
直接記述していく。
*** COGITO3関連コマンド [#kef4927c]
cogito3_reset [sh]
cogito3_start [sh]
cogito3_status [sh]
cogito3_wait [sh]
cogito3_read_cpg [= cogito3_rw_mem]
cogito3_read_prg [= cogito3_rw_mem]
cogito3_read_frma [= cogito3_rw_mem]
cogito3_read_frmb [= cogito3_rw_mem]
cogito3_write_cpg [= cogito3_rw_mem]
cogito3_write_prg [= cogito3_rw_mem]
cogito3_write_frma [= cogito3_rw_mem]
cogito3_write_frmb [= cogito3_rw_mem]
cogito3_rw_mem [sh]
COGITO3を操作するためのコマンド群。
VME-PCI通信用のデバイスドライバを通して
COGITO3を操作する。
以前は btp というデバイスドライバを使っていたが
vmedrv に変更したので書き直した。
引数などは以前と同じ。cogito3_statusだけ少し変更した。
以前のものは ~/doc/old/cg3cntl_bin/ にある。
vmes_io [C]
vmes_mem [C]
cogito3_* コマンドの実体。
vmedrv 付属の vmeslib を使っている。
ソースは ~/src/vmes_rw/
*** クロックパターンのバイナリファイルを作るためのコマンド [#hfbb65d5]
patmake_new [perl]
calcstep [C]
cnm2map.sh [sh]
cpbfill [C]
cpgp2bin [C]
cps2cpi [C]
loopextract.sh [sh]
map2sds.sh [sh]
prgp2bin [C]
prp2exptime [C]
sdsprs2prp.sh [sh]
これらはクロックパターン記述ファイルからクロックパターンの
バイナリファイルを作成する。
詳しくは ~/src/patmake_bin/ を参照。
*** 画像読み出しのための、クロックパターン作成と実行に関するコマンド [#d73c2162]
readout_1_12M.sh [sh]
readout_1_8M.sh [sh]
readout_3_12M.sh [sh]
readout_4_12M.sh [sh]
readout_5_12M.sh [sh]
読み出しモード別の、画像読み出しスクリプト。
クロックパターンをその場で作成し、COGITO3へ転送し、パターンを
走らせる。
pat_make_run [sh]
クロックパターン記述ファイル(.prs)の名前を引数に与えると
クロックパターンのバイナリファイルを作成してCOGITO3へ
転送し、パターンを走らせて、完了するまで待つ。
pat_run [sh]
pat_make_run と同じだがバイナリファイルの作成はせず
すでに存在するバイナリファイルを使う。
cg3_sel_frm [sh]
引数は a または b で、それぞれ FRMA, FRMB という
クロックパターンを走らせる。
cg3_sel_frm b
とすると、観測装置側からは FRM B にアクセスすることになり、
PC側からは FRM A が読み書きできるようになる。
*** 画像データの転送と、FITSファイル作成に関するコマンド [#f23ed9aa]
transfer_data_1_12M.sh [sh]
transfer_data_1_8M.sh [sh]
transfer_data_3_12M.sh [sh]
COGITO3の画像メモリからPCへデータを転送するためのスクリプト。
できあがるのはJHK各バンドのバイナリデータファイル。
makefitsfile.sh [sh]
画像のバイナリファイルからFITSファイルを作るスクリプト。
バイナリファイルをFITSファイルにし、画像を回転させ、
FITSヘッダを書き込む。
makefts [C]
バイナリデータからFITSファイルを作るコマンド。
reordering [C]
検出器のクワドラントを考慮してちゃんとした1枚の画像になるように
ピクセルのデータを並べ直す。入出力ともにFITSファイル。
reorder3 [C]
3バンド同時撮像モードを使った場合、
画像メモリから転送されたバイナリデータはJHKのデータが混ざっている。
それをJHKに分離して、ついでにピクセルの並び替えもやる。
入出力ともにバイナリデータ。
applytemplate [C]
FITSヘッダ用テンプレートファイルを使ってFITSヘッダを書き込む
プログラム。テンプレートとは、ヘッダの内容が1行につき
key = value / comment
という形式で書かれたファイル。詳しくはcfitsioのドキュメントを参照。
imarith [C]
これはcfitsioのexampleからそのまま使っている。
FITS画像の引き算や割り算に使う。
*** モーター制御関連コマンド [#u7f325c0]
Cのソースは ~/src/motor/ にある。
motion_run.sh [sh]
モーター動作定義ファイル /usr/local/nic/motion.def
にしたがって、3つのモーター(シャッター、pol出し入れ、pol回転)
を制御するためのスクリプト。
motion_wait.sh [sh]
モーターの動作が完了するまで待つ。
現在は、3つのモーターを識別することができず、
すべてが動作停止するまで待ってしまう。
motion_register.sh [sh]
モーター動作定義ファイルの内容をモーター制御ボードの
EEPROM (CmdBuffer) に登録するためのスクリプト。
これが何かわからないまま使うべきではない。
motion_setdata [C]
モーター動作をCmdBufferに書き込むプログラム。
わからないまま使うべきではない。
motion_start [C]
CmdBufferを指定して動作を開始する。
motion_status [C]
モーターが動いているかどうかを表示する。
現在は4軸すべてごっちゃにしている。
motion_loopstat [C]
モーターのステータスを表示するプログラム。
これをバックグラウンドでいいから動かしておかないと
モーターが動作しないようだ。不思議。
motioncalcindex.sh [sh]
CmdBufferのアドレスを計算する。
*** その他のコマンド [#m7c51f59]
nextdatafile.sh [sh]
画像ファイルを保存するときに、その名前を連番で作っていく
スクリプト。画像保存ディレクトリの自動作成も行う。
echodate [tcl]
現在時刻をFITSヘッダテンプレート形式で表示する。
とりあえずNIC制御PCの時計を使っている。
ra_print [C]
dec_print [C]
RA, Dec を "+12:34:56.7" といった文字列から
角度秒(arcsec)に変換したり、逆に角度秒から
文字列を作ったりするコマンド。
引数なしで実行すると使い方が表示される。
dither [C]
ディザリング用の、オフセット量を計算するプログラム。
*** /usr/local/nic/ にあるファイル [#x9621a81]
motion.def
nic.def
pol.status
shutter.status
site.def
tel.use
---