NIC Web
staff/new_pipeline_memo
をテンプレートにして作成
開始行:
* About this document [#cbbbbaab]
NIC の実験用パイプライン (仮名: NICtools) 開発のための個...
このパイプラインのメリットは以下のようなものと思われます。
- フラットフレームを作るのが少しだけ楽
- ダークフレームを作るのが少しだけ楽
- 縦縞パターンを少しだけきれいに引ける
- (試験中: 未実装) ubercalibration で測光精度をあげられる
- パラメーターを変えて色々試しやすいように作ってある(つも...
- 解析の各段階の順番を入れ替えたりするのが簡単
- IRAF に頼らないですむ
ただし、IDL が必要。「fits の読み書きは面倒なので金で解決...
名前を仮に NICtools とか称していたが、どうやら NICMOS の...
This is a memorandum for developing the new (experimental...
(created by T. Saito)
* Basic procedures: What does NICtools do? [#d4a97fb0]
ここで行う操作は、以下のとおり。
+ フラットフレームを作る : countplot.pro, quadstat.pro, m...
+ ダークフレームを作る : countplot.pro, medstack.pro
+ オブジェクトフレームからダークを引く : fits_sub.pro
+ スカイフレームを作る (オブジェクトフレームから or 個別...
+ オブジェクトフレームからスカイを引く : fits_sub.pro
+ 検出器の固有パターン (縦縞) を引く : column_pattern.pro
+ フラット補正 : flatfield_fits.pro
+ バッドピクセル補正 : fixpix.pro
+ アストロメトリー : solvewcs.pro
* Getting started [#z6d818eb]
- 下記のパイプラインサーバーで環境を整備している。
ホスト名: venezia
IPアドレス: 192.168.42.58
システム: RedHat Enterprize Linux 9
アカウント: nhao (いつもの)
- インストールする場合
-- IDL 環境を整備する
--- Extract the sources into your desired path: [[Downloa...
--- パスを通す。IDL では !path という環境変数の末尾にでも...
IDL> !path = !path + ':ソースを展開したディレクトリー名'
--- astrolib をインストール: [[https://idlastro.gsfc.nasa...
--- Coyote Graphics ライブラリーをインストール: [[http://...
--- Mankoff ライブラリー (KDM-IDL) をインストール (現在の...
IDL> ipm, /install, 'https://github.com/mankoff/kdm-idl'
-- 作業ディレクトリーには、下記のようなサブディレクトリー...
<current>/raw : 生データ格納用
<current>/reduced : 処理済みデータ格納用
<current>/reduced/wcs: Astrometry.net の出力するファイル...
<current>/calib : キャリブレーションデータ (フラッ...
<current>/common : その他の諸々のデータ格納用
<current>/lists : パイプラインに入力するファイル (...
<current>/cat : SExtractor が出力するカタログの格...
<current>/output : IDL-based なコマンドが出力するデ...
--- 'common' ディレクトリーに下記のバッドピクセルリストを...
+++ &ref(J_badpix.lst);
+++ &ref(H_badpix.lst);
+++ &ref(K_badpix.lst);
-- SExtractor をインストール
--- ubercalibration のためには入れておいた方がいい。近い...
--- 下記の設定ファイルなどを作業ディレクトリーにおいてお...
+++ &ref(./nic_phot.sex);
+++ &ref(./nic_phot.param);
+++ &ref(./default.conv);
-- Astrometry.net をインストール
--- [[https://astrometry.net/doc/>https://astrometry.net/...
--- インデックスファイルをダウンロードしておく。 一番小さ...
* データをローカルにコピーする (venezia のみ) [#e8ccf2b5]
- venezia 上では、data_retrieve.sh というスクリプトが作っ...
venezia% data_retrieve.sh -d YYMMDD
-- このコマンドで、gamera:/nicdata/nic/obsdata/YYMMDD 以...
-- 「-d YYMMDD」で日付を指定 (省略すると前日のデータがコ...
* フラットフレームを作る [#h42433c6]
** 考え方 [#j5b5d55b]
- カウントの高いフレームと、カウントの低いフレームのペア...
** 手順 [#yf4bab59]
- まずはリストを用意。この例では生データが raw ディレクト...
IDL> jlist = file_search('raw/j*.fits')
==> フラットの生画像リスト: jlist[0:149]
- それらのカウントを大まかに調べる。'countplot' で、フレ...
IDL> countplot, jlist, 0, 149
- この結果を見てカウント値が適切な範囲のフレーム番号を調...
-- 飽和していない: カウント < 7000 とかで、かつ、夕暮れに...
-- 高カウントと低カウントのペアで差がおおよそ 2000 以上に...
- 低カウント側は大抵潤沢に取れる
-- ただし、星が写り込んでいないか必ず目で見てチェックする...
e.g., IDL> quadstat, jlist[120]
- 上記で選んだ高カウントと低カウントのフレームを同数用意...
e.g.,
high-count: jlist[25:45]
low-count : jlist[128:148]
IDL> for i=0,9 do fits_sub, jlist[i+25], jlist[i+128], '...
IDL> for i=10,21 do fits_sub, jlist[i+25], jlist[i+128],...
- 出来上がった差のフレームを中央値でスタックする ('medsta...
IDL> jflatlist = file_search('calib/jflat_*.fits')
IDL> medstack, jflatlist, 'calib/jflat_220329.fits', /sc...
-- medstack に /scale, /norm の2つのオプションを付けると...
- カウントの上限・下限を high, low という2つの変数で指定...
- さらに、/display というオプションを付けて走らせると、処...
* ダークフレームを作る [#p7d84725]
** 考え方 [#l7aeb9c5]
- NIC は検出器の挙動があまり安定していない。とくに第1象限...
- 「典型的な」ダークのカウントがほしいので、象限ごとのカ...
- 取りはじめのフレームなどは、ノイズが大きかったり、カウ...
- カウントを調べる 'countplot'、画像を見つつ象限ごとの統...
** 手順 [#g7b26b23]
- 観測の最後に20枚のダークを取ったとする
- 下記の例は、象限間の中央値のばらつきが 2.8σ 以内、フレ...
IDL> countplot, jlist, 226, 245, /dark, sigma_a=2.8, sig...
IDL> medstack, jlist[frame_in], 'calib/jdark30.fits'
-- ここで 'frame_in' は、使えるフレーム(ばらつきが指定し...
- なお、この自動的なフラッギングは、いつもうまくいくとは...
* オブジェクトフレームからダークを引く [#r614760a]
- ターゲット天体は M37、6点ディザーで観測し、スカイは別口...
Object frames: jlist[150:155]
Sky frames : jlist[162:167]
- まずは入力ファイル・出力ファイルのリストを作る。
IDL> jrlist = [jlist[150:155], jlist[162:167]]
IDL> jdlist = jrlist.replace('raw', 'reduced')
IDL> jdlist = jdlist.replace('.fits', '_M37_d.fits')
- それを for ループで食わせて、ダークを引く: 'j*_M37_d.fi...
IDL> for i=0,n_elements(jdlist)-1 do fits_sub, jrlist[i]...
* スカイフレームを作る [#g5c4e4ee]
- ここではスカイフレームを別途取得する例を紹介するが、混...
- 'medstack' は中央値で画像を重ね合わせる。'/scale' オプ...
IDL> medstack, jdlist[6:11], 'calib/jM37_sky.fits', /scale
* オブジェクトフレームからスカイを引く [#w59e9ab4]
- 'fits_sub' を使ってオブジェクトフレームからスカイを引く...
IDL> jslist = (jdlist[0:5]).replace('_d', '_s')
IDL> for i=0,5 do fits_sub, jdlist[i], 'calib/jM37_sky.f...
* 検出器の固有パターン(縦縞)を差し引く [#f1b8628f]
** やっている内容など [#k9c11497]
- 検出器の読み出し関連の回路の電位変動により、NIC には縦...
- 'column_pattern' では、上下半分ずつ、各列ごとの「ゲタ」...
- この縦縞状のゲタ成分は、数値としては小さく (< 100 とか)...
** 手順 [#n4c5ed46]
- 下記の通り、デフォルトでやるのは至ってシンプル。
IDL> jclist = jslist.replace('_s', '_c')
IDL> for i=0,n_elements(jslist)-1 do column_pattern, jsl...
- 結果が思わしくない場合には、sigma-clipping のパラメータ...
e.g.,
IDL> column_pattern, infile, outfile, niter=5, clip=1.0
niter : 繰り返しの回数 (default = 4)
clip : 除外するしきい値をσ(標準偏差)単位で (default =...
* フラット補正 [#c98e0b33]
- 'flatfield_fits' を使って、上記で作ったフラットフレーム...
IDL> jflist = jclist.replace('_c', '_f')
IDL> for i=0,n_elements(jflist)-1 do flatfield_fits, jcl...
- ここではフラット補正を縦縞パターン差し引きの後にやって...
* バッドピクセル補正 [#d90d84e6]
- 'fixpix'を使い、バッドピクセルのリストを食わせて、入力...
IDL> jxlist = jflist.replace('_f', '_x')
IDL> for i=0,n_elements(jxlist)-1 do fixpix, 'common/J-b...
- この'fixpix' は、IRAF の fixpix タスクと同様、単純な線...
- この補正はどの段階でやっても大した差はない。ただしアス...
* アストロメトリー [#r9976004]
- 現状 NICtools では Astrometry.net を使っている。一番視...
- ここでは上記の 'fixpix' を直前に適用したものと仮定して...
IDL> jwlist = jxlist.replace('_x', '_w')
IDL> for i=0,n_elements(jxlist)-1 do solvewcs, jxlist[i]...
- 現在のところ、WCS 貼り付けの成功率はあまり高いとは言え...
- (2022-10-25追記) 天体検出に SExtractor を使うオプション...
-- コマンドに /sex というオプションをつけると、天体検出に...
IDL> jwlist = jxlist.replace('_x', '_w')
IDL> for i=0,n_elements(jxlist)-1 do solvewcs, jxlist[i]...
-- 追々、改善していく予定。
終了行:
* About this document [#cbbbbaab]
NIC の実験用パイプライン (仮名: NICtools) 開発のための個...
このパイプラインのメリットは以下のようなものと思われます。
- フラットフレームを作るのが少しだけ楽
- ダークフレームを作るのが少しだけ楽
- 縦縞パターンを少しだけきれいに引ける
- (試験中: 未実装) ubercalibration で測光精度をあげられる
- パラメーターを変えて色々試しやすいように作ってある(つも...
- 解析の各段階の順番を入れ替えたりするのが簡単
- IRAF に頼らないですむ
ただし、IDL が必要。「fits の読み書きは面倒なので金で解決...
名前を仮に NICtools とか称していたが、どうやら NICMOS の...
This is a memorandum for developing the new (experimental...
(created by T. Saito)
* Basic procedures: What does NICtools do? [#d4a97fb0]
ここで行う操作は、以下のとおり。
+ フラットフレームを作る : countplot.pro, quadstat.pro, m...
+ ダークフレームを作る : countplot.pro, medstack.pro
+ オブジェクトフレームからダークを引く : fits_sub.pro
+ スカイフレームを作る (オブジェクトフレームから or 個別...
+ オブジェクトフレームからスカイを引く : fits_sub.pro
+ 検出器の固有パターン (縦縞) を引く : column_pattern.pro
+ フラット補正 : flatfield_fits.pro
+ バッドピクセル補正 : fixpix.pro
+ アストロメトリー : solvewcs.pro
* Getting started [#z6d818eb]
- 下記のパイプラインサーバーで環境を整備している。
ホスト名: venezia
IPアドレス: 192.168.42.58
システム: RedHat Enterprize Linux 9
アカウント: nhao (いつもの)
- インストールする場合
-- IDL 環境を整備する
--- Extract the sources into your desired path: [[Downloa...
--- パスを通す。IDL では !path という環境変数の末尾にでも...
IDL> !path = !path + ':ソースを展開したディレクトリー名'
--- astrolib をインストール: [[https://idlastro.gsfc.nasa...
--- Coyote Graphics ライブラリーをインストール: [[http://...
--- Mankoff ライブラリー (KDM-IDL) をインストール (現在の...
IDL> ipm, /install, 'https://github.com/mankoff/kdm-idl'
-- 作業ディレクトリーには、下記のようなサブディレクトリー...
<current>/raw : 生データ格納用
<current>/reduced : 処理済みデータ格納用
<current>/reduced/wcs: Astrometry.net の出力するファイル...
<current>/calib : キャリブレーションデータ (フラッ...
<current>/common : その他の諸々のデータ格納用
<current>/lists : パイプラインに入力するファイル (...
<current>/cat : SExtractor が出力するカタログの格...
<current>/output : IDL-based なコマンドが出力するデ...
--- 'common' ディレクトリーに下記のバッドピクセルリストを...
+++ &ref(J_badpix.lst);
+++ &ref(H_badpix.lst);
+++ &ref(K_badpix.lst);
-- SExtractor をインストール
--- ubercalibration のためには入れておいた方がいい。近い...
--- 下記の設定ファイルなどを作業ディレクトリーにおいてお...
+++ &ref(./nic_phot.sex);
+++ &ref(./nic_phot.param);
+++ &ref(./default.conv);
-- Astrometry.net をインストール
--- [[https://astrometry.net/doc/>https://astrometry.net/...
--- インデックスファイルをダウンロードしておく。 一番小さ...
* データをローカルにコピーする (venezia のみ) [#e8ccf2b5]
- venezia 上では、data_retrieve.sh というスクリプトが作っ...
venezia% data_retrieve.sh -d YYMMDD
-- このコマンドで、gamera:/nicdata/nic/obsdata/YYMMDD 以...
-- 「-d YYMMDD」で日付を指定 (省略すると前日のデータがコ...
* フラットフレームを作る [#h42433c6]
** 考え方 [#j5b5d55b]
- カウントの高いフレームと、カウントの低いフレームのペア...
** 手順 [#yf4bab59]
- まずはリストを用意。この例では生データが raw ディレクト...
IDL> jlist = file_search('raw/j*.fits')
==> フラットの生画像リスト: jlist[0:149]
- それらのカウントを大まかに調べる。'countplot' で、フレ...
IDL> countplot, jlist, 0, 149
- この結果を見てカウント値が適切な範囲のフレーム番号を調...
-- 飽和していない: カウント < 7000 とかで、かつ、夕暮れに...
-- 高カウントと低カウントのペアで差がおおよそ 2000 以上に...
- 低カウント側は大抵潤沢に取れる
-- ただし、星が写り込んでいないか必ず目で見てチェックする...
e.g., IDL> quadstat, jlist[120]
- 上記で選んだ高カウントと低カウントのフレームを同数用意...
e.g.,
high-count: jlist[25:45]
low-count : jlist[128:148]
IDL> for i=0,9 do fits_sub, jlist[i+25], jlist[i+128], '...
IDL> for i=10,21 do fits_sub, jlist[i+25], jlist[i+128],...
- 出来上がった差のフレームを中央値でスタックする ('medsta...
IDL> jflatlist = file_search('calib/jflat_*.fits')
IDL> medstack, jflatlist, 'calib/jflat_220329.fits', /sc...
-- medstack に /scale, /norm の2つのオプションを付けると...
- カウントの上限・下限を high, low という2つの変数で指定...
- さらに、/display というオプションを付けて走らせると、処...
* ダークフレームを作る [#p7d84725]
** 考え方 [#l7aeb9c5]
- NIC は検出器の挙動があまり安定していない。とくに第1象限...
- 「典型的な」ダークのカウントがほしいので、象限ごとのカ...
- 取りはじめのフレームなどは、ノイズが大きかったり、カウ...
- カウントを調べる 'countplot'、画像を見つつ象限ごとの統...
** 手順 [#g7b26b23]
- 観測の最後に20枚のダークを取ったとする
- 下記の例は、象限間の中央値のばらつきが 2.8σ 以内、フレ...
IDL> countplot, jlist, 226, 245, /dark, sigma_a=2.8, sig...
IDL> medstack, jlist[frame_in], 'calib/jdark30.fits'
-- ここで 'frame_in' は、使えるフレーム(ばらつきが指定し...
- なお、この自動的なフラッギングは、いつもうまくいくとは...
* オブジェクトフレームからダークを引く [#r614760a]
- ターゲット天体は M37、6点ディザーで観測し、スカイは別口...
Object frames: jlist[150:155]
Sky frames : jlist[162:167]
- まずは入力ファイル・出力ファイルのリストを作る。
IDL> jrlist = [jlist[150:155], jlist[162:167]]
IDL> jdlist = jrlist.replace('raw', 'reduced')
IDL> jdlist = jdlist.replace('.fits', '_M37_d.fits')
- それを for ループで食わせて、ダークを引く: 'j*_M37_d.fi...
IDL> for i=0,n_elements(jdlist)-1 do fits_sub, jrlist[i]...
* スカイフレームを作る [#g5c4e4ee]
- ここではスカイフレームを別途取得する例を紹介するが、混...
- 'medstack' は中央値で画像を重ね合わせる。'/scale' オプ...
IDL> medstack, jdlist[6:11], 'calib/jM37_sky.fits', /scale
* オブジェクトフレームからスカイを引く [#w59e9ab4]
- 'fits_sub' を使ってオブジェクトフレームからスカイを引く...
IDL> jslist = (jdlist[0:5]).replace('_d', '_s')
IDL> for i=0,5 do fits_sub, jdlist[i], 'calib/jM37_sky.f...
* 検出器の固有パターン(縦縞)を差し引く [#f1b8628f]
** やっている内容など [#k9c11497]
- 検出器の読み出し関連の回路の電位変動により、NIC には縦...
- 'column_pattern' では、上下半分ずつ、各列ごとの「ゲタ」...
- この縦縞状のゲタ成分は、数値としては小さく (< 100 とか)...
** 手順 [#n4c5ed46]
- 下記の通り、デフォルトでやるのは至ってシンプル。
IDL> jclist = jslist.replace('_s', '_c')
IDL> for i=0,n_elements(jslist)-1 do column_pattern, jsl...
- 結果が思わしくない場合には、sigma-clipping のパラメータ...
e.g.,
IDL> column_pattern, infile, outfile, niter=5, clip=1.0
niter : 繰り返しの回数 (default = 4)
clip : 除外するしきい値をσ(標準偏差)単位で (default =...
* フラット補正 [#c98e0b33]
- 'flatfield_fits' を使って、上記で作ったフラットフレーム...
IDL> jflist = jclist.replace('_c', '_f')
IDL> for i=0,n_elements(jflist)-1 do flatfield_fits, jcl...
- ここではフラット補正を縦縞パターン差し引きの後にやって...
* バッドピクセル補正 [#d90d84e6]
- 'fixpix'を使い、バッドピクセルのリストを食わせて、入力...
IDL> jxlist = jflist.replace('_f', '_x')
IDL> for i=0,n_elements(jxlist)-1 do fixpix, 'common/J-b...
- この'fixpix' は、IRAF の fixpix タスクと同様、単純な線...
- この補正はどの段階でやっても大した差はない。ただしアス...
* アストロメトリー [#r9976004]
- 現状 NICtools では Astrometry.net を使っている。一番視...
- ここでは上記の 'fixpix' を直前に適用したものと仮定して...
IDL> jwlist = jxlist.replace('_x', '_w')
IDL> for i=0,n_elements(jxlist)-1 do solvewcs, jxlist[i]...
- 現在のところ、WCS 貼り付けの成功率はあまり高いとは言え...
- (2022-10-25追記) 天体検出に SExtractor を使うオプション...
-- コマンドに /sex というオプションをつけると、天体検出に...
IDL> jwlist = jxlist.replace('_x', '_w')
IDL> for i=0,n_elements(jxlist)-1 do solvewcs, jxlist[i]...
-- 追々、改善していく予定。
ページ名: