Esempio n. 1
0
def get_all_bkg_txt(catalog_file, obsIDlist, inpath, ecf):
    ###------read catalog file, need modification---##
    (ra_list, dec_list, srcIDlist) = funcs.read_erosita_cat(
        '/Users/baotong/Desktop/period_Tuc/erosita_cat_coord.xlsx')
    ###-------------------------------------------##
    if len(ra_list) != len(srcIDlist) or len(dec_list) != len(srcIDlist):
        print('ERROR!')
        return None
    # for j in range(len(obsIDlist)):
    #     bkgarea_all=[]
    #     (psf_bettervalue, not_include_index) = get_psfradius(srcID=srcIDlist, ra=ra, dec=dec, obsid=obsIDlist[j], inpath=path,
    #                                                          outpath=path, ecf=0.9, if_SN_radius=False)
    #     (psf_bettervalue_src, not_include_index_2) = get_psfradius(srcID=srcIDlist, ra=ra, dec=dec, obsid=obsIDlist[j], inpath=path,
    #                                                          outpath=path, ecf=0.5, if_SN_radius=False)
    #     outpath = inpath + 'txt/txt_psf75_{0}/'.format(obsIDlist[j])
    #     evtfile = inpath + 'pm00_{0}_020_EventList_c001_bary.fits'.format(obsIDlist[j])
    #     imgfilename =inpath+ '{0}_05_5_img.fits'.format(obsIDlist[j])
    #     for i in range(len(ra_list)):
    #         evtfile=inpath+'pm00_{0}_020_EventList_c001_bary.fits'.format(obsIDlist[j])
    #         bkgarea_temp=get_singlebkg_evt(evtfile=evtfile,imgname=imgfilename,obsid=obsIDlist[j],ra=ra_list[i],dec=dec_list[i],
    #                           emin=200,emax=5000,radius_src=psf_bettervalue[i],radius_list=psf_bettervalue_src,
    #                           ra_list=ra_list,dec_list=dec_list,outpath=outpath,outname=str(srcIDlist[i]))
    #         bkgarea_all.append(bkgarea_temp)
    #     np.savetxt(outpath+'bkg_area.txt',np.column_stack((srcIDlist,np.array(bkgarea_all))))

    for i in range(len(ra_list)):
        merge_txt(obsIDlist=obsIDlist,
                  inpath=inpath + 'txt/',
                  outpath=inpath + 'txt/txt_merge_psf50_0.2_5/',
                  outname=str(srcIDlist[i]),
                  epoch_file='epoch_47Tuc.txt',
                  ecf=ecf)
Esempio n. 2
0
def get_all_src_txt(catalog_file, obsIDlist, inpath, ecf=0.50):
    ###------read catalog file, need modification---##
    (ra_list, dec_list, srcIDlist) = funcs.read_erosita_cat(
        '/Users/baotong/Desktop/period_Tuc/erosita_cat_coord.xlsx')
    # ###-------------------------------------------##
    if len(ra_list) != len(srcIDlist) or len(dec_list) != len(srcIDlist):
        print('ERROR!')
        return None
    for j in range(len(obsIDlist)):
        srcarea = []
        (psf_bettervalue,
         not_include_index) = get_psfradius(srcID=srcIDlist,
                                            ra=ra,
                                            dec=dec,
                                            obsid=obsIDlist[j],
                                            inpath=path,
                                            outpath=path,
                                            ecf=ecf,
                                            if_SN_radius=False)
        outpath = inpath + 'txt/txt_psf{0}_{1}/'.format(
            int(ecf * 100), obsIDlist[j])
        evtfile = inpath + 'pm00_{0}_020_EventList_c001_bary.fits'.format(
            obsIDlist[j])
        imgfilename = inpath + '{0}_02_5_img.fits'.format(obsIDlist[j])
        for i in range(len(ra_list)):
            get_singlesrc_evt(evtfile=evtfile,
                              imgname=imgfilename,
                              obsid=obsIDlist[j],
                              ra=ra_list[i],
                              dec=dec_list[i],
                              radius=psf_bettervalue[i],
                              emin=200,
                              emax=5000,
                              outpath=outpath,
                              outname=str(srcIDlist[i]))
            srcarea.append(np.pi * psf_bettervalue[i]**2)
        np.savetxt(outpath + 'src_area.txt',
                   np.column_stack((srcIDlist, np.array(srcarea))))
    for i in range(len(ra_list)):
        merge_txt(inpath=inpath + 'txt/',
                  outpath=inpath +
                  'txt/txt_merge_psf{0}_0.2_5/'.format(int(ecf * 100)),
                  outname=str(srcIDlist[i]),
                  epoch_file='epoch_47Tuc.txt',
                  ecf=ecf)
Esempio n. 3
0
def write_src_info(ecf=0.75):
    ##返回的radi是arcsec单位,with bkgimage
    path = '/Users/baotong/eSASS/data/raw_data/47_Tuc/'
    srcid = np.arange(1, 889, 1)
    obsIDlist = [700011, 700163, 700013, 700014, 700173, 700174, 700175]
    expT = [25808.86, 25268.79, 25208.83, 25208.82, 8809.16, 8389.71, 8330.68]
    for k in range(len(obsIDlist)):
        obsid = obsIDlist[k]
        srcarea = np.loadtxt(
            path +
            'txt/txt_psf{0}_{1}/src_area.txt'.format(int(100 * ecf), obsid))
        srcscale = srcarea[:, 1]
        radi = np.sqrt(srcscale / np.pi) / 20.
        bkgimgfile = 'bkg_map_02_5_{0}.fits'.format(obsid)
        bkgimg = fits.open(path + bkgimgfile)[0].data.T

        catalog_file = '/Users/baotong/Desktop/period_Tuc/erosita_cat_coord.xlsx'
        (ra, dec, srcIDlist) = funcs.read_erosita_cat(catalog_file)
        (phy_x, phy_y) = funcs.trans_radec2xy(path + bkgimgfile, ra, dec)
        img_x = (phy_x + 41000) / 80
        img_y = (phy_y + 41000) / 80
        img_x = img_x.astype('int')
        img_y = img_y.astype('int')
        img_x[np.where(img_x > 1024 - 1)] = 0
        img_y[np.where(img_y > 1024 - 1)] = 0
        median_bkgvalue = bkgimg[img_x, img_y]
        bkg_cts_est = median_bkgvalue * srcscale / 6400
        src_cts = []
        for i in range(len(srcid)):
            srctxtfile = path + 'txt/txt_psf{0}_{1}/{2}_{1}.txt'.format(
                int(100 * ecf), obsid, srcid[i])
            time = np.loadtxt(srctxtfile)
            src_cts.append(len(time))
        src_cts = np.array(src_cts)
        SNR = (src_cts - bkg_cts_est) / np.sqrt(src_cts)
        SNR[np.where(radi < 0.1)] = 0  ##出界的源,SNR自然应该是0,0.1是随便取的值,筛出出界的源即可
        info = np.column_stack((srcid, src_cts, bkg_cts_est, radi, SNR))
        np.savetxt(
            path +
            'txt/txt_psf{0}_{1}/src_info.txt'.format(int(100 * ecf), obsid),
            info,
            fmt='%10d %10d %10.2f %10.5f %10.5f')
Esempio n. 4
0
def get_all_src_txt_SNRpsf(catalog_file, obsIDlist, inpath):
    (ra_list, dec_list, srcIDlist) = funcs.read_erosita_cat(catalog_file)
    if len(ra_list) != len(srcIDlist) or len(dec_list) != len(srcIDlist):
        print('ERROR!')
        return None
    for j in range(len(obsIDlist)):
        print(obsIDlist[j])
        evtfile = inpath + 'pm00_{0}_020_EventList_c001_bary.fits'.format(
            obsIDlist[j])
        imgfilename = inpath + '{0}_02_5_img.fits'.format(obsIDlist[j])
        src_info = np.loadtxt(inpath +
                              'region/reg_{0}/region_SNRpsf/src_info_{0}.txt'.
                              format(obsIDlist[j]))
        radius_list = src_info[:, 3]
        not_include_index = src_info[:, 6]
        radius_list *= 20.
        outpath = inpath + 'txt/txt_SNR_{0}/'.format(obsIDlist[j])
        for i in range(len(ra_list)):
            if not_include_index[i] == 1:
                get_singlesrc_evt(evtfile=evtfile,
                                  imgname=imgfilename,
                                  obsid=obsIDlist[j],
                                  ra=ra_list[i],
                                  dec=dec_list[i],
                                  radius=radius_list[i],
                                  emin=200,
                                  emax=5000,
                                  outpath=outpath,
                                  outname=str(srcIDlist[i]))

    for i in range(len(ra_list)):
        merge_txt(obsIDlist=obsIDlist[0:4],
                  inpath=inpath + 'txt/',
                  outpath=inpath + 'txt/txt_merge_psf75_0.2_5/',
                  outname=str(srcIDlist[i]),
                  epoch_file='epoch_47Tuc.txt')
