使用 PSFEx 提取星像 PSF

Carinnan

安装 #

由于不熟悉,我选择编译安装,以便更多地了解其细节。

参考: https://psfex.readthedocs.io/en/latest/Installing.html

基本过程如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
mkdir PSFex
wget https://github.com/astromatic/psfex/archive/refs/tags/3.24.1.tar.gz
mv 3.24.1.tar.gz PSFex/
cd PSFex/
tar -xzf 3.24.1.tar.gz
cd psfex-3.24.1/
ls
./autogen.sh
./configure
make
./src/psfex

执行 ./configure 时可能遇到缺少依赖包的问题,使用 apt install 安装即可。

我没有执行 make install,也是为了了解运行时具体需要哪些配置。实际使用时建议执行 make install,会更加方便。

使用 #

准备 SExtractor 星表 #

使用 PSFEx 的前置条件是已经用 SExtractor 生成符合要求的 .cat 星表。具体要求参考:https://psfex.readthedocs.io/en/latest/GettingStarted.html

也就是说,SExtractor 生成的星表必须采用特定格式,并包含几个指定参数。以下是我成功运行 PSFEx 时使用的 SExtractor 配置文件,分别是 .sex.param 文件。

.sex

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#------------------------------- Requirements ----------------------------
CATALOG_NAME    ./outputs/test_02.cat   # 输出目录文件名
CATALOG_TYPE    FITS_LDAC                 # 必须使用LDAC格式
#------------------------------- Detection -----------------------------------
###选源标准,请根据实际情况调整

DETECT_MINAREA   80
DETECT_THRESH    3.0
ANALYSIS_THRESH  5.0
FILTER           Y
FILTER_NAME      default.conv
DEBLEND_NTHRESH  8
DEBLEND_MINCONT  0.8

#------------------------------- Photometry ----------------------------------
###测光参数,请根据实际情况调整
PHOT_APERTURES   20                        # 直径20像素(约5角秒)
PHOT_AUTOPARAMS  2.5,3.5
SATUR_KEY        SATURATE                  # 从FITS头读取饱和值
SATUR_LEVEL      58950                     # 65500*0.9(保留10%余量)
MAG_ZEROPOINT    0.0

#------------------------------- Check Image ----------------------------
###输出检查图像便于查看,非PSFex要求
CHECKIMAGE_TYPE    SEGMENTATION,APERTURES   # 2种输出类型
CHECKIMAGE_NAME    Check_seg.fits,Check_aper.fits  # 2个输出文件

.param

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
NUMBER
X_IMAGE
Y_IMAGE
XWIN_IMAGE
YWIN_IMAGE
VIGNET(35,35)
FLUX_APER
FLUXERR_APER
FLUX_AUTO
FLUXERR_AUTO
FLUX_RADIUS
SNR_WIN
ELONGATION
BACKGROUND
FWHM_IMAGE
ELLIPTICITY
CLASS_STAR
FLAGS

运行命令形如:

1
~/apps/astro/Sextractor/sextractor-2.28.2/src/sex ~/data/fits/test_image.fit  -c ~/conf/sex.sex -PARAMETERS_NAME ~/conf/sex.param -FILTER_NAME ~/apps/astro/sextractor-2.28.2/config/default.conv -STARNNW_NAME ~/apps/astro/sextractor-2.28.2/config/default.nnw

注意,我在这个命令中显式指定了 -FILTER_NAME-STARNNW_NAME,并通过路径运行 sex。这是因为我在编译安装时未执行 make install

如果执行了 make installsex 命令应已加入 PATH,而 -FILTER_NAME-STARNNW_NAME 将自动读取默认配置(我显式指定的也只是默认配置)。

(是的,我也编译安装了 SExtractor,并且未执行 make install。)

这样将产生 ./outputs/test_02.cat 星表文件,并在下一步作为 PSFEx 的输入文件。

运行 PSFEx #

运行:

1
~/data/astro/PSFex/psfex-3.24.1/src/psfex ./outputs/test_02.cat  -c ./conf/test_02.psfex

这里的 ./outputs/test_02.cat 是此前 SExtractor 输出的星表,./conf/test_02.psfex 是 PSFEx 的配置文件。

配置文件的详细描述参见:https://psfex.readthedocs.io/en/latest/GettingStarted.html#configuration-parameter-list

这里也给出我使用的配置文件作为参考:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#------------------------------- Input -------------------------------
PSF_DIR          ./outputs/              # PSF 输出目录
PSF_SUFFIX       .psf            # PSF 文件后缀
#------------------------------- PSF Modeling ------------------------
BASIS_TYPE       PIXEL_AUTO
PSF_SIZE         35,35           # 匹配VIGNET_SIZE
PSF_SAMPLING     0.5             # 超采样
CENTER_KEYS      XWIN_IMAGE,YWIN_IMAGE # 使用加权质心

#------------------------------- Star Selection ----------------------
SAMPLE_FWHMRANGE 8.0,42.0
SAMPLE_MAXELLIP  0.8
SAMPLE_MINSN     20
SAMPLE_FLAGMASK  0x0000
SAMPLE_VARIABILITY 0.2
#------------------------------- Output ------------------------------
WRITE_XML        Y
XML_NAME         psfex_output_02.xml
CHECKIMAGE_TYPE  PROTOTYPES                  # 生成 PSF 原型图像
CHECKIMAGE_NAME  psf_model_02.fits           #

输出结果 #

按照上述配置,PSFEx 生成的结果包含 psfex_output_02.xmlpsf_model_02_test_02.fitstest_02 来源于输入的 test_02.cat 星表),以及 ./outputs/test_02.psf

具体的描述参考:https://psfex.readthedocs.io/en/latest/GettingStarted.html#output-files

  • psfex_output_02.xml

不知为何,我迄今仍未通过浏览器成功打开这一 XML 文件。经检查,XML 的第二行是:

1
<?xml-stylesheet type="text/xsl" href="file:///usr/local/share/psfex/psfex.xsl"?>

它指定了 .xsl 样式文件的路径,而我没有执行 make install,所以该路径不存在。

(我知道错了,我已经make install了。)

但是,将此路径修改为 psfex.xsl 所在目录后(~/psfex-3.24.1/xsl/psfex.xsl),仍未成功读取。

于是,我决定使用 TOPCAT 读取此 XML 文件。

从官网下载压缩包并解压,将 .jar 文件放在解压后的目录中,然后执行 chmod +x topcat。此后运行 topcat 即可。