Fundisp - クラウドでオンライン

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド fundisp です。

プログラム:

NAME


Fundisp - Funtools データ ファイルのデータを表示する

SYNOPSIS


ファンディスプ [-f 形式] [-l] [-n] [-T] [列数⎪bitpix=n]

OPTIONS


-f # 表示用フォーマット文字列
-l # 列 X、Y、VAL を含むリストとしてイメージを表示します
-n # ヘッダーを出力しない
-F [c] # 指定された文字を列区切りとして使用 (デフォルト: スペース)
-T#rdb / starbase形式で出力(タブ区切り文字)

DESCRIPTION


ファンディスプ FITS の指定された FITS 拡張および/または画像セクションのデータを表示します
ファイル、または非 FITS 配列または生のイベント ファイルのセクション内。

プログラムの最初の引数は、FITS 入力画像、配列、または生のイベント ファイルを指定します。
表示する。 「stdin」を指定すると、データは標準入力から読み込まれます。 Funtools を使用する
FITS 拡張、画像セクション、およびフィルターを指定するためのブラケット表記。

表示されているデータが列である場合 (FITS バイナリ テーブルまたは生イベントのいずれか)
ファイル)、個々の行が一覧表示されます。 ブラケット表記を使用してフィルターを追加できます。 したがって:

[sh] fundisp "test.ev[time-(int)time>.15]"
XY PHA PI TIME DX DY
------- ------- ------- --------- ---------------- ---- ------ ----------
10 8 10 8 17.1600 8.50 10.50
9 9 9 9 17.1600 9.50 9.50
10 9 10 9 18.1600 9.50 10.50
10 9 10 9 18.1700 9.50 10.50
8 10 8 10 17.1600 10.50 8.50
9 10 9 10 18.1600 10.50 9.50
9 10 9 10 18.1700 10.50 9.50
10 10 10 10 19.1600 10.50 10.50
10 10 10 10 19.1700 10.50 10.50
10 10 10 10 19.1800 10.50 10.50

[NB: FITS バイナリ テーブル テスト ファイル test.ev と FITS イメージ test.fits は、
funtools funtest ディレクトリに含まれています。]

を使用してテーブルが表示されている場合 ファンディスプ、XNUMX 番目のオプションの引数を使用して
表示する列を指定します。 例えば:

[sh] fundisp "test.ev[time-(int)time>=.99]" "xy time"
XY 時間
-------- -------- ---------------------
5〜6
4〜5
-1 0 154.99000000
-2 1 168.99000000
-3 2 183.99000000
-4 3 199.99000000
-5 4 216.99000000
-6 5 234.99000000
-7 6 253.99000000

特別コラム $ REGION 各行のリージョン ID を表示するように指定できます。

[sh $] fundisp "test.ev[time-(int)time>=.99&&annulus(0 0 0 10 n=3)]" 'xy time $REGION'
XY時間領域
-------- -------- ---------- ----------
5 -6 40.99000000 3
4 -5 59.99000000 2
-1 0 154.99000000 1
-2 1 168.99000000 1
-3 2 183.99000000 2
-4 3 199.99000000 2
-5 4 216.99000000 2
-6 5 234.99000000 3
-7 6 253.99000000 3

ここでは、適切な小数時間で、その位置もXNUMXつ以内にある行のみです。
XNUMX つの年輪が表示されます。

列の前にマイナス記号を使用すると、列を表示から除外できます。

[sh $] fundisp "test.ev[time-(int)time>=.99]" "-time"
XY PHA PI DX DY
-------- -------- -------- ---------- ----------- ----- ------
5-6 5-6 5.50-6.50
4-5 4-5 4.50-5.50
-1 0 -1 0 -1.50 0.50
-2 1 -2 1 -2.50 1.50
-3 2 -3 2 -3.50 2.50
-4 3 -4 3 -4.50 3.50
-5 4 -5 4 -5.50 4.50
-6 5 -6 5 -6.50 5.50
-7 6 -7 6 -7.50 6.50

