这份新手入门教程将带你从零开始,一步步了解AIPS,完成一个简单的数据校准和成像流程。

第一部分:准备工作与心态调整
在开始之前,有几个重要的概念需要明确:
-
AIPS是什么? AIPS是一个基于任务驱动的命令行软件,你不会像使用Photoshop那样点击按钮,而是通过输入特定的命令(称为“任务”,Task)来执行操作。
CALIB是一个校准任务,IMAGR是一个成像任务。 -
为什么用AIPS?
- 行业标准:它是射电天文学领域的“老牌”和权威工具,许多经典天文成果都是用它处理的。
- 功能强大:提供了从数据校准、自校准、复杂成像到测量的全套工具。
- 灵活性高:可以对数据进行精细的、参数化的控制。
-
挑战是什么?
(图片来源网络,侵删)- 学习曲线陡峭:需要记忆大量的任务名称和参数。
- 命令行操作:对不熟悉终端/命令行的用户来说有门槛。
- 界面古老:纯文本界面,没有现代GUI的直观性。
-
必备心态
- 耐心:不要指望一天就能精通,这是一个循序渐进的过程。
- 细心:AIPS的命令参数很多,一个字母的错误都可能导致任务失败或结果错误。
- 勤查文档:这是最重要的习惯! AIPS自带的在线文档(
HELP命令)是你的“圣经”。
第二部分:安装与环境配置
对于新手,最推荐的方式是使用AIPS预编译的虚拟机,这可以让你免去复杂的编译和依赖问题。
-
下载虚拟机镜像
- 访问 NRAO 官网:https://www.aips.nrao.edu/doc/stable/install.html
- 下载适合你虚拟机软件(如 VMware, VirtualBox)的镜像文件(通常是
.ova或.vmdk格式)。
-
配置虚拟机
(图片来源网络,侵删)- 在 VMware 或 VirtualBox 中创建新的虚拟机,并选择“从OVA文件导入”或“从磁盘添加”。
- 启动虚拟机,它会自动进入AIPS环境。
-
首次启动
- 虚拟机启动后,你会看到一个命令行界面。
- 输入
go命令,然后按回车,这会启动AIPS。 - 你会看到类似
1200 >的提示符,这个数字1200是你的“AIPS用户号”(AIPS User Number),非常重要!后续所有操作都会关联到这个用户号下的数据。
第三部分:AIPS核心概念
在动手之前,先理解几个核心概念:
-
任务 AIPS中执行操作的命令。
INP 'CALIB' ; 显示CALIB任务的所有参数和默认值
执行任务的基本格式是:
任务名 关键字=值, 关键字=值, ... -
数据集 AIPS中处理的所有数据(包括观测数据、校准表、图像等)都存储在一个名为
aips++的数据库中,它们通过“数据集名”、“用户号”和“序列号”来唯一标识。 -
数据集名 通常是你观测项目的缩写,
my_vla_obs。 -
用户号 就是你在启动AIPS时看到的那个数字(如
1200),它隔离了不同用户的数据。 -
序列号 一个整数,用于区分同一用户下的不同数据集,每次你将数据存入AIPS时,都需要指定一个新的序列号,或者覆盖旧的。
-
文件扩展名(伪扩展名) AIPS内部不使用传统文件扩展名,但为了方便用户,它使用了一些约定俗成的“伪扩展名”来标识数据类型:
.uv: UV格式的原始观测数据.cl: 校准表.in: 输入表.out: 输出表.im: 图像数据.pl: 绘图文件- 注意:这些只是显示上的提示,文件本身存储在
aips++数据库中。
-
显示器 AIPS没有图形界面,它通过文本字符在终端上绘制图像和图表,你需要先配置显示器。
TV 1 ; 激活1号显示器(通常在终端窗口中) TV 2 ; 激活2号显示器(可能需要在新终端窗口) TV 3 ; 激活3号显示器(通常是一个独立的xgterm窗口)
你会看到屏幕被划分为多个区域,用于显示图像、幅度、相位等信息。
第四部分:新手入门实战流程
我们将模拟处理一个VLA的L波段观测数据,假设你的数据已经从NRAO的FTP服务器下载,并解压,数据通常是 .uv 格式的文件。
步骤 1:将数据读入AIPS
-
确定数据集名和序列号
- 数据集名:
my_first_vla - 序列号:我们使用
1。
- 数据集名:
-
运行
UVLOD任务UVLOD(UV LOaD) 是将外部数据文件读入AIPS数据库的任务。; UVLOD 版本 ; INP ; UVLOD ; INFILE = 'my_vla_data.uv/' ; 你的数据文件路径 ; OUTNAME = 'my_first_vla' ; 数据集名 ; OUTSEQ = 1 ; 序列号 ; OUTDISK = 21 ; 存储在哪个磁盘分区 (1-31) ; CLASS = 'UV' ; 数据类型 ; SUBARRAY= 0 ; 子阵列 ; NCHANS = 1 ; 通道数 (通常设为1,让AIPS自动处理) ; FREQID = 1 ; 频率ID ; DOBAND = 0 ; 不做带宽分割 ; SRTYPE = 'VELA' ; 源名称 ; TIMERANG= ' ' ; 时间范围 (全部) ; STOKES = ' ' ; Stokes参数 (全部) ; SELEC = ' ' ; 其他选择 (无) ; GO
- 操作说明:
- 输入
UVLOD,然后按回车。 - AIPS会显示参数列表,你可以直接输入
GO来使用默认值(不推荐新手这么做)。 - 更好的方式是逐行输入
关键字=值,先输入INFILE = 'my_vla_data.uv/',然后按回车,再输入OUTNAME = 'my_first_vla',再回车... 直到所有必要的参数都设置好。 - 最后输入
GO,任务开始执行,完成后,你的数据就在AIPS里了。
- 输入
- 操作说明:
步骤 2:初步检查数据
-
运行
LISTR任务LISTR(LIST Raster) 可以列出数据集的基本信息。LISTR SOURC = 'my_first_vla' / 数据集名 CLASS = 'UV' / 数据类型 SEQ = 1 / 序列号 DISK = 21 / 磁盘号 OPTYPE = 'HEADER' / 只列出头信息 GO查看输出,确认望远镜、观测时间、频率、积分时间等信息是否正确。
-
运行
TVFLG任务TVFLG(TV FLag) 是一个可视化工具,用来检查数据的质量和坏基线。TVFLG INP SOURC = 'my_first_vla' CLASS = 'UV' SEQ = 1 DISK = 21 DOBAND = 0 FREQID = 1 TIMERANG= ' ' ANTENNA= ' ' CORR = ' ' CHANR = ' ' CPARM = 0 BCHAN = 1 ECHAN = 1 BPVER = 0 OPTYPE = 'PL' GO- 操作说明:
- 任务启动后,你的1号显示器会变成一个网格,每个点代表一个天线(基线)。
- 使用键盘方向键移动光标。
- 按下
F键,可以切换显示不同的数据(幅度、相位、信噪比等)。 - 按下
D(Delete) 键,可以“标记”你认为有问题的基线或数据点(这叫做“Flagging”),被标记的数据会在后续处理中被忽略。 - 按下
U(Unflag) 键可以取消标记。 - 按下
Q键退出。
- 操作说明:
步骤 3:相位校准
这是最关键的一步,通常使用一个已知亮、致密的点源(相位校准源)来校准系统误差和大气引入的相位变化。
-
运行
CALIB任务CALIB是AIPS的核心校准任务。CALIB INP SOURC = 'my_first_vla' ; 你的数据 CLASS = 'UV' SEQ = 1 DISK = 21 OUTDISK= 21 ; 校准表也存放在21号盘 SOLINT = 60.0 ; 解积分时间 (秒) REFANT = 1 ; 参考天线 (通常是1号天线) TECORR = 0 ; 不做TEC校正 SBDONE = 0 ; 不做带宽分割 SMODE = 'P' ; 校准模式 (P=相位, A=幅度, PA=两者) GAINUSE = 1 ; 使用增益表版本1 PHASEC = -1 ; 相位校准源 (需要提前知道) CALCODE= ' ' ; 校准码 BCHAN = 1 ECHAN = 1 BPVER = 0 ; 基线版本号 (0表示新表) GO-
重要参数解释:
SOLINT: 校准的时间间隔,对于相位校准,通常设置为几分钟到十几分钟。REFANT: 选择一个稳定、信噪比高的天线作为参考。SMODE = 'P': 告诉CALIB我们只关心相位校准。PHASEC: 这是相位校准源的名称,你必须提前知道你的观测列表中哪个源是相位校准源,并用它的名字替换-1。PHASEC = '3C286'。
-
输出:
CALIB会生成一个校准表(.cl文件),里面包含了各个时间点的增益和相位校正信息。
-
步骤 4:幅度校准
这一步校准系统的幅度响应(如天线增益、系统温度等)。
-
再次运行
CALIB我们使用上一步生成的校准表作为输入,进行幅度校准。CALIB INP SOURC = 'my_first_vla' ; 你的数据 CLASS = 'UV' SEQ = 1 DISK = 21 OUTDISK= 21 SOLINT = 0.0 ; 0表示对所有数据点做整体校准 REFANT = 1 TECORR = 0 SBDONE = 0 SMODE = 'A' ; 校准模式 (A=幅度) GAINUSE = 1 ; 使用上一步生成的增益表 PHASEC = ' ' ; 不做相位校准 CALCODE= ' ' BCHAN = 1 ECHAN = 1 BPVER = 1 ; 使用上一步生成的基线版本号 GO- 关键变化:
SMODE = 'A':现在只做幅度校准。BPVER = 1:告诉CALIB使用版本号为1的校准表(即上一步的输出)。SOLINT = 0:对整个数据集进行一次性的幅度校准。
- 关键变化:
-
应用校准 我们需要将校准应用到原始数据上,生成一个新的、已校准的数据集。
CLCAL INP SOURC = 'my_first_vla' ; 原始数据 CLASS = 'UV' SEQ = 1 DISK = 21 OUTDISK= 21 DOWT = 0 ; 不做加权 SOLINT = 0.0 DOBAND = 0 FREQID = 1 GAINVER= 1 ; 使用增益表版本1 BPVER = 1 ; 使用基线版本1 GO- 操作说明:
CLCAL会读取原始数据,并应用CALIB生成的校准表。- 它会直接修改原始数据! 强烈建议你先复制一份原始数据再进行校准,或者使用新的序列号。
- 更安全的做法是:在
UVLOD步骤使用序列号1,然后在CLCAL步骤将输出数据集名设为my_first_vla_cal,序列号设为2。
- 操作说明:
步骤 5:成像
数据校准完毕,现在可以生成天空图像了。
-
运行
IMAGR任务IMAGR是AIPS的成像任务,功能非常强大。IMAGR INP SOURC = 'my_first_vla_cal' ; 使用已校准的数据 CLASS = 'UV' SEQ = 2 DISK = 21 OUTNAME = 'my_first_image' ; 图像数据集名 OUTSEQ = 1 ; 图像序列号 OUTDISK = 21 BEAM = -1 ; 使用自然权重 IMSIZE = 256 ; 图像大小 (像素) CELL = 0.5 ; 像素大小 (弧秒) ROBUST = 0.0 ; 权重因子 (0.0 = 自然权重, 1.0 = 高斯权重) STOKES = 'I' ; 成像Stokes I DO3COLOR= 0 ; 不做三色图 BCHAN = 1 ECHAN = 1 BPVER = 0 GO- 关键参数解释:
OUTNAME和OUTSEQ: 定义你生成的图像的名称和序列号。IMSIZE: 图像的像素尺寸,256表示一个 256x256 像素的图像。CELL: 每个像素对应的天区大小(角秒),对于VLA L波段,5是一个比较合适的值。ROBUST: 权重类型。0是自然权重(最高灵敏度,分辨率低),0是高斯权重(分辨率高,灵敏度低),5是折中,新手可以先尝试0。
- 关键参数解释:
-
查看图像 图像生成后,使用
TV任务来查看。TV INP NAME = 'my_first_image' ; 图像数据集名 CLASS = 'image' SEQ = 1 DISK = 21 LUTYPE = -1 ; 使用默认的颜色查找表 DOLEVEL= 0 ; 自动调整颜色级别 GO- 操作说明:
- 图像会显示在1号显示器上。
- 使用方向键移动光标。
- 按
L键可以调整颜色映射。 - 按
Q键退出。
- 操作说明:
第五部分:进阶技巧与资源
-
自校准 当你的图像质量还不够好时,可以进行“自校准”,这是一个迭代过程:
- 用当前图像模型去反算更精确的校准解。
- 用新的校准解重新校准数据。
- 重新成像。
这个过程需要经验,但能显著提升图像质量,相关任务有
SBCAL和CLCAL。
-
多频谱成像 如果你的数据有多个通道,可以使用
MFCLEAN或IMAGR的多通道模式来生成数据立方体。 -
官方文档
HELP命令:在AIPS中输入HELP 任务名,HELP IMAGR,可以查看该任务的详细参数说明。- AIPS Cookbook:https://www.aips.nrao.edu/doc/stable/cookbook.html 这是一本经典的入门教程,有大量实例。
- AIPS User Information Manual:https://www.aips.nrao.edu/doc/stable/AIPS.html 最全面的参考手册。
-
社区与求助
- NRAO的邮件列表
aips-users是提问和交流的好地方,在提问前,请务必仔细查阅文档,并提供你使用的命令和完整的错误信息。
- NRAO的邮件列表
这份教程为你勾勒出了一个最基本的AIPS处理流程,AIPS的学习是一个“干中学”的过程,从一个简单的例子开始,尝试修改参数,观察结果的变化,并不断查阅文档,祝你在射电天文图像处理的世界里探索愉快!
