トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

ソフトウェアの説明

Last-modified: 2021-02-04 (木) 16:36:10 (1177d)
Top / ソフトウェアの説明

NIC-Top に戻る

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/ にある。

観測用コマンド

観測者が直接使うようなもの

  • Lo [bash]
  • TL [= Lo]
  • DL [sh]
    • DL_offset [sh](2012/10/05追加)
  • PLo [bash]
  • PTL [= PLo]

    これらについては基本マニュアルを参照のこと。
    (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変更) シャッターを動かすとき、モータの電源を入れたり切ったりするように変更した。
    (2019/05/18加筆) シャッターをリニアドライブで駆動するように変更したが、ソフトウェアの使い方としては同じはず。

  • darkshutter.py [python]

    シャッターを対話的に動かすコマンド。 最初にリニアドライブの電源をONにし、指定した位置にシャッターを動かす。TLでテスト撮像をしながらシャッターの位置を調整する。ノイズ対策のため、終了したら自動的に電源を切る。 内部で ipmint.sh、shutter、TL を呼んでいる。 DS9 が立ち上がって撮像の準備ができている状態で使う。

    	  darkshutter.py (close にする場合: デフォルト)
    	  darkshutter.py -o  または  darkshutter.py --open (open にする場合)
    	  darkshutter.py -p  または  darkshutter.py --pol (pol にする場合)

    と打てば、電源が投入され、10秒待つよう促される。待っていれば TL 3 3 が走る。 コンソール画面の指示に従って 'o' 'p' 'o 400' などを入れ、どちら側にどれだけ動かすかを指定する。 数字を省けばデフォルトで200ステップ動く。'open' 'close' 'init' 'pol' と打ってもいい。 問題なければ 'q' を押して終了する。(リニアドライブの電源が自動的にOFFになる)

  • 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 を動かした場合には対応していない。

観測支援コマンド[ 保管場所 /home/nicop/bin ]

  • xyoffset [sh]

    画像上での星の座標を入力して、オフセット量を決め、望遠鏡を動かす

    xyoffset [-i] x移動前  y移動前  x移動後 y移動後
    • 18/05/09 視野がNorth-up ではないときにも対応。xyoffset2, xyoffset3も。
    • 21/02/04 -i オプションを入れると、オフセット実行前に実行するかを対話的に確認する。xyoffset2, xyoffset3も。
  • xyoffset2 [sh]

    画像上での星の座標をクリックで取得し、オフセット量を計算し望遠鏡を動かす

    xyoffset2 [-i] (enter) : 引数なし
    ds9上でカーソルが点滅ドーナツになるので、始点、終点をクリックすると自動的にオフセットが入る。
    xpaget ds9 imexam coordinate  を利用した。
    参照: http://hea-www.harvard.edu/saord/ds9/ref/xpa.html#imexam
  • xyoffset3 [sh]

    起点はクリックで、行き先は座標入力で与える。セルフガイドのときなどに使う

      xyoffset3 [-i] x移動後 y移動後
  • fin, fin2 [sh]

    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]

    NICの偏光モードで星を導入するときに使う。

    PolReg (偏光窓位置を表示)と終了音(fin)を組み合わせたもの。
    偏光観測モードで、
    TL 3 10; finpol  などとして使う
  • BadPix?.sh [sh]

    ds9に、既知のバッドピクセル位置を表示する。ただし、これで表示されないバッドピクセルがあるかもしれないので注意。

  • autofocus [sh]

    FWHM を測って、最良フォーカス位置を求めるプログラム

    • 天体をds9に表示させた状態で、以下のコマンドを実行。FWHMを測る星をds9上でクリックする。
       autofocus exp_time band focus_start focus_end [num_sample]
       (例)autofocus 3 j -5.5 -5.4 5
    • この例では、ファーカス-5.5 から -5.4 までを 5段階で変えて、3秒露出テスト撮像し、jバンドのベストフォーカスを求め、その位置に副鏡を移動させる。
    • 条件 focus_start < focus_end num, num_sample >= 3
    • num_sample は省略可。その場合は5分割される。
    • 入力されたピクセル座標の +/- 30 pix のS/N>5 の点源が検出される。複数検出された場合は、フラックスが最大のものを選ぶ。星が密なところは避けたほうが無難。
      • それでも誤検出がある。表示されるメッセージやグラフを見ておくこと。
    • フォーカス移動はたまに失敗することがあるので、UCCの画面で確認すること。
    • 下請けプログラム getfwhm.sh が、sextractor で天体を検出し、fwhm を求めている。
  • ds9set [sh] [ 保管場所 /home/nicop/bin ]

    ds9 の画像をJHK横並び、zscale で表示させるプログラム。 まず ds9 に画像を表示させ、ウィンドウを好みの大きさにしてから

     ds9set 

    とする。



以下のコマンドは観測者が直接使うことはないと思われる

望遠鏡操作関連コマンド

  • 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関連コマンド

  • 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を使っている場合でないと意味がない。

クロックパターンのバイナリファイルを作るためのコマンド

  • 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/ を参照。

画像読み出しのための、クロックパターン作成と実行に関するコマンド

  • 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ファイル作成に関するコマンド

  • 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画像の引き算や割り算に使う。

モーター制御関連コマンド

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/ にある

    • モーター電源を入れる
       motion dout 1 
    • モーター電源を切る
       motion dout 0
  • 2012/05の変更に伴い、使ってはいけなくなったコマンド
    • motion_start [C]

      CmdBuffer?を指定して動作を開始する。

  • motion_status [C]

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

  • motion_setdata [C]

    モーター動作をCmdBuffer?に書き込むプログラム。 わからないまま使うべきではない。

その他のコマンド

  • 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

    引数は夕方の日付。基本マニュアル 参照。

  • datacopy_all.sh [sh]

    すべての未バックアップ画像をRAIDにコピーする

     datacopy_all test|exe

    引数の意味は sysbackup.sh と同じ

  • sysbackup.sh [sh]

    制御PC の /data/, /mnt/ 以外を RAID にバックアップする。rsync 使用

    • テスト(rsync -n オプション=リストだけ表示して転送はしない)するとき
        sysbackup.sh test
    • 実行するとき
        sysbackup.sh exe

/usr/local/nic/ にあるファイル

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

変更履歴

  • 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を追加
  • 20121107 高橋: autofocus を追加
  • 20130130 高橋: sysbackup.sh を追加
  • 20130330 高橋: BadPix?.reg, xyoffset3 を追加
  • 20131030 高橋: datacopy_all.sh を追加(コマンドを作ったのはもっと前)
  • 20190518 斎藤: darkshutter.py を追加