時間列を除くすべての列が表示されます。

特別コラム $N 各行の序数値を表示するように指定できます。 したがって、
前の例の続き:

Fundisp "test.ev[time-(int)time>=.99]" '-time $n'
XY PHA PI DX DY N
---------- -------- -------- ---------- ----------- ------ ----- ----------
5 -6 5 -6 5.50 -6.50 337
4 -5 4 -5 4.50 -5.50 356
-1 0 -1 0 -1.50 0.50 451
-2 1 -2 1 -2.50 1.50 465
-3 2 -3 2 -3.50 2.50 480
-4 3 -4 3 -4.50 3.50 496
-5 4 -5 4 -5.50 4.50 513
-6 5 -6 5 -6.50 5.50 531
-7 6 -7 6 -7.50 6.50 550

'$n' を先頭から保護するために、列の指定は一重引用符で囲まれていることに注意してください。
殻ごと展開。

一般に、列をアクティブ化および非アクティブ化するためのルールは次のとおりです。

・除外列のみが指定されている場合、除外列を除くすべての列は
有効化されます。

・インクルード列のみが指定されている場合は、指定された列のみがアクティブ化されます。

・包含列と除外列の混合が指定されている場合、除外以外のすべて
列がアクティブになります。 この最後のケースはあいまいであり、ルールは任意です。

列名を明示的に指定することに加えて、特別な記号 + および - することができます
アクティブ化および非アクティブ化に使用されます 列。 これは、アクティベートする場合に便利です。
$ REGION列と他のすべての列。 ルールに従って、構文「$ REGION」
領域列のみをアクティブにし、残りを非アクティブにします。 「+ $ REGION」を使用してアクティブ化します
すべての列とリージョン列。

表示されているデータが画像データの場合 (FITS プライマリ画像、FITS 画像のいずれか)
拡張子、または配列ファイル)、mxn ピクセル表示が生成されます。ここで、m と n は
画像の寸法。 デフォルトでは、ピクセル値は同じデータ型を使用して表示されます
ファイルのように。 ただし、BSCALE および BZERO ヘッダー パラメータが
存在する場合、データは float として表示されます。 いずれの場合も、表示データ型は
次の形式のオプションの XNUMX 番目の引数を使用してオーバーライドされます。

ビットピクス=n

ここで、n は、unsigned char、short、int、float、double をそれぞれ表す 8,16,32、32、64、-XNUMX、-XNUMX です。

もちろん、ランニング ファンディスプ 最小の画像以外では、通常は表示されます
そのサイズは判読不能になります。 したがって、ブラケット記法 (以下を参照) を使用して、
表示を生成する前に、セクションやブロッキングを画像に適用します。 例えば:

[sh] fundisp "test.fits[2:6,2:7]" bitpix=-32
2 3 4 5 6
---------- ---------- ---------- ---------- ----------
2: 3.00 4.00 5.00 6.00 7.00
3: 4.00 5.00 6.00 7.00 8.00
4: 5.00 6.00 7.00 8.00 9.00
5: 6.00 7.00 8.00 9.00 10.00
6: 7.00 8.00 9.00 10.00 11.00
7: 8.00 9.00 10.00 11.00 12.00

を渡すだけで、FITSバイナリテーブルを画像として表示できることに注意してください。
テーブルスルー ファンイメージ 最初:

[sh] ./funimage test.ev stdout ⎪ fundisp "stdin[2:6,2:7]" bitpix=8
2 3 4 5 6
------- ------- ------- ------- -------
2: 3 4 5 6 7
3: 4 5 6 7 8
4: 5 6 7 8 9
5: 6 7 8 9 10
6: 7 8 9 10 11
7: 8 9 10 11 12

Status -l (list) スイッチが使用されると、画像がリストとして表示されます。
列: X、Y、VAL。 例えば:

