FAST程序使用说明

1. 安装

下载地址:https://w.astro.berkeley.edu/~mariska/FAST_Download.html

运行环境:Linux+IDL

依赖:astron idlutils,安装到idl安装目录下的lib/code下即可。

下载解压程序文件后还需要额外下载ised_del.lr, ised_del.hr, ised_tru.hr和ised_exp.hr库文件,并解压至Libraries目录下。

运行时如果报错“% RESTORE: Incompatible saved routine written by IDL version newer than this one not restored”,说明IDL版本不匹配,需要升级IDL或者重新编译可执行文件,下载https://w.astro.berkeley.edu/~mariska/fast/download/mkexe.idl后到FAST中的idl文件夹下,然后在idl目录下运行idl mkexe.idl -arg fast即可重新生成可执行文件fast,拷贝或者链接到上级目录即可。

编译时如果报错“undefined procedure/function: ‘SETDEFAULTVALUE’”,表明astron idlutils依赖没有安装,按照上面的方法安装依赖即可。

2. 运行

在FAST安装文件夹下新建一个文件夹作为运行文件夹,然后运行“../fast 参数文件名”即可。如果没有指定参数文件名,则自动将fast.param作为参数文件输入。

2.1. 参数输入文件(fast.param)

2.1.1. 宽波段测光信息

CATALOG        = 'hdfn_fs99'		# 输入文件名,测光数据、测光红移文件和滤光片名称转化文件都以该参数决定
AB_ZEROPOINT   = 25. 			# AB星等零点,AB星等mAB=[AB_ZEROPOINT]-2.5log(Flux),该值取决于测光数据([CATALOG].cat)中的流量Flux的单位。当单位为erg/s/cm2/Hz时为-48.57,当单位为微央斯基(mJy)时,该值为23.93
FILTERS_RES    = '../Filters/FILTER.RES.v6.R300'	# 滤光片文件
FILTER_FORMAT  = 1				# 滤光片数据的计数单位,0 能量 / 1光子数量
TEMP_ERR_FILE  = '../Template_error/TEMPLATE_ERROR.fast.v0.2'	# 模板误差函数
NAME_ZPHOT     = 'z_m2'		# 测光红移文件中表示测光红移的列名,如果没有指定则默认读取'z_phot'

2.1.2. 光谱信息

SPECTRUM       = ''
AUTO_SCALE     = 0			# 0 / 1

2.1.3. 输出选项

OUTPUT_DIR     = ''			# 保存至目录
OUTPUT_FILE    = ''	# 保存文件名,如果没有指定默认为[CATALOG]_[SPECTRUM].fout
N_SIM          = 0	# 指定蒙特卡罗方法运行次数,如果为0则只给出最佳拟合结果,其它值会给出相应置信水平的上下限,建议1000
C_INTERVAL     = 68			# 置信水平68(1σ) / 95(2σ) / 99(3σ) or [68,95] etc
BEST_FIT       = 1			# 0 / 1

2.1.4. 恒星模板库选择

LIBRARY_DIR    = '../Libraries/'			# 模板库保存路径,所有模板按照格式[LIBRARY_DIR]/ ised_[SFH].[RESOLUTION]/[LIBRARY]_[RESOLUTION]_[IMF]_z[METAL(只包含小数位)]_ltau[ltau/yr].ised存放
LIBRARY        = 'co11'			# 'bc03' / 'ma05' / 'co11' 
RESOLUTION     = 'hr'			# 'pr'和'lr'用于测光拟合 / 'hr'用于光谱拟合
IMF            = 'ch'			# 'ch' Chabrier / 'sa' Salpeter / 'kr' Kroupa
SFH	       = 'del'			# 'exp'指数衰减的SFR / 'del'乘上t的指数衰减的SFR / 'tru'一定起始时间和终止时间内恒定的SFR
DUST_LAW       = 'kc'			# 'calzetti' Calzetti (2000) / 'mw' Cardelli et al. (1989) / 'kc' Kriek & Conroy (2013) / 'noll'
# E_B 	       = 1			# only define for 'noll' dust law
# delta        = -0.2			# only define for 'noll' dust law
MY_SFH         = ''               

