一般分析处理流程:
ROI=7.2
E=300,300000 MeV
1.gtselect 筛选子事件
2.gtmktme 筛选好时间
筛选条件采用fermi团队推荐的:(DATA_QUAL>0)&&(LAT_CONFIG==1)
3.gtbin 创建光子计数图
注意点:图的尺寸为ROI圆外接正方形!保证整个ROI都处于图中
r=7.2,所以正方形面积大小为14.4*14.4,由于处理超新星遗迹,每个像素设置大小为0.05度,则x=y=288
图来源:fermi官方网站
4.gtbin 能量分箱
(1)每10个能量倍数分10个箱
log(300000/300)=3
所以分箱数=3*10=30个
(2)图的尺寸为ROI内接正方形!保证图中的每个点都是ROI内的点。
r=7.2,所以内接正方形边最大值为:s=7.2*1.414=10.18=10度。
像素大小仍为0.05,则画布大小x=y=200
图片来源:fermi官方网站
5.gtltcube 实时曝光
该步骤耗时较长,但相同时间范围内可以通用。
6.gtexpcube2 生成全天空曝光图
7.LATSourceModel
生成model文件
生成后要先将河内背景辐射的自由参数固定,只放开归一化参数!!然后检查自由参数数量,不能太多(少于80个),否则gtlike可能无法收敛。
可考虑方法:1.缩小放开自由参数的范围free_radius=5 改为free_radius=3
2.放开范围不变,固定范围内较远距离源的谱参数,只放开归一化因子。例如free_radius=5不变,生成model后,修改3-5度之间的自由参数。
8.gtsrcmap
制作srcmaps 生成每个源的映射图
只要改动model都需要重新运行制作srcmaps.fits
9.gtlike 似然拟合
一般进行两次似然拟合。第一次:使用生成的model和DRMNFB算法 进行初步运算
第二次:使用第一次拟合生成like1.xml文件和NewMinuit或Minuit算法 进行精确运算
利用print(like2obj.getRetCode()) 查看是否收敛。
一个评估拟合质量的参数:gll_iem_v07 的归一化参数Prefactor 在0.85-1.1之间
10.gttsmap 制作tsmap
遵循一个原则:model里有哪些源,tsmap中没有哪些源。
画图前:固定所有自由参数!将所有free=1改为free=0 !
=========================================================================
处理伽马射线空间延展源时,首先进行空间模板的分析。测试寻找最佳空间模板
点/均匀盘/2维高斯/射电模板 等等
空间分析:
1.利用LATSouceModel中的add_source功能,可以将新的源添加到model文件中,
在添加时,可以指定谱型、谱参数、RA、DEC等等。一般先预设该源为简单的powerlaw,且能谱参数使用自动添加的默认值。该默认值被fermi官方认为是一般是合理的。
需要注意的是,利用自制射电模板或其他波段模板时,要在model中声明该源为延展源,格式参考该工具利用14年延展源源表所生成的内容。
2.使用disk或gaus模板时,需要利用fermipy找出r68%和最佳拟合位置
fermipy需要配置一个config.yaml文件
config文件中要用到的model:extension.xml,使用第二次gtlike产生的文件like2.xml,将
所有谱参数固定,只放开归一化参数。得到所需要的extension.xml
拟合出最佳位置和r68后,利用公式:
disk:r68/0.82=Radius
gaus:r68/1.51=sigma
计算出model里需要更改的Radius或sigma
然后修改第一次gtlike使用的model文件中的R/sigma,RA和DEC
后进行第一次和第二次gtlike拟合!
得到各自模型的似然值:log(likelihood) 值!
利用AIC准则,判断模型优劣。
AIC=2k-2lnL
k是模型自由度的个数,lnL 则是最大似然值
AIC越小,则说明该模型越合适
能谱分析:
空间分析得到最佳空间模板后,就可以进行能谱分析了。伽马射线源的能谱在fermi官方网站中,列举了十余种:FSSC: Fermi Data » Data Analysis » Analysis Threads » Source Model Definitions for gtlike
一般,从最简单的做起,就假设该源的能谱就是最简单的powerlaw 。
使用空间分析中,得到的最佳空间模板,将能谱谱型设为powerlaw,进行拟合,得到log likelihood值
接着尝试使用稍微复杂的logparabola,拟合得到一个 loglikelihood
因为个人是刚刚接触,还未使用过其他谱型,或许需要使用其他程序软件判断能谱是否有拐折等等复杂情况,从而采用更加复杂的谱型!
不同能谱测试后,利用AIC准则,得到最佳能谱模型!
SED
做SED(能谱分布)的第一个关键在于通过对源TS值的判断,合理将能量按对数分段!
此分段过程需要尝试,找到一个合适的分段数。
如果能段范围太大,对流量的计算将误差较大。如果分段范围过小,每个bin的TS值可能会很小,也就是光子数量不够多,也得不到较准确的流量
SED的做法:
每个能段都要从gtselect开始做:gtselect-gtmktime-gtbin-gtexpcube-gtsrcmaps-gtlike
注意:
做SED过程中所使用的model文件,不再是由LATSourceModel生成,而是类似利用fermipy寻找R68和最佳拟合位置中使用的extension.xml文件——由最佳能谱模板gtlike拟合得到的like2.xml文件,固定所有自由谱参数,只放开归一化参数得到。
每个能量bin,我们都会得到一个like.flux和like.fluxError 。利用python输出时,必须声明能段!!!!否则将输出此能量及以下所有能量bin的总流量!
like4.flux('SourceName',emin=emin4,emax=emax4)
输出数值的单位是 photons/cm^2/s
此为该能段的积分光子流量 E dN/dE
是由微分光子流量 dN/dE photons/cm^2/s/Mev 对能量bin的上下限进行积分得到
利用该积分光子流量 E dN/dE,我们可以计算得到该能量bin的积分能流,也就是SED所需要的数值
SED=flux*(Emax*Emin)/(Emax-Emin)
单位: Mev/cm^2/s 转换为erg/cm^2/s 直接*1.602e-6即可
当能量bin的Ts值小于5时,此时计算flux误差较大,改为计算能量上限upper limit
整体能谱:
根据谱型,利用不同谱的dN/dE关系计算。
以LogPb为例:
直接计算F(E)=(dN/dE )* E^2 即可
def f1(E):
return n1 * np.power((E / Eb1), -(alpha1 + beta1 * np.log(E / Eb1))) * np.power(E,2)
在做SED的时候,要注意检查每个能量bin的拟合情况:
1.gll是否在1附近
2.每个能量bin拟合是否收敛?
检查放开自由参数的源,它们的Ts值是否为负数或过小(TS<1或者2)?如果是,要将这些源删除后重新再拟合。
特别是在高能段,光子数量少,这些源会大大影响拟合质量!