GILDASの個人的なメモ   
                                                 2008-11-21 更新  by Ray S. Furuya

 GILDASはIRAMを中心とする欧州の電波天文コミュニティで開発された観測準備、
データ解析などのための システムです。 日本ではあ まりなじみがありませんが、柔軟に
スクリプトを組めるた め、使い勝手が良 く、世界の多くの電波 天文台で使われています。
ここでは、マニュアルと 言うよりも、ス クリプトを組むときにヒ ントとなりそうなメモ
を集め
ました。このメモを最初に作成した2003年当時からGILDASは大きな変更がありま
した。新旧両バージョンそれぞれに便利なタスクがあること、加えて筆者(とその周辺)は
両バージョンを使っているため(!?)、このメモでは両バージョンの記述を混在させて い
ますので、適当に読み替えて下さ い。当然このメモは永遠に未完成です、 悪しからず。

              本家IRAMのGILDASのページへ
 

観 測の準備

 ASTRO

 LOVAS
 

GILDAS の環境設定、 その他

  ホーム ディレクトリ下の .gag.dicoを編集。まずは、editorの設定を。

  sys "ls *class" と書けばOSのコマンドラインをGILDASのコマンドラインから実行できる。
 

CLASS へのデータ読み 込み

CSO 10.4-m鏡
 注意: VAX (alpha1)とUNIX(hapuna)のデータ形式の違い。
  入出力ファイルを混同しないこと。

SEST 15-m鏡
 - スペクトル線データ
          観測棟で @sest ifits2class file.name first last
       ビームサイズ、能率部分のヘッダー情報を書き換える必要あり。書き換え後、能率部分
        の数字が変わっていれば、それはTa*ではなくTmbになっているはず。 
   - SIMBAデータ
       simbareadを使用後、MOPSI経由でgdfファイルを得る。MOPSIの項を参照。

IRAM 30-m鏡
 まったく問題なし(あたりま え)
     B_eff = F_eff になっていれば、TA*スケール。 4.7 Jy/K for 30-m

Parkes 64-m鏡
 観測中に(パークスの提供す るソフトで) FITSに書いてしまう。
 それは読めた (2001/2002年夏)、 ただしヘッダー情報は手で書き直す必要あり。
  2002年夏のレポート参照

Medicina 32-m鏡
 パラージさん&リッカルド・ メモ参照

野 辺山45-m鏡
 - スペクトル線データ
        NEWSTARのtask "SPTXT"からヘッダー付で、書き出したデータを変換するスクリプトを
        準備した(1 spectrumか、格子点状に取得されたmulti-spectraデータでの動作は確認。)。
  - BEARSデータ
    最終的なFITSキューブをGRAPFICで読むのがもっとも能率的。
    スペクトルベースでの変換は勧めない。
 
 

CLASS

ファイル操作
 get f <-- find
 file out file.namenew
 sh(ow) fi(le)
 

データの選択
 set telescope "cso 50Mhz"
 set number   1234  5678
 set range  αmin  αmax  δmin  δmax (α方向は東西でなく、文字通りのmin/max値で)
 --> show rangeで確認
                  など。
 データの表示
  x軸の切り替え     set unit f  <----> set unit v など

 
データの選択
  set tel iram-30m-b4*など*の使える
 

複数データの表示
    get i
    pl
    swap  <--- i番目のスペクトルをメモリーへ
    pen 1 <--- j番目は、赤色で表示したければ。
    get j
    spec   <--- 2つ目を表示
 
上と同じことだが、
    memo sp2
    retr sp1
    pen /c 1
    spec
    retre sp2
    pl
ここでmemoはmemory, retreはretreiveとその名の通り。sp?は任意の文字列

複数データを並べて表示したいとき(野辺山用語のプロファイルマップ)、
   stamp
   map
引数は各タスクのhelp参照


データの フラグ(bad scan)
 tag 9 ### <--- フラグすべき番号、フラグモード(ここでは9)についてはヘルプ参照。
 sh quel
 set quel 9

  
ベースラ インを引く
 観測点が多い場合 はスクリプトを 書くべし。引数にはscan番号などを1次元で、offset
位置を二次元
でなどなど自由にとれる。以下に 基本的なコマンドのメモ
 set mode x x1 x2
                t <-- total
                a <-- すべて
 set win スペースで決定
 e (exit)

