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

ソフトウェアの説明 のバックアップ差分(No.13)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[NIC-Top]] に戻る
#contents

NICの操作コマンドはほぼすべて /usr/local/nic/bin/ に入れてある。
それらについて簡単に解説してみる。

NICの操作コマンドを使うには、次の2点が設定されていなければならない。
+ 環境変数 PATH に /usr/local/nic/bin を含める。
+ 環境変数 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]
--DL_offset [sh](2012/10/05追加)
-PLo [bash]
-PTL [= PLo]
>これらについては[[基本マニュアル>基本マニュアル#d347c8f6]]を参照のこと。~
(2012/05変更) fitsヘッダ用の時刻情報を取得するタイミングを変更した。
これまでは、クロックパターンを作製転送実行する前に
取得していたが、クロックパターン実行直後に取得するように
変更した。
したがって、fitsヘッダの時刻情報から、実際に検出器の
最初のピクセルの露出が開始されるまでの時間は、
検出器を空読みする時間(2秒)と考えていいと思う。

-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
などとする。~
(2012/05変更)
シャッターを動かすとき、モータの電源を入れたり切ったりするように変更した。

-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 のオフセットを、どちらも角度秒で指定する。~
(2012/05変更) 望遠鏡をわずかに動かす(offset)とき、RAのオフセット量を
Dec値で補正していたのを補正なしに変更した。
DLコマンドで星が楕円状に動いていたのが丸くなった。

-telwait [sh]
>望遠鏡が指定位置まで到達するのを待つ。引数なし。
現在は RA, Dec どちらも2秒角以内に入るまで待つが
ちょっとゆるすぎる?
変更するにはこの telwait というファイルを直接編集する。
これで待てるのはポインティングするときで、
offset を動かした場合には対応していない。
~~
----------------
以下のコマンドは観測者が直接使うことはないと思われる

* 望遠鏡操作関連コマンド [#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/~
(2012/05変更)~
これは検出器のデータ取得装置(BIT3 + COGITO3)のデータを読み書きするプログラムであるが、
データ転送の際、PIO転送かDMA転送かを選べるように変更した。
環境変数 VME=DMA を設定しておくとDMA転送を行う。
BIT3のモデル618を使っている場合でないと意味がない。


* クロックパターンのバイナリファイルを作るためのコマンド [#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回転)
を制御するためのスクリプト。~
(2012/05変更) motion_server の導入にともなって変更した。

-motion_wait.sh [sh]
>モーターの動作が完了するまで待つ。
現在は、3つのモーターを識別することができず、
すべてが動作停止するまで待ってしまう。~
(2012/05変更) motion_server の導入にともなって変更した。

-motion_register.sh [sh]
>モーター動作定義ファイルの内容をモーター制御ボードの
EEPROM ('CmdBuffer') に登録するためのスクリプト。
これが何かわからないまま使うべきではない。~
(2012/05変更) motion_server の導入にともなって変更した。


-motion_loopstat [C]
>モーターのステータスを表示するプログラム。
これをバックグラウンドでいいから動かしておかないと
モーターが動作しないようだ。不思議。

-motioncalcindex.sh [sh]
>CmdBufferのアドレスを計算する。

-motion_server
-motionc.tcl
-motion        
> (2012/05追加)~
シャッターや半波長板を動かすモータを制御するためのプログラムを
作り直した。
これまでは、motion_start や motion_status などを別個の
プログラムとしていたが、その方式をやめて、
motion_server という1つのプログラムだけが常に制御を担当
するようにした。
これはTCPソケット通信を使ったサーバープログラムになっていて、
motionc.tclというクライアントプログラムからのモータ操作命令を
受け付ける。
motion は motionc.tcl を呼び出すスクリプト。
これまでの motion_start, motion_status, motion_setdata,
motion_dout はもう使ってはいけない。
以前と同じことをしたい場合は例えば
	motion dout 1
などとする。motion_server のソースは ~/src/motor2/ にある

-2012/05の変更に伴い、使ってはいけなくなったコマンド
--motion_start [C]
>CmdBufferを指定して動作を開始する。

--motion_status [C]
>モーターが動いているかどうかを表示する。
現在は4軸すべてごっちゃにしている。

--motion_setdata [C]
>モーター動作を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]
>ディザリング用の、オフセット量を計算するプログラム。

-dither_offset [C]
>(2012/10/05追加[新井])~
既存のオフセット量を加算して、ディザリング用のオフセット量を計算するプログラム。

-getdef.sh 
>(2012/05追加)~
$NIC_DEF_FILE (/usr/local/nic/nic.def)には
いろんなファイル名や変数の定義が書かれているが、
これは sh (シェルスクリプト)形式になっているので、
ほかのプログラミング言語から読み出すときは不便である。~
getdef.sh は、nic.def に書かれている変数の値を調べるスクリプトで、
nic.def を直接調べるのが面倒なときに使うことができる。
例えば
		getdef.sh header_base
とすると
		/dev/shm/header
と $header_base の値が返る。

-polcheck 
>(2012/05追加)~
半波長板の回転ができているかチェックするプログラム。
半波長板を 0度から45度、45度から0度へ回して、
それぞれの時間を表示する。
どちらも 5.2秒くらいかかる。
どちらかが極端に短い時間で終了すると半波長板がちゃんと回っていない。
でもどちらも同じ時間かかったからといって
ちゃんと回ってるとも限らない。
半波長板が見えればいいのに...

-datacopy.sh [sh]
>観測画像ファイルをマウントされたRAIDにコピーする。
  datacopy.sh 120627
引数は夕方の日付。[[基本マニュアル]] 参照。

***観測支援コマンド [#f7e6ca73]

-xyoffset [sh][ 保管場所 /home/nicop/bin ]
>画像上での星の座標を入力して、オフセット量を決める
>画像上での星の座標を入力して、オフセット量を決め、望遠鏡を動かす
 xyoffset x移動前  y移動前  x移動後 y移動後

-xyoffset2 [sh] [ 保管場所 /home/nicop/bin ]
>画像上での星の座標をクリックで取得し、オフセット量を計算し望遠鏡を動かす
 xyoffset2 (enter) : 引数なし
 ds9上でカーソルが点滅ドーナツになるので、始点、終点をクリックすると自動的にオフセットが入る。
 xpaget ds9 imexam coordinate  を利用した。
 参照: http://hea-www.harvard.edu/saord/ds9/ref/xpa.html#imexam

-fin, fin2 [sh]  [ 保管場所 /home/nicop/bin ]
>WORK1のスピーカから「ピンポ〜ン」音を鳴らす。
 ex.1)  DL 3 30 Object 10 10; fin; DL 3 30 Object 10 10;fin2
 ex.2)  pol in; shutter pol; fin2
音はwavファイルであれば再生可能。WORK1にて設定ができる。

- finpol [sh]  [ 保管場所 /home/nicop/bin ]
> NICの偏光モードで星を導入するときに使う。
 PolReg (偏光窓位置を表示)と終了音(fin)を組み合わせたもの。
 偏光観測モードで、
 TL 3 10; finpol  などとして使う

- PolReg.sh [sh] [ 保管場所 /home/nicop/bin ]
> ds9表示に、偏光窓の位置のregionファイルを自動的に表示する。
 偏光観測モードで、
 TL 3 10 ; Polreg などとして使う
--~/ds9reg/jpol.reg, hpol.reg, kpol.reg を利用している
--ds9のFrame番号は、1=J,  2=H, 3=Ks(default設定)になっていること
--通常の偏光観測利用時はdefault
--リンク:
---xpaによるds9のframe制御~
http://hea-www.harvard.edu/RD/ds9/ref/xpa.html#frame
---xpaによるregions制御~
http://hea-www.harvard.edu/RD/ds9/ref/xpa.html#regions



* /usr/local/nic/ にあるファイル [#x9621a81]

-motion.def
-nic.def
-pol.status
-shutter.status
-site.def
-tel.use

* 変更履歴 [#obe130df]
- 20110730  禅野: 新規作成 (nic_software.txt)
- 20120502  高橋: calfocus.sh を追加
- 20120521  高橋: wiki化, 2012/05の変更(nic_software1205.txt)を反映
- 20120628  高橋: datacopy.sh を追加
- 20120912  新井: fin, fin2を追加
- 20120921  新井: PolReg.sh, finpolを追加
- 20121005  新井: DL_offsetを追加
- 20121012  新井: xyoffsetを追加
- 20121103  新井: xyoffset2を追加
---