分辨率[RESOLUTION]

恒星形成历史[SFH]

初始质量函数[IMF]

bc03

ma05

co11

pr

exp

ch

×

×

sa

×

kr

×

×

lr

del

ch

×

×

sa

×

kr

×

×

hr

exp

ch

×

sa

×

×

del

ch

×

sa

×

×

tru

ch

×

×

sa

×

×

2.1.5. 恒星模板库参数

LOG_TAU_MIN    = 8.5			# log [yr]
LOG_TAU_MAX    = 10.			# log [yr]
LOG_TAU_STEP   = 0.5			# log [yr], min 0.1
LOG_AGE_MIN    = 8.0			# log [yr]
LOG_AGE_MAX    = 10.0 			# log [yr]
LOG_AGE_STEP   = 0.2			# log [yr]
NO_MAX_AGE     = 0			# 0 / 1
Z_MIN          = 0.01 			# Cannot be 0.	
Z_MAX          = 6.00	
Z_STEP         = 0.05
Z_STEP_TYPE    = 0			# 0: Z_STEP, 1: Z_STEP*(1+z)
A_V_MIN        = 0.			# [mag]
A_V_MAX        = 3.          		# [mag]
A_V_STEP       = 0.1       		# [mag]
METAL          = [0.019]  	        # 模板包含的金属丰度,可以填多个值,不同模板库所能取的值不同,ma05: [0.001, 0.01, 0.02(solar), 0.04],bc03: [0.004, 0.008, 0.02(solar), 0.05],co11: [0.0008, 0.0031, 0.0096, 0.019(solar), 0.03]

2.1.6. 宇宙学参数

H0             = 70.0       		# 哈勃常数,单位km/s/Mpc
OMEGA_M        = 0.3             	# 物质密度占比
OMEGA_L        = 0.7             	# 暗能量密度占比

2.1.7. 中间输出保存选项

SAVE_CHI_GRID  = 0			# 0 不保存 / 1 保存

2.2. 测光数据文件([CATALOG].cat)

第一行为列名

\# id F[n] E[n] z_spec

其中F[n]和E[n]分别表示滤光片n的流量(Fν)和流量误差,n表示滤光片文件中第n个滤光片(第一个为1),可以在[FILTERS_RES].info中快速查看。同时你也可以用滤光片名称转化文件([CATALOG].translate),不用F[n]和E[n]来表示。其它列不能以F或者E开头。流量的单位要和AB星等零点([AB_ZEROPOINT])对应的单位保持一致。z_spec表示光谱红移。

2.3. 测光红移文件([CATALOG].zout)

可以使用EAZY程序直接生成,第一行为列名

\# id z_spec z_1 z_m1 chi_1 temp_1 z_p chi_p temp_p z_m2 odds l68 u68 l95 u95 l99 u99 nfilt

注意:

当[NAME_ZPHOT]没有定义时,自动读取z_phot列作为测光红移的参数。

“l68/l95/l99”和”h68/h95/h99”列用来估计置信区间。

测光数据文件([CATALOG].cat)已经定义了z_spec光谱红移时,该文件中的z_spec将被忽略。

2.4. 滤光片名称转化文件([CATALOG].translate)

滤光片名称转化文件目的是将测光数据文件中的列名转化为F[n],以方便读写测光数据文件。文件分为两列,第二列的F[n]和E[n]会把第一列在测光数据文件中的列名替换掉。

2.4.1. 示例

滤光片名称转化文件[CATALOG].translate内容:

f_f300w F10
e_f300w E10
f_f450w F12
e_f450w E12

滤光片信息文件(FILTER.RES.latest.info)内容:

10 1163  1409 hst/wfpc2_f300w.dat
12 3043  183 hst/wfpc2_f450w.dat

这样在测光数据文件([CATALOG].cat)中就可以用f_f300w代替F10来表示HST的wfpc2_f300w滤光片的数据了。

2.5. 滤光片文件([FILTERS_RES])

Filters文件夹下已经保存了许多望远镜的滤光片的信息。滤光片文件分为滤光片数据文件(FILTER.RES.latest)和信息文件(FILTER.RES.latest.info),信息文件可以快速查看滤光片的序号n。

最新滤光片文件下载地址:https://github.com/gbrammer/eazy-photoz/tree/master/filters

3. 输出结果

3.1. 列名

\#  id  z  ltau  metal  lage  Av  lmass  lsfr  lssfr  la2t  chi2

3.2. 描述

  1. ltau: 恒星形成时标,对于不同的[SFH]其具体定义有区别,单位为log[tau/yr],

  2. lage: 恒星年龄,单位为log[age/yr],

  3. lmass: 恒星质量,单位为log[mass/Msol]

  4. lsfr: 恒星形成率,单位为log[sfr/(Msol/yr)]

  5. lssfr: 比恒星形成率,单位为log[ssfr*yr]

  6. la2t: 恒星年龄和恒星形成时标的比值,单位为log[age/tau]

4. 附加内容

4.1. HST图像测光系统

HST图像给出的数据单位是“电子数每秒”,并不能直接用来测光,需要转化成Fν(erg/s/cm2/Hz)才能使用,此时对应AB星等零点为-48.6。

\[ m_{\rm AB}=-2.5\log{(F_\nu(\rm erg~s^{-1}~cm^{-2}~Hz^{-1}))}-48.60 \]
HST图像的header中存在一个PHOTFLAM字段,它的含义是“逆灵敏度”,单位为(erg/cm2/Å/electron),即“1个电子每秒”所对应的波长流量密度Fλ(erg/s/cm2/Å),将图像乘以该数值,即可获得Fλ图像。

由于AB星等系统是基于频率单位的流量密度Fν,因此还需要进一步转化

\[ F_\nu=\frac{\lambda^2}{c}F_\lambda=\frac{\rm PHOTPLAM^2}{3\times10^{18}}F_\lambda \]
其中PHOTPLAM指的是滤光片的波长,单位为Å,可以从HST图像的header中获取。

将电子数每秒直接转化为视星等:

\[\begin{split} m_{\rm ST}=-2.5\log{F_e}-2.5\log{\rm (PHOTFLAM)}-21.10 \\ m_{\rm AB}=m_{\rm ST}-5\log{\rm (PHOTPLAM)}+18.692 \end{split}\]
参考资料:

https://www.stsci.edu/hst/instrumentation/acs/data-analysis/zeropoints

https://hst-docs.stsci.edu/wfc3dhb/chapter-9-wfc3-data-analysis/9-1-wfc3-data-analysis

4.2. 流量单位和AB星等零点的转化

有些时候流量数值过小,比如小于10-32时,FAST将无法计算出结果,这时候需要缩小输入流量的单位,提升流量数值来进行计算,相应AB星等零点[AB_ZEROPOINT]也要进行修改。

\[ m_{\rm AB}=-2.5\log{F_\nu}+m_0 \]
Fν每增大10倍,m0就应当增大2.5星等,因此如果要将流量数值扩大N倍,m0就应该增加2.5lgN等。当Fν单位为erg/s/cm2/Hz时,m0为-48.6,如果提升m0至m0’,那么增加值为m0’+48.6=2.5lgN,lgN=0.4(m0’+48.6)。

4.3. parallel并行运行FAST

注意用parallel运行多个fast实例时,每个实例的运行目录都要分开,防止生成的文件发生冲突。最好的方法是创建三级目录,让fast在三级目录下运行,然后把参数输入文件(fast.param)中的模板库、滤光片等相对路径再往上加一级,例如LIBRARY_DIR='../../Libraries/'。然后在二级目录创建脚本,里面每一行的内容都写“cd 三级目录名 && ../../fast fast.param”。