スペクト ルのリップル除去(FFTして、その成分を除去して逆FFT)
(1) まずはbaseline引いて、表示、
(2) 輝線に対してgauss, fitしておく
(3) fft /rem
カーソル+ k (see help)で除去すべき領域して、Eでquit


スムージング
たとえば、smooth b 4

スペクトルの横軸を速度、周波数両方で表示
set u v f

ある速度 からある速度までの積分強度を 知りたい
 draw で速度 をチェック
 print area  V1 V2
     結果の見方  1,2行目は (Xoffset, Yoffset), 3行目がその点での積分強度
 print area V1 V2 /out file.name <--- ファイルに書き出すとき。

ある速度 からある速度までのモーメントを 知りたい   
 上と同様だが、print mom

観測中のQ-Look、データをざっとチェックするとき
  あ) set nomatch
      sum
      pl で領域全体で積分したスペクトルを見る。
  い)profile mapのマクロでチェックする
  う)書いてる最中のデータを読み込みつつ、データチェックするならば、
      new
      set num  NUM  * など、スキャン毎にすればOK.
 

ガウシャ ンフィット
 gauss
 fit
 res 残差
 pl
 
複数ガウシャンなど当てはめたいとき、制限条件付きの複数ガウシャンフィットは
method Arg (Argの機能はhelp methodを参照)


 
print fit /out filename で書き出す内容(i.e., 現在のメモリ内にあるfitting結果)
  を知りたいとき、
      >  display

draw <-- AIPSの"cursor value"
 bas 1 /pl
 pl (結果がよければ)
 swap
 find
 l ist

ループの 例
 for i 1 to found
  get next
  plot <-- ここにやりたいお仕事(例えば、write,  resample などなど)
  pause
  next
  c <-- continue

ループの 例(少し高級な例)
  for j &3 to &4 by &5
    for i &1 to &2 by &5
     set off i j
     find /all
      if (found.ne.0) then
      sum
      plot
      base order /pl
      write
     end if
   next
  next
 

条件判断の例(Scan Numberを引数に)
  if (scan.lt.2003) then <--- FORTRANと同じ文法だが、スペースを空けない。
     pen 3
     plot
   else if (scan.gt.2003) then
     pen 1
     plot
  end if
 

条件判断とループを組み合わせた例

  for i 1 to found
    get n
    let el = elevation*180|pi
    if ((el.ge.30).and.(el.le.80)) then <--- FORTRANと同じ文法。
        let gain = 1-0.000268*(el-61.7)**2
        multiply 1|gain
        write
     else
       write
    end if
  next

ヒストリ機能
  type
  e @で直前に実行したスクリプト

変数の情報を得る
  help set var

画面
 cp
 ca

draw コマンド
 draw u 2.65e5 A


格子点のマッチング
set mat .1

ps/eps ファイルへ
 ha file.name /dev (e)ps color
 ha file.name /dev ps color /exact   <--- pdfに変換するときに、たぶんベスト。
 

テキストファイルに落とす
  - greg file.name /format
   - あるいは、print areaコマンドも有効活用しよう。
 

変数の情報を得る
  help set var で、以下のような一覧を得る。

    .. (略)..
    REAL*8  RUT             ! UT of observation
    REAL*8  RST             ! LST of observation
    REAL*4  RAZ             ! Azimuth
    REAL*4  REL             ! Elevation   ........(略)...
   変数名の最初の一文字、つまりRELであればRは不要。SICコマンドとあわせて、
  観測データ取得時の仰角(をdegredd単位で)とTsysの値をあるファイルに書き出す例。
      find /all
      list
      sic out filename.sic
      for i 1 to found
         get n
         say 'ELEVATION*180|PI' 'TSYS' ! /format 1pf5.1  1pf11.2
         next
      sic out

GRAPHIC (後述)でマップ を書くためのCLASS側の準備

1)基本 的だが、あまりお勧めできない 方法
  (この形式 でデータを書くと、ヘッダー情 報が残らず、
   あとあと GRAPHICでマクロを組み にくい。そもそもデータ補間がまったくされず
            単に平均を計算している)

  例 
    CLASS側で
   print area -17 -5 5 12 /out file.name
       パラメタの順番などは、オンラインヘルプに書いてある。
    GRAPHIC側で
      col x 2 y 3 z 5 /file file.name
      limits /rev x
      set box mat
      points
      random 15 15 /blancking -1000などなど