Fundisp -l "test1.fits[2:6,2:7]" bitpix=-32
XY 値
---------- ---------- -----------
2 2 6.00
3 2 1.00
4 2 1.00
5 2 1.00
6 2 1.00
2 3 1.00
3 3 5.00
4 3 1.00
5 3 1.00
6 3 1.00
2 4 1.00
3 4 1.00
4 4 4.00
5 4 1.00
6 4 1.00
2 5 1.00
3 5 1.00
4 5 1.00
5 5 3.00
6 5 1.00
2 6 1.00
3 6 1.00
4 6 1.00
5 6 1.00
6 6 2.00
2 7 1.00
3 7 1.00
4 7 1.00
5 7 1.00
6 7 1.00

Status -n (nohead) スイッチを使用すると、テーブルのヘッダーは出力されません。 これは便利です、
たとえば、fundisp の出力が gnuplot に送られている場合です。

  ファンディスプ プログラムは、表示形式のデフォルト セットを使用します。

データ型 TFORM フォーマット
-------- ----- --------
ダブル D "%21.8f"
float E "%11.2f"
int J "%10d"
ショート I "%8d"
バイト B "%6d"
文字列 A "%12.12s"
ビット X "%8x"
論理 L "%1x"

したがって、1 つの double と 2 つの short のデフォルトの表示は次のようになります。

[sh] fundisp snr.ev "time xy"

時間 XY
--------------------- -------- --------
79494546.56818075 546 201
79488769.94469175 548 201
...

特定の列の個々の列またはすべての列の表示形式を変更できます。
-f スイッチによるデータ型。 -f に付随するフォーマット文字列はスペースです-
keyword=format 値の区切りリスト。 キーワード値は列名のいずれかです
(この場合、関連付けられた形式はその列にのみ関係します) または FITS テーブル TFORM
指定子 (この場合、形式はそのデータ型を持つすべての列に関係します)。 為に
たとえば、次のようにすべての列の double および short 形式を変更できます。

[sh] fundisp -f "D=%22.11f I=%3d" snr.ev "time xy"

時間 XY
------------------------ --- ---
79494546.56818075478 546 201
79488769.94469174743 548 201
...

または、次のように時間と x 列の形式を変更できます。

[sh] fundisp -f "time=%22.11fx=%3d" snr.ev "time xy"

時間 XY
---------------------- --- --------
79494546.56818075478 546 201
79488769.94469174743 548 201
...

列が TFORM の XNUMX つと同じ名前を持つ場合、競合が発生する可能性があることに注意してください。
指定子。 上記の例では、表の「X」列は、
X (ビット) データ型。 この競合を解決するために、書式文字列は次のように処理されます。
大文字と小文字を区別する比較を使用して、最初に TFORM データ型指定子がチェックされます。 もし
指定されたフォーマット値が大文字の TFORM 値でない場合、大文字と小文字を区別しないチェックが行われます。
列名に作成されます。 これは、上記の例で「X=%3d」が参照することを意味します。
X (ビット) データ型、「x=%3d」は X 列を参照します。

[sh] fundisp -f "X=%3d" snr.ev "xy"

XY
-------- --------
546 201
548 201
...

[sh] fundisp -f "x=%3d" snr.ev "xy"

XY
--- --------
546 201
548 201
...

したがって、原則として、常に小文字で列名を指定し、TFORM を指定することをお勧めします。
大文字のデータ型。

  -f [フォーマット] は、fundisp の XNUMX 回の実行の形式を変更します。 また、使用することができます
  楽しいフォーマット fundisp のすべての呼び出しの形式を変更する環境変数。
この環境変数の値の形式は、 -f
スイッチ。 このグローバル値は、個々のケースで、 -f [フォーマット]
スイッチ。

警告: 形式を一致させるのはユーザーの責任であることにも注意してください。
指定子を列のデータ型に正しく指定してください。 また、ビジュアルを維持するために、
名前と列の間の位置合わせ、次の場合、列名は (左側で) 切り捨てられます。
形式の幅が名前の長さよりも短くなっています。 ただし切り捨ては行わない
出力が RDB 形式の場合 (-T スイッチを使用)。

