funtable - 云端在线

这是命令 funtable,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


funtable - 将 Funtools 文件中的选定行复制到 FITS 二进制表

概要


有趣的 [-a] [-i 拘 -z] [-m] [-s cols] [列]

配置


-a # 附加到现有输出文件作为表扩展名
-i # 对于图像数据,只生成 X 和 Y 列
-m #对于表,为每个区域写一个单独的文件
-s "col1 ..." # 排序的列
-z # 对于图像数据,输出零值像素

商品描述


有趣的 从 FITS 的指定 FITS 扩展(仅限二进制表)中选择行
文件,或来自非 FITS 原始事件文件,并将这些行写入 FITS 二进制表
文件。 它还将从图像或原始数组文件创建一个 FITS 二进制表。

程序的第一个参数指定 FITS 文件、原始事件文件或原始数组
文件。 如果指定了“stdin”,则从标准输入读取数据。 使用 Funtools
用于指定 FITS 扩展和过滤器的括号表示法。 第二个论点是
输出 FITS 文件。 如果指定了“stdout”,则将 FITS 二进制表写入
标准输出。 默认情况下,输入文件的所有列都被复制到输出文件中。
可以使用以下形式的可选第三个参数输出选定的列:

“column1 column1 ... columnN”

有趣的 程序通常用于使用 Table 从 FITS 二进制表中选择行
过滤器和/或空间区域过滤器。 例如,您可以只复制选定的行(和
仅输出选定的列)通过在命令中执行,例如:

[sh] funtable "test.ev[pha==1&&pi==10]" stdout "xy pi pha" 获得fundisp stdin
XY PHA PI
-------- -------- -------- ---------
1 10 1 10
1 10 1 10
1 10 1 10
1 10 1 10
1 10 1 10
1 10 1 10
1 10 1 10
1 10 1 10
1 10 1 10
1 10 1 10

特别栏目 $地区 可以指定写入每行的区域ID:

[sh $] funtable "test.ev[time-(int)time>=.99&&&annulus(0 0 0 10 n=3)]" stdout 'xy time $REGION' 获得fundisp stdin
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

这里只有具有适当小数时间且其位置也在以下之一内的行
三个年轮都写好了。

可以使用列前的减号从显示中排除列:

[sh $] funtable "test.ev[time-(int)time>=.99]" stdout "-time" 获得fundisp stdin
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

写入除时间列之外的所有列。

一般来说,激活和去激活列的规则是:

· 如果只指定了排除列,那么除排除列之外的所有列都将
被激活。

· 如果只指定了包含列,则只激活指定的列。

· 如果包含和排除列的混合被指定,那么除了排除列之外的所有列
列将处于活动状态; 最后一种情况是模棱两可的,规则是任意的。

除了明确指定列名外,特殊符号 +-
用于激活和取消激活 所有 列。 如果您想激活
$REGION 列以及所有其他列。 根据规则,语法“$REGION”
仅激活区域列并停用其余部分。 使用“+ $REGION”激活
所有列以及区域列。

通常,只有选定的表会复制到输出文件中。 在 FITS 二进制表中,
有时需要将所有其他 FITS 扩展名复制到输出文件中
好。 这可以通过在输入的扩展名后附加一个“+”号来完成
文档名称。 例如,下面的第一个命令只复制 EVENT 表,而
第二个命令也复制其他扩展:

[sh] funtable "/proj/rd/data/snr.ev[EVENTS]" events.ev
[sh] funtable "/proj/rd/data/snr.ev[EVENTS+]" eventsandmore.ev

如果输入文件是图像或原始数组文件,则 有趣的 将生成一个 FITS
图像中像素值的二进制表。 请注意,无法指定
要输出的列(使用命令行参数 3)。 相反,有两种方法可以
从图像创建这样的二进制表。 默认情况下,生成一个 3 列的表,其中
列是“X”、“Y”和“VALUE”。 对于图像中的每个像素,单行(事件)
使用指定了图像的 dim1 和 dim2 值的“X”和“Y”列生成
像素,分别为“VALUE”列分配像素值。 带着某种
表,运行 有趣的 在“VALUE”列上将给出与运行相同的结果 有趣的
在原始图像上。

如果 -i ("individual" rows) 开关被指定,那么只有 "X" 和 "Y" 列是
生成。 在这种情况下,图像中的每个正像素值生成 n 行(事件),
其中 n 等于该像素的整数值(加 0.5,对于浮点数
数据)。 有效, -i 大约重新创建一个表的行
合并到输入图像中。 (当然,这只是近似正确,因为
结果 x,y 位置被整数化。)

如果 -s [第1列 col2 ... 冒号] ("sort") 开关被指定,输出一个二进制的行
表将使用指定的列作为排序键进行排序。 排序键必须是
标量列并且还必须是输出文件的一部分(即您不能对列进行排序
但不包括在输出中)。 该设施使用 _种类 程序(包含在
funtools),必须可以通过您的路径访问。

对于二进制表, -m (“多个文件”)开关将为每个文件生成一个单独的文件
过滤器规范中的区域,即每个文件只包含来自该区域的行。
通过过滤器但不在任何区域中的行也被放在一个单独的文件中。

由生成的单独的输出文件名 -m 开关是自动产生的
包含关联区域的区域 ID 的根输出文件。 (注意区域
ids 从 1 开始,因此与 id 0 关联的文件名包含通过
过滤器但不在任何给定区域中。)输出文件名生成如下:

· $n 规范可以在根文件名的任何地方使用(适当引用到
保护它免受外壳的影响)并将扩展为关联的 ID 号
地区。 例如:

funtable -m input.fits'[cir(512,512,1);cir(520,520,1)...]''foo.goo_$n.fits'

将生成名为 foo.goo_0.fits 的文件(对于不在任何区域但仍通过
过滤器),foo.goo_1.fits(区域 id #1 中的行,第一个区域),foo.goo_2.fits
(区域 id #2 中的行)等。请注意,输出根中的单引号是必需的
保护'$'免受shell的影响。

· 如果没有指定$n,那么region id 将放在第一个点(.) 之前
文件名。 因此:

funtable -m input.fits'[cir(512,512,1);cir(520,520,1)...]' foo.evt.fits

将生成名为 foo0.evt.fits 的文件(对于不在任何区域但仍通过的行
过滤器)、foo1.evt.fits(区域 id #1 中的行)、foo2.evt.fits(区域 id 中的行
#2)等。

· 如果根输出文件名中没有指定点,则区域ID将为
附加到文件名。 因此:

funtable -m input.fits'[cir(512,512,1);cir(520,520,1)...]''foo_evt'

将生成名为 foo_evt0 的文件(对于不在任何区域但仍通过
filter)、foo_evt1(区域 id #1 中的行)、foo_evt2(区域 id #2 中的行)等。

多文件机制提供了一种生成单个源数据文件的简单方法
一次通过数据。

默认情况下,会创建一个新的 FITS 文件,并将二进制表写入第一个
延期。 如果 -a (append) 开关被指定,表被附加到一个现有的
FITS 文件作为 BINTABLE 扩展名。 请注意,输出 FITS 文件必须已经存在。

如果 -z (“零”像素值)开关被指定并且 -i 未指定,则像素
具有零值的输出将其“VALUE”列设置为零。 显然,这
当输出单个事件时,switch 没有意义。

使用 onworks.net 服务在线使用 funtable



最新的 Linux 和 Windows 在线程序