2) "grid"コマンドを使う <-- アンダーサンプリングのマップの場合、お勧めしない。
  "cube"コマンドを使 うべし。
   例
    CLASS側で
           grid  file.name new /image beam beam_size /plot
           出力形式は、file_name.lmv
   GRAPHIC を立ち上げて
           image ile.name
           transpose  file.gdf  file.trn 231
           go bitで内容をチェック(inp bitでパラメタ見る)

3)アンダーサンプリングのマップ観測の場合、推奨する方法
     まずは、CLASSで最終スペクトルを準備、プロファイルマップで最終チェックする。
     そのデータに対して、速度方向にリサンプルする。
            resam Nx  Xref  Xval Xinc vel /nofft
     パラメタの意味は、ヘルプを参照。
     ここで重要なことは、最後のNo FFTオプションこれを忘れると、指定された
     速度分解能刻みでキューブは作られない(GRAPHICでgo bitすれば間違いに気付く)。
     この処理を全スペクトルに対してするにはfor文でループをまわし、ファイルに書き出す。
  例
      > fo file.name new
      > fa (find all) <--- 忘れない!
      >for i 1 to found
         : gn
         : resample 40 1 -20 5.0 vel /nofft  <-- -20 km/s を1チャネル目として5.0km/s刻みで40チャネル分作る例
         : write
         : next
     >
     > cube  output.filename
 
 

CLASS と GRAPHICに共通の基本事項

 ヘッダーの内容書き換えには次の"レベル"がある。
            let :  パラメタを変更(もちろん、header /upすれば更新される)
   modify :  変えたパラメタで実行するのみ。
                        ------------------    以上の2つはメモリ上の話 --------
          write :  ファイルへ書き出す。

2008Nov-Linux版でのヘッダー書き換え変数のうち、R.C.と僕には理 解できなかったが、
結果として動く組み合わせ
     a%beam = 12 (旧版とSolaris版では、3)

 変数のタイプの宣言
      例
          define character  filename*80
          define integer plane start step type
   あるマクロに書かれたfileのなかで、別のマクロをモジュールとして読み込む場合
   変数の定義は  :   /global  と付けるのを忘れないこと。
   また、マクロの最終行に  del /var  変数名 とする。

 変数の単位
   help headerしても何もわからない。が、だいたい推測はできる。
   おおよその目安として、速度はkm/s, 周波数はMhz、面積はrad^2など。

   変数のフォーマット --- 基本的にFORTRANと同じ
  例    say 'vl[j]' 'flux[j]' 'fr[j]' 'tba[j]' /format 1pe11.3  1pe20.6 1pe20.6 1pe20.6
 
 

旧GRAPHIC、 現GREG
 

変数の情報を得る
  help header

ある変数 の値を調べたいとき、
      exa  g_velres

スクリプ トをデバッグモードで実行する
     sic verify onと宣言してから、スクリプトを実行

* CLASSのcubeコマンドで作成したデータの読み込み
 

  1) 必要に応じてヘッダーを書き換える。
  例: 2001年1月にSESTで、2002年12月にCSOで取得したデータのヘッダ情報のうち
    明らかに書き換え (書き足し)が 必要な部分を以下に示す。
        !
      ! "cube" de tukurareta image file no omajinai for SEST/CST
      !   2000-Jan-25 by RSF
      !   2003-Jan-01 by RSF
      ! --------------------------
      let name &1
      let type gdf
      ! image 'name'.'type'
      !
      head /extr
      head
      ! For CSO 345 GHz
      ! let g_major 21*sec
      ! let g_minor 21*sec
      ! For CSO 230 GHz
      let g_major 32*sec
      let g_minor 32*sec
      let g_pa 0
      let g_beam 3 <---- 非常に重要
      head /update

 
 2)第1軸は速度になっているのでtransposeする。 

   transpose  yourcube.gdf  yourcube.trn 231
 


