トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

ソフトウェアの説明 のバックアップソース(No.1)

[[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


---