Esempio n. 5
0
if __name__ == '__main__':
    # path = '/Users/baotong/eSASS/data/47_Tuc/'
    path = '/Users/baotong/eSASS/data/raw_data/47_Tuc/'
    ID = [700011, 700013, 700014, 700163, 700173, 700174, 700175]
    catalog_file = '/Users/baotong/Desktop/period_Tuc/erosita_cat_coord.xlsx'
    # make_epochfile(path=path,ID=ID,outpath=path+'txt/')

    # for obsid in ID:
    #     get_singlesrc_evt(path+'pm00_{0}_020_EventList_c001_bary.fits'.format(obsid),obsid=obsid,
    #                   ra=6.04485,dec=-72.07383,radius=20./3600,outpath='/Users/baotong/eSASS/data/47_Tuc/txt/',
    #                   outname='182')
    #
    # merge_txt(ID,outpath='/Users/baotong/eSASS/data/47_Tuc/txt/',outname='182')

    # get_psfradius(ra=np.array([6.0178,6.1078]),dec=np.array([-72.08281,-72.18281]),obsid=700011,inpath=path,outpath=path)
    (ra, dec, srcIDlist) = funcs.read_erosita_cat(catalog_file)

    # get_all_src_txt(catalog_file, obsIDlist=ID, inpath=path,ecf=0.90)

    # get_all_bkg_txt(catalog_file, obsIDlist=ID, inpath=path)

    # get_all_src_txt_SNRpsf(catalog_file, obsIDlist=ID, inpath=path)
    # merge_4reg_txt(srcIDlist,ecf=0.90)

    # for obsID in ID[0:]:
    #     (psf_bestSNR_no_overlap,ECF_allsrc,SNR_allsrc,not_include_index)=get_psfradius(srcID=srcIDlist[0:],ra=ra[0:], dec=dec[0:], obsid=obsID, inpath=path,
    #                   outpath=path, ecf=0.9,if_SN_radius=True)
    #     write_cat_psfinfo(srcID=srcIDlist[0:],ra=ra[0:],dec=dec[0:],radius=psf_bestSNR_no_overlap,
    #                       ecf=ECF_allsrc,SNR=SNR_allsrc,not_include_index=not_include_index,obsIDlist=[obsID],outpath=path)
    #     make_region(srcID=srcIDlist[0:],ra=ra[0:],dec=dec[0:],ecf='SNR',radius=psf_bestSNR_no_overlap,obsIDlist=[obsID],outpath=path)
Esempio n. 6
0
    expmap = fits.open(path + expmap_file)[0].data.T

    path_txt = path + 'txt/txt_psf{0}_{1}/'.format(ecf, obsid)
    src_info = np.loadtxt(path_txt + 'src_info.txt')
    src_cts = src_info[:, 0]
    bkg_cts = src_info[:, 1]
    net_cts = src_cts - bkg_cts

    expvalue = expmap[src_x, src_y]
    return (net_cts, expvalue)


if __name__ == '__main__':
    path = '/Users/baotong/eSASS/data/raw_data/47_Tuc/'
    (ra, dec, srcIDlist) = funcs.read_erosita_cat(
        filename='/Users/baotong/Desktop/period_Tuc/erosita_cat_coord.xlsx')
    obsIDlist = [700011, 700163, 700013, 700014, 700173, 700174, 700175]
    for i in range(len(obsIDlist)):
        (net_cts, expvalue) = get_net_info(obsIDlist[i], ra, dec, srcIDlist)
        net_CR = net_cts / expvalue / 1500
        net_CR = net_CR[np.where(net_CR > 0)]
        net_CR = net_CR * 1e4
        plt.hist(net_CR, bins=np.logspace(-2, 2, 30), histtype='step')
        plt.loglog()
        plt.title('obsID: {0}'.format(obsIDlist[i]))
        plt.xlabel('Net count rate')
        plt.ylabel('Number')
        plt.show()
        # net_cts_err = poisson_conf_interval(net_cts, interval='frequentist-confidence').T
        # print(net_cts_err)