[古いスタイルのフォーマット文字列はサポートされていますが、推奨されていません。 スペース区切りで構成されています
次の順序で指定される、すべてのデータ型の C 形式のステートメント:

double float int short バイト文字列ビット。

リストのこの順序は、人々が一般的に望んでいるという仮定に基づいています。
float 形式を変更します。

特定のデータ型のフォーマット ステートメントの代わりに「-」を入力すると、デフォルトのフォーマット
使用されている。 また、すべてのフォーマットを指定せずにフォーマット文字列を終了することもできます。
リストの残りの部分にはデフォルトが使用されます。 最小フィールドを指定する必要があることに注意してください
つまり、"%6d" と "%-6d" は有効ですが、"%d" は無効です。

-f [format] を使用すると、次のように double 形式と short 形式を変更できます。

[sh] fundisp -f "22.11f - - 3d" snr.ev "time xy"

時間 XY
------------------------ --- ---
79494546.56818075478 546 201
79488769.94469174743 548 201
...

注意: この形式は推奨されておらず、将来のリリースで削除される予定です。]

  -F[c] スイッチを使用して、(XNUMX 文字の) 列セパレーターを指定できます (
デフォルトはスペースです)。 列の書式設定では、ほぼ確実にスペースも追加されることに注意してください。
個々の列を必要な幅にパディングします。 これらは、次のようなプログラムで削除できます。
整列されていない列を生成するという犠牲を払って。 例えば:

Fundisp -F',' snr.ev'[cir 512 512 .1]'
X、Y、PHA、PI、TIME、DX、DY
512、512、6、7、79493997.45854475、578、574
512、512、8、9、79494575.58943175、579、573
512、512、5、6、79493631.03866175、578、575
512、512、5、5、79493290.86521725、578、575
512、512、8、9、79493432.00990875、579、573

Fundisp -F',' snr.ev'[cir 512 512 .1]' ⎪ sed 's/ *, */,/g'
X、Y、PHA、PI、TIME、DX、DY
512,512,6,7,79493997.45854475,578,574
512,512,8,9,79494575.58943175,579,573
512,512,5,6,79493631.03866175,578,575
512,512,5,5,79493290.86521725,578,575
512,512,8,9,79493432.00990875,579,573

Fundisp -f "x=%3d y=%3d pi=%1d pha=%1d time=%20.11f dx=%3d dy=%3d" -F',' snr.ev'[cir 512
512 .1]' ⎪ sed 's/ *, */,/g'
X,Y,A,I,TIME,DX,DY ---,---,-,-,--------------------,---, ---
512,512,6,7,79493997.45854474604,578,574 512,512,8,9,79494575.58943174779,579,573
512,512,5,6,79493631.03866174817,578,575 512,512,5,5,79493290.86521725357,578,575
512,512,8,9,79493432.00990875065,579,573

Status -T (rdb table) スイッチを使用すると、出力は starbase/rdb データベースに準拠します
形式: タブはスペースではなく列の間に挿入されます。 このフォーマットは
画像ピクセルを表示するときに使用できます ( -l スイッチ)。

最後に、注意してください ファンディスプ 補助テーブルから列フィルターを作成するために使用できます
FITS ファイルで。 たとえば、次のシェル コードは適切な時間間隔を生成します。
(GTI) 標準の GTI 拡張子を含む X 線データ ファイルのフィルター:

#!/bin/sh
sed '1,/---- .*/d
/^$/,$d' ⎪ awk 'tot>0{printf "⎪⎪"};{printf "time="$1":"$2; 全体++}'

このスクリプトを「mkgti」というファイルに配置すると、次のようなコマンドで使用できます。

fundisp foo.fits"[GTI]" ⎪ mkgti > gti.filter

結果のフィルター ファイルは、さまざまな funtools プログラムで使用できます。

関数 foo.fits"[@gti.filter]" ...

適切な時間間隔のイベントのみを処理します。

onworks.net サービスを使用して Fundisp オンラインを使用する



最新のLinuxおよびWindowsオンラインプログラム