* CLASS以外で作ったイメージFITSデータの読み込み
 

 - SCUBAデータ
     ヘッダーからマップの全サイズを見て規格化しなおす必要ある。

 - VLA, OVROデータ
         ビームサイズ(と関連するマイナーなパラメタ)のみ直すことでOK.
   重 要: AIPSからの輝線データのFITSキューブを読み込むとき
   第三軸は、AIPSのaltswで速度に直したあとtask "FITTP"せよ。
   (周波数では、あと あと計算に利用 するときに正しく計算されない)

 - VLBAデータ
          ビームサイズは、milli-arcsecondなので1000倍してやればOK。以下に簡単な例。
    ! VLBA data BF054A
    ! USAGE :  @aips2gildas  0.00078 0.00040 -1.68
    !                                 2002-May-02 by RSF
    !--------------------------------------
    let g_major = &1*sec
    let g_minor = &2*sec
    let g_pa = &3*pi|180
    let g_beam = 3
    let g_restfre = 22235.077
    let g_veloff = g_convert[2,3]
    let g_velres = g_convert[3,3]
    let g_freqres = g_convert[3,3]*g_restfre|2.997924562e5
    let g_convert[3,1] = g_convert[3,1]*1000
    let g_convert[3,2] = g_convert[3,2]*1000
 

 - 2002年1月、2003年1月にBEARSで取得したデータのヘッダ情報のうち
    明らかに書き換え (書き足し)が 必要な部分を以下に示す。
        !
      ! -------------------
      ! For NRO-45m data from NEWSTAR
      !     H13CO+ (1-0) with BEARS
      ! -------------------
      let g_major 20*sec
      let g_minor 20*sec
      let g_pa 0
      let g_beam 3
      let g_velres 0.1 <-- NEWSTARで作ったCUBEの速度軸のステップ幅 (km/s)
      let g_line "H13CO+ (1-0)"
      let g_restfre 86754.330
      let g_veloff  -2.7   <--- 観測時に与えたVsysの値(必要であれば)。GRAPHICでは、速度から周波数を計算。
      head /update

  あ る変数の値を調べたい とき、ある変数を指定したいとき。
       例1:  exa  g_velres

    例2: 上で示したように書き換えたあとのヘッダーの一例
    
        GRAPHIC> header
        File : gf92_h13co_cube_fill.ch10-19                                  REAL*4
        Size        Reference Pixel           Value                  Increment
              98   48.04019170000000                      0.     -2.4240686692863222E-05
              98   51.89999390000000                      0.       2.4240686692863222E-05
                1   1.000000000000000      -3.950000000000000       1.000000000000000
                1   1.000000000000000       1.000000000000000       1.000000000000000
        Blanking value and tolerance      -10000.000              0.

        Source name         GF92
        Map unit            K
        Axis type           RA           DEC          VELOCITY     UNKNOWN
        Coordinate system   EQUATORIAL
        Right Ascension     20:51:29.500        Declination         60:18:38.00
        Lii        97.10500188699056            Bii       10.11521090841407
        Epoch              2000.0000
        Projection type     RADIO               Angle                    0.
        Axis 1     A0       20:51:29.500        Axis 2     D0       60:18:38.00
        Minimum          -0.64346886      at    42    19     1     1
        Maximum           0.89485383      at    23    14     1     1
        Axis 3 Line Name    H13CO+ (1-0)        Rest Frequency   86754.33000000000
        Resolution in Velocity   0.10000000     in Frequency                    0.
      Offset in Velocity       -2.7000000     Image Frequency                 0.
 

 例えば、上のボー ルド体部分の変数の値を指定したいときは

     GRAPHIC> SIC\EXAMINE G_CONVERT[3,1] <---- で指定するG_CONVERTの中は行列になっている。
     G_CONVERT[3,1]  is a double precision Sub-Array  of dimensions
     -2.424068669286322172E-05                      <---- を得る。

 例えば、  let g_veloffで指定したパラメタは、Offset in Velocity に反映されている

AIPS to GRAPHIC: NMAデータでの具体例
 

1) AIPSで速度を定義

>inp altdef
AIPS 1: ALTDEF:  Verb to modify velocity vs frequency relationship
AIPS 1: Adverbs         Values            Comments
AIPS 1: ----------------------------------------------------------------
AIPS 1: USERID        0                                  User ID.  0 => current user
AIPS 1:                                                        32000 => any user.
AIPS 1: INNAME     'M2_0-40KLMD '                Image name(name).
AIPS 1: INCLASS    'ICL001'                          Image name(class).
AIPS 1: INSEQ         1                                   Image name(seq. #). 0=>high
AIPS 1: INDISK       10                                  Disk drive #. 0=>any
AIPS 1: AXTYPE     'RAD LSR '                       'OPT' or 'RAD' plus 'LSR',
AIPS 1:                                                       'HEL', or 'OBS'
AIPS 1: AXVAL      61500          0                 Velocity at (new) ref. pixel=
AIPS 1:                                                       AXVAL(1) + AXVAL(2).
AIPS 1: AXREF       129                                Reference pixel location
AIPS 1: RESTFREQ   1.531E+11   5273000     Rest frequency in HZ =
AIPS 1:                                                      RESTFREQ(1) + RESTFREQ(2)
特に、静止周波数を確認する。
>print RESTFREQ(1); print RESTFREQ(2)
AIPS 1: 1.531300E+11
AIPS 1: 5273000
>altdef

2) 第3軸を速度に変換する。
    GRAPHICでは、速度が基本であり、周波数は速度をもとに計算されるため。
>altsw

3) ヘッダー情報の確認、特に以下の項目をチェックすべし。

 あ) 速度は"VELO-LSR "になっているか?
    "FELO-LSR"ではGRAPHICへ変換し、周波数を計算するときにエラーの原因となる。
 い)速度の基準ピクセル、速度分解能は正しいか?

>imh
AIPS 1: Image=M0105TC   (MA)            Filename=M2_0-40KLMD .ICL001.   1
AIPS 1: Telescope=NRO-NMA              Receiver=
AIPS 1: Observer=R.Furuya                 User #=  106
AIPS 1: Observ. date=05-JAN-2003     Map date=11-APR-2003
AIPS 1: Minimum=-3.20412827E+00      Maximum= 5.37566805E+00 JY/BEAM
AIPS 1: ----------------------------------------------------------------
AIPS 1: Type    Pixels   Coord value     at Pixel     Coord incr   Rotat
AIPS 1: RA---SIN    256      17 44 10.360     128.00      -0.150000    0.00
AIPS 1: DEC--SIN    256    -28 22 02.500     129.00        0.150000    0.00
AIPS 1: VELO-LSR   256   6.1500000E+04     129.00 -3.9161970E+03    0.00
AIPS 1: STOKES          1   1.0000000E+00       1.00  1.0000000E+00    0.00
AIPS 1: ----------------------------------------------------------------
AIPS 1: Coordinate equinox 1950.00
AIPS 1: Map type=NORMAL              Number of iterations=     180
AIPS 1: Conv size=   7.15 X   3.75   Position angle=  -5.40
AIPS 1: Rest freq 153135.265         Vel type: RADIO   wrt LSR
AIPS 1: Alt ref. value  1.52879E+11  wrt pixel    1.00
AIPS 1: Maximum version number of extension files of type CC is 256
AIPS 1: Maximum version number of extension files of type HI is   1
AIPS 1: Maximum version number of extension files of type PL is   8

4) task:FITTP"を用いて、FITSファイルへ書き出す。

5) GAPHICでFITSを読み込む。

    注) GRAPHICで読むファイルの名前は、すべて小文字である。

GRAPHIC> run fits_gildas/edit
! Disk FITS to GILDAS translator
TASK\FILE "Input FITS file" FITS$ feo_0-40klamba_icln.fits
TASK\FILE "Output Gildas Image" OUT$ feo_0-40klamba_icln
TASK\CHARACTER "Style of FITS image" STYLE$ standard
TASK\INTEGER "Bottom left corner (all 0 ==> full image)" BLC$[4] 0 0 0 0
TASK\INTEGER "Top right corner (all 0 ==> full image)" TRC$[4] 0 0 0 0
TASK\GO
 

6) 読み込んだgdfファイルのヘッダーを見る

    まずは、以下の項目を確認しよう特に速度関係のパ ラメタは 正しいか?
    イタリック示した個所は、書き換えの必須の個所である。

GRAPHIC> head
File : feo_0-40klamba_icln.gdf                                       REAL*4
Size        Reference Pixel           Value                                 Increment
   256   128.0000000000000                      0.        -7.2722057739848474E-07
   256   129.0000000000000                      0.           7.2722057739848474E-07
   256   129.0000000000000   61.500000000000000   -3.916197021000000
     1        1.000000000000000       1.000000000000000           1.000000000000000
Blanking value and tolerance      2.52433549E-29          0.
Source name         M0105TC
Map unit            JY/BEAM
Axis type           RA           DEC          VELOCITY     STOKES
Coordinate system   EQUATORIAL
Right Ascension     17:44:10.360        Declination        -28:22:02.50
Lii       0.6667820702947623            Bii     -3.5095900005774880E-02
Epoch              1950.0000
Projection type     ORTHOGRAPHIC        Angle                    0.
Axis 1     A0       17:44:10.360        Axis 2     D0      -28:22:02.50
Minimum           -3.2041283      at     0     0     0     0
Maximum            5.3756680      at     0     0     0     0
Axis 3 Line Name                  Rest Frequency                  0.
Resolution in Velocity           0.     in Frequency                    0.
Offset in Velocity               0.     Image Frequency                 0.
 

