使用PSFex提取星像PSF

安装

由于不熟悉,我选择编译安装,以便更多地了解其细节. 参考: https://psfex.readthedocs.io/en/latest/Installing.html 基本过程如下:

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-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:

#------------------------------- 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:

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

运行时的命令形如:

~/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。 如果执行了,sex命令应已成为环境变量,而-FILTER_NAME-STARNNW_NAME将自动读取默认配置(我所显式制定的也只是默认配置)。

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

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

PSFex运行

运行:

~/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

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

#------------------------------- 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.xml,一个psf_model_02_test_02.fits(test_02来源于输入的test_02.cat星表),以及一个./outputs/test_02.psf

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

  • psfex_output_02.xml

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

<?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),仍未成功读取。

于是我决定使用topcathttps://www.star.bris.ac.uk/~mbt/topcat/读取此.xml文件:

在官网中下载.jar文件并解压,进入目录,chmod +x topcat。此后要将刚才的.jar压缩包放到解压出的目录中。然后topcat运行即可。