7) 以下を参考に、ヘッダーの必要個所を書き換える。

! Conversion from NMA AIPS data to GRAPHIC
!               updated  2003/4/24 RSF
!-------------------------------------------
let g_major = 7.15*sec
let g_minor = 3.75*sec
let g_pa = -5.40*pi|180
let g_beam = 3
let g_restfre = 153135.273   ! in MHz
let g_veloff = 61.5                ! in km/s
let g_velres = g_convert[3,3]
let g_freqres = -1*g_velres|2.997924562e5*g_restfre
header /ext
header /up

8) 書き換えた内容を確認する。

   あ)下の色をつけた個所に同じ数値が入っているか? 
   い)速度分解能がプラスの符号であれば、周波数分解能はマイナスの符号になっているか?
   う)黒ボールド体で示したパラメタは正しいか?

GRAPHIC> head
File : feo_0-40klamba_icln.gdf                                       REAL*4
Size        Reference Pixel           Value                         Increment
   256   128.0000000000000                      0.                  -7.2722057739848474E-07
   256   129.0000000000000                      0.                   7.2722057739848474E-07
   256   129.0000000000000    61.50000000000000-3.916197021000000
     1   1.000000000000000          1.000000000000000      1.000000000000000
Blanking value and tolerance      2.52433549E-29          0.
Source name         M0105TC
Map unit            JY/BEAM
Axis type           RA           DEC          VELOCITY     STOKES
Coordinate system   EQUATORIAL
Right Ascension     17:44:10.360        Declination        -28:22:02.50
Lii       0.6667820702947623            Bii     -3.5095900005774880E-02
Epoch              1950.0000
Projection type     ORTHOGRAPHIC        Angle                    0.
Axis 1     A0       17:44:10.360        Axis 2     D0      -28:22:02.50
Minimum           -1.7844549      at   256    48   225     1
Maximum            5.3756680      at   126   129   207     1
Axis 3 Line Name                        Rest Frequency   153135.2730000000
Resolution in Velocity   -3.9161971     in Frequency     2.000410262960199
Offset in Velocity         61.500000        Image Frequency                 0.


GRAPHIC/GREGのメモ(つ づき)
 

テキストファイルに落とす
    - write col fill  file.name  

lut pr:aips0など

 rgmap <---コントア
 lev 5 to 40 by 5

1つの表 示に異なる物理量の軸を入れた いとき。
  - 例えば、上側のx軸に周波数、下側のx軸に速度を入れたい、など。
 - 簡単な解決法は、axis コマン ドを使うこと(boxコマンドでは不可能。)


 rgmap /pen 3 blue (2 greenなど)

RGMAPでペンの色、太さ、ダッシュの有無などを変える。

 ex.1
  > pen 0 /we 2 /c 7
  > rgmap                  <-- ここにはオプションを書かない。
  > pen 0 /we 1 /c 0

 ex.2
  > pen 7 /we 2
  > rgmap /pen 7   
  > pen 0 /we 1 /c 0

 

マップ関 係のメモ

 - map match /grid
 - max/minを簡単に知りたい  -->  extr(eam)
 - ラベルや目盛りを変えたいとき
        tick 0 0 50 200  (例えば Decl.方向を変えたいとき。詳しくはhelp参照)
    注: set ticksizeは間違い
   リ セットするときは、tick 0 0 0 0

 - ex.) wedge r .3 /lev /scal lin rgmin rgmax

 - 絶対(相対)座標で書く
     box /a
         box /u  sec など
  あるいは、次のように別々 に指定すること も可能。
         limit /rg     <---  ヘッダーから自動参照する場合
         limit -100*sec 100*sec -100*sec 100*sec  <-- 自分で定義したい場合
         set box mat   <-- マップの縦横の長さをあわせる
         axis xlow /u s
         axis xup
         axis yleft /u s
         axis yright
 

CLASS + GRAPHICで書いたマップに観測点を入れたいとき
 -  例1。CLASS側でprint areaして格子点を書かせたテキストファイルをGRAPHIC側で
  次のように呼び出す
        col x 2 y 3 /fil  yourobspoints.area
        define double xa[nxy] ya[nxy]
        let xa = x
        let ya = y
        pen /def
        for i 1 to nxy              <--- 注: nxyはGRAPHIC内で名前を定義されている。
          set mark 4 1 0.21
          draw m xa ya /user seconds /clip
          next
        pen /def
 


ポリゴンからの結果をそのまま読む
 lev 3*POLY$RMSなど(GREGでは%)

チャネル マップを得るもっとも簡単な方 法 --- "BIT"コマンドのメモ

    let size 40 <---実はこれはマップセンターしか表示しない。
    bitコマンドのなかで読み込んでいる@p_bitの中身を、例えば
     let do_grey   yes/no
                     let do_color
    などを編集すれば、お好みのチャネルマップを得られる。 

    ヘッダー情報を書きたくないとき:  let do_header no

コントアのみのチャネルマップをかく
    go_map コマンド、パラメタはgo bit にすべて同じ。

AIPS のTVSTATなどに相当する コマンド
  マップを表示したあとで、
   polygon
   pol /fill 1(など <--色が塗られる、1は赤)
   左キーで領域を指定、右で決定
   mean

イメージ上のbad points(regions)の除去
 例えば
      pol
      write pol pixel
      mask m
      run mask /edit
 
- すでにあるpolygonファイルを読む。
          pol  filename.pol /file
    あるコントアレベルをpolygonに落とした場合、データ点数は最初の100点まで         
          しか読まれない。必要に応じて読みとばすなど、unixでする。         

マップに関する操作(色々なことができすぎるので、コマンド名を挙げておきます)

- マップのスムージング  ---  特にunder サンプルなデータに対し て
       run fill_cube  /edit
          input : オリジナルデータのグリッド数は、headerコマンドで調べよ。
          number of pixels = originalのグリッド数 * 4
          slow modeを選択
 

 - 積分強度図を作る。
 
   run map_aver /edit
          !  map_aver.INIT
          TASK\FILE "Input image" INPUT_MAP$ gf92_dec31_co21_500mhz_cube.trn
          TASK\FILE "Output image" OUTPUT_MAP$ gf92_dec31_co21w.ch21-23
          TASK\INTEGER "First and Last channel" NC$[2] 21 23  <--- 積分するチャネル番号の指定
          TASK\GO

     run combine /edit
         ! Combine.INIT
         TASK\FILE "First input map" Z_NAME$ = gf92_dec31_co21w.ch21-23
         TASK\REAL "Scaling factor" Z_FACTOR$ = g_velres*8 <--- 上で8ch分のaverageをしたので、
                                                                                            その速度幅を掛けておく。
         TASK\REAL "Threshold" Z_MIN$ = -10000.         したがって単位は、K km/sとなる。
         TASK\FILE "Second input map" Y_NAME$ = gf92_dec31_co21w.ch21-23
         TASK\REAL "Scaling factor" Y_FACTOR$ = 0.0 <--  今の場合は、ダミーでゼロ
         TASK\REAL "Threshold" Y_MIN$ = -10000.
         TASK\FILE "Output map" X_NAME$ = gf92_dec31_co21w_cmb.ch21-23
         TASK\REAL "New blanking value" BLANKING$ = -10000.
         TASK\REAL "Output offset" OFFSET$ = 0.
         TASK\CHARACTER "Function" FUNCTION$ = ADD
         TASK\GO

- マップのスケーリング : 上のtask combineを応用しよう。

- 最大、最小値とヘッダー更新
  header /ext (GRAPHIC) <---> run /ext (GREG)と変わった。

- マップ同士の演算
    上の run combine /edit のパラメタをいじれば色々できる。
     特に"Function" FUNCTION$ = が鍵。例)DIVIDE、ヘルプを参照。         

- モーメントマップ
       run moments /edit   注: "moment"は別のコマンド。混同しないように。

- マップの回転
   run reproject /edit    (回転角を入力する個所がある。) 
        真北を0 degとし、+90 degでは東側(CCW)へ、-90 degで西側(CW)へ回転。

2次元Gaussianフィッティング (AIPSの"JMFIT")
            
run  gauss_2d /edit
           Initial guessを与えることを忘れずに。

-  メモリ上にあるイメージをgdfファイルなどに書き出したいとき、
         a) ヘッダー情報をもつ、演算前の元データのgdfファイルを読み込む。
         b) 書き出したいマップを画面に表示。
         c) write filename.gdf で書き出し。
         d) 必要に応じてヘッダー情報を更新する。

ヘ ルプ
help las\
help ana\
 
 

MOPSIによるボロメータデータの解析

MOPSIは、Robert Zylka博士 (IRAM, Grenoble, France)によって開発されたボロメータ用の
データ解析ツールで、SEST-SIMBAやIRAM 30-m鏡でのボロメータ・データの解析に、広く
使われています。GILDASの中には含まれないのですが、コマンドはGILDASベース なので、
われわれにとっては親しみやすい。以下は、2003年7月に行ったSIMBAでの観測時の メモ。

- データ解析の基本的な方針については、SIMBAマニュアルを参照するほ うがベター

- SESTで公開されている、マクロをベースに自分のデータに応じて、 マクロを書き換
 えることを勧める。

- ファイルリストの作成: unix のコマンドラインから
"ls *fits > fits.LIST"というファイルを作成
しておき、MOPSIで
     > fits.list
     > lis
     > select source_name な ど
 ファイルリスト作成時、sky dipのFITSは、opacity fileが準備できてあれば消去してOK。

- yourmacro.MOPSIというファイルを用意し、 @yourmacroでOK.

- 重要な注意: MOPSIでの複数スクリプトを 同じディレクトリで走らせるとbtdファイルの
        リスト機能部分が競合する。同じディレクトリで、複数走らせないこと!

- tcsh的には動いてくれない。---> ree command名で、指定したコマンドを最後に実行した
 ときのパラメタで実行。reeはreexecute。

- 使えないチャネルからのデータを除く
     >del  rc 3 6 8  <--- ch 3, 6, 8を除きたいとき。

- マップの表示
     > plot sca lin min max

- マップのノイズレベルを知る。
      polで指定、> rms in

- polygonで指定した範囲を、ファイルに書き出す。
      > write pol yourpolygon
   yourpolygon.pol という ファイルがで きる。指定した領域をマップ上で確かめたければ、
    > pol  yourpolygon.pol plot (pen /col 4などで色を変えれば見やすい?)

- コントアの書き方 -- GRAPHICに同じ。
     > lev 0.6 1.2 1.8....
     > rgmなど。

- スケーリング・ファクターのかけ方: 単位に注意
      > mul number

- ボロメータ・マップの品質はSky Noise Reductionで決まる
 

- 第1ステップでの注意事項
    * とりあえずは、ディフォルト のパラメタでマップを得る。ただし、最低限、
      強い/弱いソース、コンパク トな天体/複数成分あり、なし/広がった天体....は考慮しよう。
    * 結果を眺めて、
       ネガティブ成分はないか?
       あるとしたら、どのような特徴をもつか?
                      (引きすぎていないか? /baselineの次数は妥当か?)

- 第2ステップでの注意事項
  * 特 にAIPSのIMAGRで tvboxすることに慣れてしまった人への注意喚起!
        ビー ムパターンの影響を受けているであろう、す べての領域を指定せよ!
     (「必ずエミッションがいるであろう領域に 絞って始めるべし」のおまじないは忘れること)
  * 鍵 を握るパラメタ
            - イテレーションの回数 (強いソースは1回でさえOK)
            - Inner searching radius
            - Baseline fitの次数低い次数から。特 に弱く広がった天体に2次以上は禁物。
   

- 第3ステップのためのモデル作成の例

      > sto         <-- sto = store;  background bufferへもっていく。
      > init gfit    <-- gfit = Gaussian fit
      > init spike
   ------------  初期化
      > low 50 0  <-- 50 mJy 以下をゼロにする。
      > neglect out (ポリゴンの外をゼロに)
      > gift curs subtr  <--- カーソルで指定した部分をガウシャン・フィット、マップから引く。
              中心1個所をクリックして指定。複数 component指定可。
      > ree plot   <-- 引いたあと、どう見えるか?
      > pol          <-- もっ ともらしい「広がった」エミッションを指定。
      > hpbw
      > gsm 30    <-- ”残差"マップを半値幅30"でスムージング
      > ree plot
      > add gfit   <-- バックグラウンドに回した点源と、スムースした広がったエミッションを足す。
      > ree plot   <-- モデルがどう見えるか?
    ------------  モデルの完成
      > file out yourmodel.gdf  <--- 出力するgdfファイルを開く。
      > write
      > close out
      > @your3rdstep  <--- 作成したモデルを使って、第3ステップのスクリプトを走らせる。
 
 
 

Return to Ray S. Furuya's Home page

Ray S. FURUYA
NAOJ Postdoctoral Research Fellow at Subaru Telescope, National Astronomical Observatory of Japan
650 North Aohoku Place, Hilo, HI 96720, U.S.A.
Phone +1-(808) 934-5068; Fax +1-(808) 934-5984