예제 #1
0
def run_one_r(pid, scan_name, step, start, end, return_dict):

    num_co = int(1/step)

    hdulist = pyfits.open('../AIS_GAL_SCAN/asprta/%s-asprta.fits'%scan_name)
    co_data = hdulist[1].data
    length = co_data.shape[0]

    print length
    for initial_sec in range(start, end):
      file_path = '../data/%s/cata/centroids%d_half.npy'%(scan_name, initial_sec)
      if os.path.exists(file_path):
        print 'skip:%d'%initial_sec
        continue

      intitial_asp = co_data[initial_sec]
      center = np.array([intitial_asp[1], intitial_asp[2]])  

      print(intitial_asp)

      skypos = [0.0, 0.0]
      skyrange = [0.3, 0.3]

      wcs = imagetools.define_wcs(skypos,skyrange,width=False,height=False,verbose=0,pixsz=0.0001)

      initial_time = intitial_asp[0]-0.5

      tranges = []

      for sec in range(num_co):
        tranges.append([initial_time+step*sec, initial_time+step*(sec+1)])
      print tranges

      data = get_data(tranges, scan_name)
      print len(data)

      output = "../data/%s/cata/%s.csv"%(scan_name, scan_name)
      dir = os.path.dirname(output)
      if not os.path.exists(dir):
          os.makedirs(dir)
      centroids = []
      for sec in range(num_co):
        if len(data[sec]) ==0:
          centroid = np.array([0.0, 0.0])
          centroids.append(centroid)
          print centroid
          continue
        coo1 = np.array(data[sec], dtype='float64')[:,-3:-1]
        coo2 = catalog_fits.get_catalog(center, 0.69)

        coo1 = angle_filter(coo1, center, 0.4)
        coo2 = angle_filter(coo2, center, 0.4)

        count, centroid = get_corr_map_fast(coo2, coo1, skypos, skyrange, sec, 0.20, 0.008)  
        centroids.append(centroid)
        print centroid
      print centroids
      np.save('../data/%s/cata/centroids%d_half.npy'%(scan_name, initial_sec), centroids)
예제 #2
0
        initial_time = intitial_asp[0] - 0.5

        tranges = []

        for sec in range(num_co):
            tranges.append(
                [initial_time + step * sec, initial_time + step * (sec + 1)])
        print tranges

        data = get_data(tranges)
        print len(data)

        for sec in range(num_co):
            coo1 = np.array(data[sec], dtype='float64')[:, -3:-1]
            coo2 = catalog_fits.get_catalog(center, 0.69)
            print coo2.shape

            coo1 = angle_filter(coo1, center, 1.)
            coo2 = angle_filter(coo2, center, 1.)

            count = get_corr_map(coo2, coo1, skypos, skyrange)

            hdu = pyfits.PrimaryHDU(count)
            hdu = imagetools.fits_header('NUV',
                                         skypos,
                                         tranges,
                                         skyrange,
                                         hdu=hdu,
                                         wcs=wcs)
            hdulist = pyfits.HDUList([hdu])
def run_one_r(pid, scan_name, step, start, end, return_dict):

    print 'run_one_r'
    num_co = int(1/step)

    hdulist = pyfits.open('../AIS_GAL_SCAN/asprta/%s-asprta.fits'%scan_name)
    co_data = hdulist[1].data
    length = co_data.shape[0]

    plt.plot(co_data['T'])
    plt.show()

    cal_initial = int((co_data[1][0]-0.5)*1000)
    print cal_initial
    offsets = np.load('../data/%s/cata/offsets1_10_new_inter_half_fine.npy'%scan_name)

    print length
    print co_data[-10]
    print co_data[0]
    print co_data[-1][0]-co_data[0][0]
    #print offsets[300*200:301*200]
    for initial_sec in range(start, end):
      file_path = '../data/%s/cata/centroids%d_half.npy'%(scan_name, initial_sec)
      '''
      if os.path.exists(file_path):
        print 'skip:%d'%initial_sec
        continue
      '''
      intitial_asp = co_data[initial_sec]
      center = np.array([intitial_asp[1], intitial_asp[2]])  

      print(intitial_asp)

      skypos = [0.0, 0.0]
      skyrange = [0.2, 0.2]

      wcs = imagetools.define_wcs(skypos,skyrange,width=False,height=False,verbose=0,pixsz=0.0001)

      initial_time = intitial_asp[0]-0.5

      tranges = []

      for sec in range(num_co):
        tranges.append([initial_time+step*sec, initial_time+step*(sec+1)])
      print tranges

      data = get_data_cal(tranges, scan_name, cal_initial, offsets)
      #data = get_data(tranges, scan_name)
      print len(data)

      output = "../data/%s/cata/%s.csv"%(scan_name, scan_name)
      dir = os.path.dirname(output)
      if not os.path.exists(dir):
          os.makedirs(dir)
      centroids = []
      for sec in range(num_co):
        if len(data[sec]) ==0:
          centroid = np.array([0.0, 0.0])
          centroids.append(centroid)
          print centroid
          continue
        coo1 = np.array(data[sec], dtype='float64')[:,-3:-1]
        coo2 = catalog_fits.get_catalog(center, 0.69)

        coo1 = angle_filter(coo1, center, 0.5)
        coo2 = angle_filter(coo2, center, 0.5)

        get_corr_map(coo2, coo1, skypos, skyrange, sec, 0.05, 0.008)
      '''
def run_one_r(pid, scan_name, step, start, end, return_dict):

    print 'run_one_r'
    num_co = int(1 / step)

    hdulist = pyfits.open('../AIS_GAL_SCAN/asprta/%s-asprta.fits' % scan_name)
    co_data = hdulist[1].data
    length = co_data.shape[0]

    plt.plot(co_data['T'])
    plt.show()

    cal_initial = int((co_data[1][0] - 0.5) * 1000)
    print cal_initial
    offsets = np.load('../data/%s/cata/offsets1_10_new_inter_half_fine.npy' %
                      scan_name)

    print length
    print co_data[-10]
    print co_data[0]
    print co_data[-1][0] - co_data[0][0]
    #print offsets[300*200:301*200]
    for initial_sec in range(start, end):
        file_path = '../data/%s/cata/centroids%d_half.npy' % (scan_name,
                                                              initial_sec)
        '''
      if os.path.exists(file_path):
        print 'skip:%d'%initial_sec
        continue
      '''
        intitial_asp = co_data[initial_sec]
        center = np.array([intitial_asp[1], intitial_asp[2]])

        print(intitial_asp)

        skypos = [0.0, 0.0]
        skyrange = [0.2, 0.2]

        wcs = imagetools.define_wcs(skypos,
                                    skyrange,
                                    width=False,
                                    height=False,
                                    verbose=0,
                                    pixsz=0.0001)

        initial_time = intitial_asp[0] - 0.5

        tranges = []

        for sec in range(num_co):
            tranges.append(
                [initial_time + step * sec, initial_time + step * (sec + 1)])
        print tranges

        data = get_data_cal(tranges, scan_name, cal_initial, offsets)
        #data = get_data(tranges, scan_name)
        print len(data)

        output = "../data/%s/cata/%s.csv" % (scan_name, scan_name)
        dir = os.path.dirname(output)
        if not os.path.exists(dir):
            os.makedirs(dir)
        centroids = []
        for sec in range(num_co):
            if len(data[sec]) == 0:
                centroid = np.array([0.0, 0.0])
                centroids.append(centroid)
                print centroid
                continue
            coo1 = np.array(data[sec], dtype='float64')[:, -3:-1]
            coo2 = catalog_fits.get_catalog(center, 0.69)

            coo1 = angle_filter(coo1, center, 0.5)
            coo2 = angle_filter(coo2, center, 0.5)

            get_corr_map(coo2, coo1, skypos, skyrange, sec, 0.05, 0.008)
        '''
예제 #5
0
def run_one_r_sec(pid, scan_name, step, start, end, return_dict):

    num_co = int(1 / step)

    hdulist = pyfits.open('../AIS_GAL_SCAN/asprta/%s-asprta.fits' % scan_name)
    co_data = hdulist[1].data
    length = co_data.shape[0]

    cal_initial = int((co_data[1][0] - 0.5) * 1000)
    offsets = np.load('../data/%s/cata/offsets1_10_new_inter_half_fine.npy' %
                      scan_name)

    print length
    for initial_sec in range(start, end):
        file_path = '../data/%s/cata/centroids_sec%d.npy' % (scan_name,
                                                             initial_sec)
        '''
      if os.path.exists(file_path):
        print 'skip:%d'%initial_sec
        continue
      '''
        intitial_asp = co_data[initial_sec]
        rot = intitial_asp[3]
        center = np.array([intitial_asp[1], intitial_asp[2]])
        #use the first order calibrated asp instead of the original one
        center = cal_asp_r(offsets, cal_initial, intitial_asp[0] * 1000,
                           intitial_asp[1:3], 200)

        #print(intitial_asp)

        skypos = [0.0, 0.0]
        skyrange = [0.1, 0.1]

        wcs = imagetools.define_wcs(skypos,
                                    skyrange,
                                    width=False,
                                    height=False,
                                    verbose=0,
                                    pixsz=0.0001)

        initial_time = intitial_asp[0] - 0.5

        tranges = []

        for sec in range(num_co):
            tranges.append(
                [initial_time + step * sec, initial_time + step * (sec + 1)])
        print tranges

        data = get_data_cal(tranges, scan_name, cal_initial, offsets)
        print len(data)

        output = "../data/%s/cata/%s.csv" % (scan_name, scan_name)
        dir = os.path.dirname(output)
        if not os.path.exists(dir):
            os.makedirs(dir)
        centroids = []
        for sec in range(num_co):
            if len(data[sec]) == 0:
                centroid = np.array([0.0, 0.0])
                centroids.append(centroid)
                print centroid
                continue
            coo1 = np.array(data[sec], dtype='float64')[:, -3:-1]
            coo2 = catalog_fits.get_catalog(center, 0.69)

            coo1 = angle_filter(coo1, center, 1.)
            coo2 = angle_filter(coo2, center, 1.)
            '''
        xi, eta = gn.gnomfwd_simple(coo1[:,0], coo1[:,1], center[0], center[1], -rot, 1/36000., 0.0)
        xi2, eta2 = gn.gnomfwd_simple(coo2[:,0], coo2[:,1], center[0], center[1], -rot, 1/36000., 0.0)

        r, phi = cart2pol(xi, eta)
        r2, phi2 = cart2pol(xi2, eta2)

        coo1 = np.array([r,phi]).T
        coo2 = np.array([r2,phi2]).T
        '''
            get_corr_map(coo2, coo1, skypos, skyrange, sec, 0.05, 0.0015)
            '''
예제 #6
0
    data = get_data(tranges, scan_name)
    print len(data)

    output = "../data/%s/cata/%s.csv"%(scan_name, scan_name)
    dir = os.path.dirname(output)
    if not os.path.exists(dir):
        os.makedirs(dir)
    centroids = []
    for sec in range(num_co):
      if len(data[sec]) ==0:
        centroid = np.array([0.0, 0.0])
        centroids.append(centroid)
        print centroid
        continue
      coo1 = np.array(data[sec], dtype='float64')[:,-3:-1]
      coo2 = catalog_fits.get_catalog(center, 0.69)

      coo1 = angle_filter(coo1, center, 1.)
      coo2 = angle_filter(coo2, center, 1.)

      count, centroid = get_corr_map(coo2, coo1, skypos, skyrange, sec, 0.1, 0.008)  
      centroids.append(centroid)
      print centroid
    print centroids

    np.save('../data/%s/cata/centroids%d.npy'%(scan_name, initial_sec), centroids)

#for hpc
  if False:
    initial_sec = int(sys.argv[1])
def run_one_r_sec(pid, scan_name, step, resolution, asp_cal, start, end, dis_map, return_dict):

    print('run one r sec')

    num_co = int(resolution/step)
    
    #load asp file
    hdulist = pyfits.open('../AIS_GAL_SCAN/asprta/%s-asprta.fits'%scan_name)
    co_data = hdulist[1].data
    length = co_data.shape[0]

    '''
    try:
      asp_cal = np.load('../data/photon_list/%s_asp_new.npy'%scan_name)
    except IOError:
      T = co_data['T']
      ra = co_data['ra']
      dec = co_data['dec']
      roll = co_data['roll']
      t_new = np.arange((T.shape[0]-1)*200)*0.005+T[0]
      ra_new = np.interp(t_new, T, ra)
      dec_new = np.interp(t_new, T, dec)
      roll_new = np.interp(t_new, T, roll)
      asp_cal = np.array([t_new, ra_new, dec_new, roll_new]).T
      np.save('../data/photon_list/%s_asp_new.npy'%scan_name, asp_cal)
    '''

    #cal_initial = int((co_data[1][0]-0.5)*1000)
    #offsets = np.load('../data/%s/cata/offsets_inter_half_sec.npy'%scan_name)

    angle_list = [0.]

    print length
    data1 = []
    data2 = []
    data3 = []
    start = 700
    c_list = []
    for start in range(701, 1500, 50):
      print start
      data1 = []
      data2 = []
      data3 = []
      for initial_sec in range(start, start+50):
        print 'time:%d'%initial_sec
        file_path = '../data/%s/cata/centroids_rot%d.npy'%(scan_name, initial_sec)

        intitial_asp = co_data[initial_sec]
        rot = intitial_asp[3]
        #center = np.array([intitial_asp[1], intitial_asp[2]])
        #use the first order calibrated asp instead of the original one
        #center = cal_asp_r(offsets, cal_initial, intitial_asp[0]*1000, intitial_asp[1:3], 200) 
        #print(intitial_asp)

        skypos = [0.0, 0.0]
        skyrange = [0.02, 0.02]
        if step == 1:
          skyrange = [0.04, 0.04]#[0.3, 0.3]
        elif step == 0.5:
          skyrange = [0.02, 0.02]

        initial_time = intitial_asp[0]-step/2.

        tranges = []

        for sec in range(num_co):
          tranges.append([initial_time+step*sec, initial_time+step*(sec+1)])
        print tranges
        time_c = np.mean(tranges, axis=1)
        print 'center time:'
        print time_c

        #data = get_data_cal(tranges, scan_name, cal_initial, offsets)
        data = get_data(tranges, scan_name)
        print 'number of the photons:'
        print len(data)

        centroids = []
        center_time = []
        for sec in range(num_co):
          center_time.append(time_c[sec])
          if len(data[sec]) == 0:
            centroid = np.array([0.0, 0.0, 0.0])
            centroids.append(centroid)
            print centroid
            continue
          arg = np.argmin(np.absolute(asp_cal[:,0]-time_c[sec]))
          center = asp_cal[arg, 1:3]

          data_sec = dis_correct(np.array(data[sec], dtype='float64'), dis_map, asp_cal)
          coo1 = np.array(data_sec, dtype='float64')
          aperture = 0.69
          #coo1 = np.array(data[sec], dtype='float64')[:,-3:-1]
          #coo2 = catalog_fits.get_catalog_tycho(center, aperture)
          coo2 = catalog_fits.get_catalog(center, aperture)

          #coo1 = angle_filter(coo1, center, 0.6)
          #coo2 = angle_filter(coo2, center, 0.6)

          '''
          fig = plt.gcf()
          fig.set_size_inches(8,8)
          plt.plot(coo1[:,0], coo1[:,1], '.k', markersize=0.1)
          plt.plot(coo3[:,0], coo3[:,1], '+r', markersize=12)
          plt.plot(coo2[:,0], coo2[:,1], '+b', markersize=8)
          #plt.show()
          plt.ylabel('Dec')
          plt.xlabel('RA')
          plt.xlim(center[0]-0.65, center[0]+0.65)
          plt.ylim(center[1]-0.65, center[1]+0.65)
          plt.tight_layout()
          plt.savefig('/home/dw1519/galex/plots/photons.png', dpi=190)
          plt.clf()
          plt.close()
          '''
          '''
          #plot field
          #plt.plot(asp_cal[:,1],'.b')
          #plt.show()
          print center
          print coo1.shape
          print np.min(coo1[:,0]), np.max(coo1[:,0])
          print np.min(coo1[:,1]), np.max(coo1[:,1])
          wcs = imagetools.define_wcs(center,[1.5,1.5],width=False,height=False,verbose=0,pixsz=0.002)
          imsz = imagetools.deg2pix(center, [1.5,1.5], 0.002)
          foc = wcs.sip_pix2foc(wcs.wcs_world2pix(coo1,1),1)
          H,xedges,yedges=np.histogram2d(foc[:,1]-0.5, foc[:,0]-0.5,\
                                     bins=imsz, range=([ [0,imsz[0]],[0,imsz[1
def run_one_r_sec(pid, scan_name, step, start, end, return_dict):

    print('run one r sec')
    pixsz = 0.000416666666666667
    #skypos_count = [5.,-9.5]
    #skyrange_count = [2., 3.]
    #tranges_count = [[0,0]]
    #imsz_count = imsz = imagetools.deg2pix_g(skypos_count, skyrange_count, pixsz)
    #wcs_count = imagetools.define_wcs_g(skypos_count,skyrange_count,width=False,height=False,verbose=0,pixsz=pixsz)
    #count = np.zeros(imsz_count)

    num_co = int(1/step)

    hdulist = pyfits.open('../AIS_GAL_SCAN/asprta/%s-asprta.fits'%scan_name)
    co_data = hdulist[1].data
    length = co_data.shape[0]

    #cal_initial = int((co_data[1][0]-0.5)*1000)
    #offsets = np.load('../data/%s/cata/offsets_inter_half_sec.npy'%scan_name)

    angle_list = [0.]

    print length
    for initial_sec in range(start, end):
      print 'time:%d'%initial_sec
      file_path = '../data/%s/cata/centroids_sec%d.npy'%(scan_name, initial_sec)
      '''
      if os.path.exists(file_path):
        print 'skip:%d'%initial_sec
        continue
      '''
      intitial_asp = co_data[initial_sec]
      rot = intitial_asp[3]
      center = np.array([intitial_asp[1], intitial_asp[2]])
      #use the first order calibrated asp instead of the original one
      #center = cal_asp_r(offsets, cal_initial, intitial_asp[0]*1000, intitial_asp[1:3], 200) 

      #print(intitial_asp)

      skypos = [0.0, 0.0]
      skyrange = [0.2, 0.2]

      wcs = imagetools.define_wcs(skypos,skyrange,width=False,height=False,verbose=0,pixsz=0.0001)

      initial_time = intitial_asp[0]-0.5

      tranges = []

      for sec in range(num_co):
        tranges.append([initial_time+step*sec, initial_time+step*(sec+1)])
      print tranges

      #data = get_data_cal(tranges, scan_name, cal_initial, offsets)
      data = get_data(tranges, scan_name)
      print len(data)

      output = "../data/%s/cata/%s.csv"%(scan_name, scan_name)
      dir = os.path.dirname(output)
      if not os.path.exists(dir):
          os.makedirs(dir)
      centroids = []
      for sec in range(num_co):
        if len(data[sec]) ==0:
          centroid = np.array([0.0, 0.0])
          centroids.append(centroid)
          print centroid
          continue
        coo1 = np.array(data[sec], dtype='float64')[:,-3:-1]
        coo2 = catalog_fits.get_catalog(center, 0.69)

        coo1 = angle_filter(coo1, center, 0.5)
        coo2 = angle_filter(coo2, center, 0.5)


        xi, eta = gn.gnomfwd_simple(coo1[:,0], coo1[:,1], center[0], center[1], -rot, 1/36000., 0.0)

        max_now = -1000
        cent_now = []
        for angle in angle_list:
          coo1[:,0], coo1[:,1] = gn.gnomrev_simple(xi,eta,center[0],center[1],-(rot+angle),1/36000.,0.)
          centroid, max_value = get_corr_map(coo2, coo1, skypos, skyrange, sec, 0.2, 0.004)
          if max_value>max_now:
            max_now = max_value
            cent_now = np.append(centroid, angle) #centroid.append(angle)

        centroids.append(cent_now)
      print centroids
      np.save('../data/%s/cata/centroids_rot%d.npy'%(scan_name, initial_sec), centroids)
예제 #9
0
def run_one_r_o(pid, scan_name, step, start, end, return_dict):

    num_co = int(1 / step)

    hdulist = pyfits.open('../AIS_GAL_SCAN/asprta/%s-asprta.fits' % scan_name)
    co_data = hdulist[1].data
    length = co_data.shape[0]

    print length
    for initial_sec in range(start, end):
        file_path = '../data/%s/cata/centroids_new%d.npy' % (scan_name,
                                                             initial_sec)
        if os.path.exists(file_path):
            print 'skip:%d' % initial_sec
            continue

        intitial_asp = co_data[initial_sec]
        center = np.array([intitial_asp[1], intitial_asp[2]])

        print(intitial_asp)

        skypos = [0.0, 0.0]
        skyrange = [0.3, 0.3]

        wcs = imagetools.define_wcs(skypos,
                                    skyrange,
                                    width=False,
                                    height=False,
                                    verbose=0,
                                    pixsz=0.0001)

        initial_time = intitial_asp[0] - 0.5

        tranges = []

        for sec in range(num_co):
            tranges.append(
                [initial_time + step * sec, initial_time + step * (sec + 1)])
        print tranges

        data = get_data(tranges, scan_name)
        print len(data)

        output = "../data/%s/cata/%s.csv" % (scan_name, scan_name)
        dir = os.path.dirname(output)
        if not os.path.exists(dir):
            os.makedirs(dir)
        centroids = []
        out_mask = []
        for sec in range(num_co):
            if len(data[sec]) == 0:
                centroid = np.array([0.0, 0.0])
                out_mask.append(1)
                centroids.append(centroid)
                print centroid
                continue
            coo1 = np.array(data[sec], dtype='float64')[:, -3:-1]
            coo2 = catalog_fits.get_catalog(center, 0.69)

            coo1 = angle_filter(coo1, center, 1.)
            coo2 = angle_filter(coo2, center, 1.)

            count, centroid, out = get_corr_map_o(coo2, coo1, skypos, skyrange,
                                                  sec, 0.15, 0.008)
            centroids.append(centroid)
            out_mask.append(out)
            print centroid
        print centroids
        np.save(
            '../data/%s/cata/centroids_new%d.npy' % (scan_name, initial_sec),
            centroids)
        np.save('../data/%s/cata/out_mask%d.npy' % (scan_name, initial_sec),
                out_mask)
def run_one_r_sec(pid, scan_name, step, resolution, asp_cal, start, end, dis_map, return_dict):

    print('run one r sec')

    num_co = int(resolution/step)
    
    #load asp file
    hdulist = pyfits.open('../AIS_GAL_SCAN/asprta/%s-asprta.fits'%scan_name)
    co_data = hdulist[1].data
    length = co_data.shape[0]

    '''
    try:
      asp_cal = np.load('../data/photon_list/%s_asp_new.npy'%scan_name)
    except IOError:
      T = co_data['T']
      ra = co_data['ra']
      dec = co_data['dec']
      roll = co_data['roll']
      t_new = np.arange((T.shape[0]-1)*200)*0.005+T[0]
      ra_new = np.interp(t_new, T, ra)
      dec_new = np.interp(t_new, T, dec)
      roll_new = np.interp(t_new, T, roll)
      asp_cal = np.array([t_new, ra_new, dec_new, roll_new]).T
      np.save('../data/photon_list/%s_asp_new.npy'%scan_name, asp_cal)
    '''

    #cal_initial = int((co_data[1][0]-0.5)*1000)
    #offsets = np.load('../data/%s/cata/offsets_inter_half_sec.npy'%scan_name)

    angle_list = [0.]
    start =600#1000
    print length
    for initial_sec in range(start, end):
      print 'time:%d'%initial_sec
      file_path = '../data/%s/cata/centroids_rot%d.npy'%(scan_name, initial_sec)

      intitial_asp = co_data[initial_sec]
      rot = intitial_asp[3]
      #center = np.array([intitial_asp[1], intitial_asp[2]])
      #use the first order calibrated asp instead of the original one
      #center = cal_asp_r(offsets, cal_initial, intitial_asp[0]*1000, intitial_asp[1:3], 200) 
      #print(intitial_asp)

      skypos = [0.0, 0.0]
      skyrange = [0.02, 0.02]
      if step == 1:
        skyrange = [0.04, 0.04]#[0.3, 0.3]
      elif step == 0.5:
        skyrange = [0.02, 0.02]

      initial_time = intitial_asp[0]-step/2.

      tranges = []

      for sec in range(num_co):
        tranges.append([initial_time+step*sec, initial_time+step*(sec+1)])
      print tranges
      time_c = np.mean(tranges, axis=1)
      print 'center time:'
      print time_c

      #data = get_data_cal(tranges, scan_name, cal_initial, offsets)
      data = get_data(tranges, scan_name)
      print 'number of the photons:'
      print len(data)

      centroids = []
      center_time = []
      for sec in range(num_co):
        center_time.append(time_c[sec])
        if len(data[sec]) == 0:
          centroid = np.array([0.0, 0.0, 0.0])
          centroids.append(centroid)
          print centroid
          continue
        arg = np.argmin(np.absolute(asp_cal[:,0]-time_c[sec]))
        center = asp_cal[arg, 1:3]

        data_sec = dis_correct(np.array(data[sec], dtype='float64'), dis_map, asp_cal)
        coo1 = np.array(data_sec, dtype='float64')
        aperture = 0.69
        #coo1 = np.array(data[sec], dtype='float64')[:,-3:-1]
        coo3 = catalog_fits.get_catalog_tycho(center, aperture)
        coo2 = catalog_fits.get_catalog(center, aperture)
        #coo2[:,0] -= 0.0052 #- 0.01005915
        #coo2[:,1] -= -0.006 #- 0.00804992
        #data_sec = dis_correct(np.array(data[sec+1], dtype='float64'), dis_map, asp_cal)
        #coo4 = np.array(data_sec, dtype='float64')

        #coo2 = catalog_fits.get_catalog(center, 2.)
        #coo2 = np.concatenate([coo2,coo3], axis=0)

        coo1 = angle_filter(coo1, center, 0.6)
        coo2 = angle_filter(coo2, center, 0.6)
        coo3 = angle_filter(coo3, center, 0.6)
        #coo4 = angle_filter(coo4, center, 0.6)

        fig = plt.gcf()
        fig.set_size_inches(8,8)
        plt.plot(coo1[:,0], coo1[:,1], '.k', markersize=0.1)
        plt.plot(coo3[:,0], coo3[:,1], '+r', markersize=12)
        plt.plot(coo2[:,0], coo2[:,1], '+b', markersize=8)
        #plt.show()
        plt.ylabel('Dec')
        plt.xlabel('RA')
        plt.xlim(center[0]-0.65, center[0]+0.65)
        plt.ylim(center[1]-0.65, center[1]+0.65)
        plt.tight_layout()
        plt.savefig('/home/dw1519/galex/plots/photons.png', dpi=190)
        plt.clf()
        plt.close()
        '''
        #plot field
        #plt.plot(asp_cal[:,1],'.b')
        #plt.show()
        print center
        print coo1.shape
        print np.min(coo1[:,0]), np.max(coo1[:,0])
        print np.min(coo1[:,1]), np.max(coo1[:,1])
        wcs = imagetools.define_wcs(center,[1.5,1.5],width=False,height=False,verbose=0,pixsz=0.002)
        imsz = imagetools.deg2pix(center, [1.5,1.5], 0.002)
        foc = wcs.sip_pix2foc(wcs.wcs_world2pix(coo1,1),1)
        H,xedges,yedges=np.histogram2d(foc[:,1]-0.5, foc[:,0]-0.5,\
                                   bins=imsz, range=([ [0,imsz[0]],[0,imsz[1]] ]))

        H_new = H.copy()
        data = H_new.byteswap(True).newbyteorder()
        data = data.copy(order='C')
        data = data.byteswap(True).newbyteorder()
        c_data = c3.find_source(data, 1)
        if c_data is not None:
          cx, cy, max_value = c_data
          print cy, cx
          centroid = wcs.wcs_pix2world(wcs.sip_foc2pix([[cx, cy]],1),1)[0]


        coo1 = angle_filter_out(coo1, centroid, 0.01)
        foc = wcs.sip_pix2foc(wcs.wcs_world2pix(coo1,1),1)
        H,xedges,yedges=np.histogram2d(foc[:,1]-0.5, foc[:,0]-0.5,\
                                   bins=imsz, range=([ [0,imsz[0]],[0,imsz[1]] ]))

        plt.imshow(H,interpolation='None', cmap=plt.get_cmap('Greys'), vmax=10)
        plt.colorbar()
        plt.show()


        foc = wcs.sip_pix2foc(wcs.wcs_world2pix(coo2,1),1)
        H,xedges,yedges=np.histogram2d(foc[:,1]-0.5, foc[:,0]-0.5,\
                                   bins=imsz, range=([ [0,imsz[0]],[0,imsz[1]] ]))
        plt.imshow(H,interpolation='None', cmap=plt.get_cmap('Greys'))
        plt.show()
        '''

        xi, eta = gn.gnomfwd_simple(coo1[:,0], coo1[:,1], center[0], center[1], -rot, 1/36000., 0.0)

        max_now = -1000
        cent_now = []
        for angle in angle_list:
          #coo1[:,0], coo1[:,1] = gn.gnomrev_simple(xi,eta,center[0],center[1],-(rot+angle),1/36000.,0.)
          centroid, max_value, flux = get_corr_map(coo3, coo1, skypos, skyrange, sec, 0.0002, initial_sec, '2')
          print centroid
          centroid, max_value, flux = get_corr_map(coo2, coo1, skypos, skyrange, sec, 0.0002, initial_sec, '1')
          print centroid
          #centroid, max_value, flux = get_corr_map(coo4, coo1, skypos, skyrange, sec, 0.0002, initial_sec, '3')
          #print centroid
          if max_value>max_now:
            max_now = max_value
            cent_now = np.append(centroid, angle) #centroid.append(angle)

        centroids.append(cent_now)
      print centroids
      sys.exit(0)
예제 #11
0
def run_one_r_sec(pid, scan_name, step, start, end, return_dict):

    pixsz = 0.000416666666666667
    skypos_count = [5.,-9.5]
    skyrange_count = [2., 3.]
    tranges_count = [[0,0]]
    imsz_count = imsz = imagetools.deg2pix_g(skypos_count, skyrange_count, pixsz)
    wcs_count = imagetools.define_wcs_g(skypos_count,skyrange_count,width=False,height=False,verbose=0,pixsz=pixsz)
    count = np.zeros(imsz_count)

    num_co = int(1/step)

    hdulist = pyfits.open('../AIS_GAL_SCAN/asprta/%s-asprta.fits'%scan_name)
    co_data = hdulist[1].data
    length = co_data.shape[0]

    cal_initial = int((co_data[1][0]-0.5)*1000)
    offsets = np.load('../data/%s/cata/offsets_inter_half_sec.npy'%scan_name)

    angle_list = [-0.035, -0.03, -0.025, -0.02, -0.015, -0.01, -0.005, 0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035]

    print length
    for initial_sec in range(start, end):
      print 'time:%d'%initial_sec
      file_path = '../data/%s/cata/centroids_sec%d.npy'%(scan_name, initial_sec)
      '''
      if os.path.exists(file_path):
        print 'skip:%d'%initial_sec
        continue
      '''
      intitial_asp = co_data[initial_sec]
      rot = intitial_asp[3]
      center = np.array([intitial_asp[1], intitial_asp[2]])
      #use the first order calibrated asp instead of the original one
      center = cal_asp_r(offsets, cal_initial, intitial_asp[0]*1000, intitial_asp[1:3], 200) 

      #print(intitial_asp)

      skypos = [0.0, 0.0]
      skyrange = [0.02, 0.02]

      wcs = imagetools.define_wcs(skypos,skyrange,width=False,height=False,verbose=0,pixsz=0.0001)

      initial_time = intitial_asp[0]-0.5

      tranges = []

      for sec in range(num_co):
        tranges.append([initial_time+step*sec, initial_time+step*(sec+1)])
      print tranges

      data = get_data_cal(tranges, scan_name, cal_initial, offsets)
      print len(data)

      output = "../data/%s/cata/%s.csv"%(scan_name, scan_name)
      dir = os.path.dirname(output)
      if not os.path.exists(dir):
          os.makedirs(dir)
      centroids = []
      for sec in range(num_co):
        if len(data[sec]) ==0:
          centroid = np.array([0.0, 0.0])
          centroids.append(centroid)
          print centroid
          continue
        coo1 = np.array(data[sec], dtype='float64')[:,-3:-1]
        coo2 = catalog_fits.get_catalog(center, 0.69)

        coo1 = angle_filter(coo1, center, 1.)
        coo2 = angle_filter(coo2, center, 1.)


        xi, eta = gn.gnomfwd_simple(coo1[:,0], coo1[:,1], center[0], center[1], -rot, 1/36000., 0.0)

        max_now = -1000
        cent_now = []
        for angle in angle_list:
          coo1[:,0], coo1[:,1] = gn.gnomrev_simple(xi,eta,center[0],center[1],-(rot+angle),1/36000.,0.)
          centroid, max_value = get_corr_map(coo2, coo1, skypos, skyrange, sec, 0.02, 0.004)
          if max_value>max_now:
            max_now = max_value
            cent_now = np.append(centroid, angle) #centroid.append(angle)
        

        coo1[:,0], coo1[:,1] = gn.gnomrev_simple(xi,eta,center[0]-cent_now[0],center[1]-cent_now[1],-(rot+cent_now[2]),1/36000.,0.)
        
        sky_data = SkyCoord(coo1, unit='deg', frame=FK5, equinox='J2000.0')
        gal = sky_data.transform_to(Galactic)
        data_count = np.concatenate((np.array([gal.l.deg]).T, np.array([gal.b.deg]).T), axis=1) 
        H = hist_g(data_count, wcs_count, imsz_count)
        count += H
        sky_data=gal=data_count=H = None
        gc.collect()

        #xi2, eta2 = gn.gnomfwd_simple(coo2[:,0], coo2[:,1], center[0], center[1], -rot, 1/36000., 0.0)

        #r, phi = cart2pol(xi, eta)
        #r2, phi2 = cart2pol(xi2, eta2)

        #coo1 = np.array([r,phi]).T
        #coo2 = np.array([r2,phi2]).T

        #get_corr_map(coo2, coo1, skypos, skyrange, sec, 0.05, 0.0015)  

        centroids.append(cent_now)
        print cent_now
      print centroids
      #np.save('../data/%s/cata/centroids_rot%d.npy'%(scan_name, initial_sec), centroids)
    hdu = pyfits.PrimaryHDU(count)
    hdu = imagetools.fits_header('NUV', skypos_count, tranges_count, skyrange_count, hdu=hdu, wcs=wcs_count)
    hdulist = pyfits.HDUList([hdu])
    hdulist.writeto('../fits/count_map_%s_gal_sec_rot_count.fits'%(scan_name), clobber=False)
예제 #12
0
def run_one_r_sec(pid, scan_name, step, start, end, return_dict):

    num_co = int(1/step)

    hdulist = pyfits.open('../AIS_GAL_SCAN/asprta/%s-asprta.fits'%scan_name)
    co_data = hdulist[1].data
    length = co_data.shape[0]

    cal_initial = int((co_data[1][0]-0.5)*1000)
    offsets = np.load('../data/%s/cata/offsets1_10_new_inter_half_fine.npy'%scan_name)

    print length
    for initial_sec in range(start, end):
      file_path = '../data/%s/cata/centroids_sec%d.npy'%(scan_name, initial_sec)
      if os.path.exists(file_path):
        print 'skip:%d'%initial_sec
        continue

      intitial_asp = co_data[initial_sec]
      #center = np.array([intitial_asp[1], intitial_asp[2]])
      #use the first order calibrated asp instead of the original one
      center = cal_asp_r(offsets, cal_initial, intitial_asp[0]*1000, intitial_asp[1:3], 200) 

      print(intitial_asp)

      skypos = [0.0, 0.0]
      skyrange = [0.1, 0.1]

      wcs = imagetools.define_wcs(skypos,skyrange,width=False,height=False,verbose=0,pixsz=0.0001)

      initial_time = intitial_asp[0]-0.5

      tranges = []

      for sec in range(num_co):
        tranges.append([initial_time+step*sec, initial_time+step*(sec+1)])
      print tranges

      data = get_data_cal(tranges, scan_name, cal_initial, offsets)
      print len(data)

      output = "../data/%s/cata/%s.csv"%(scan_name, scan_name)
      dir = os.path.dirname(output)
      if not os.path.exists(dir):
          os.makedirs(dir)
      centroids = []
      for sec in range(num_co):
        if len(data[sec]) ==0:
          centroid = np.array([0.0, 0.0])
          centroids.append(centroid)
          print centroid
          continue
        coo1 = np.array(data[sec], dtype='float64')[:,-3:-1]
        coo2 = catalog_fits.get_catalog(center, 0.69)

        coo1 = angle_filter(coo1, center, 1.)
        coo2 = angle_filter(coo2, center, 1.)

        count, centroid = get_corr_map_fast(coo2, coo1, skypos, skyrange, sec, 0.03, 0.0015)  
        centroids.append(centroid)
        print centroid
      print centroids
      np.save('../data/%s/cata/centroids_sec%d.npy'%(scan_name, initial_sec), centroids)
def run_one_r_sec(pid, scan_name, step, start, end, return_dict):

    print('run one r sec')
    pixsz = 0.000416666666666667
    #skypos_count = [5.,-9.5]
    #skyrange_count = [2., 3.]
    #tranges_count = [[0,0]]
    #imsz_count = imsz = imagetools.deg2pix_g(skypos_count, skyrange_count, pixsz)
    #wcs_count = imagetools.define_wcs_g(skypos_count,skyrange_count,width=False,height=False,verbose=0,pixsz=pixsz)
    #count = np.zeros(imsz_count)

    num_co = int(1 / step)

    hdulist = pyfits.open('../AIS_GAL_SCAN/asprta/%s-asprta.fits' % scan_name)
    co_data = hdulist[1].data
    length = co_data.shape[0]

    #cal_initial = int((co_data[1][0]-0.5)*1000)
    #offsets = np.load('../data/%s/cata/offsets_inter_half_sec.npy'%scan_name)

    angle_list = [0.]

    print length
    for initial_sec in range(start, end):
        print 'time:%d' % initial_sec
        file_path = '../data/%s/cata/centroids_sec%d.npy' % (scan_name,
                                                             initial_sec)
        '''
      if os.path.exists(file_path):
        print 'skip:%d'%initial_sec
        continue
      '''
        intitial_asp = co_data[initial_sec]
        rot = intitial_asp[3]
        center = np.array([intitial_asp[1], intitial_asp[2]])
        #use the first order calibrated asp instead of the original one
        #center = cal_asp_r(offsets, cal_initial, intitial_asp[0]*1000, intitial_asp[1:3], 200)

        #print(intitial_asp)

        skypos = [0.0, 0.0]
        skyrange = [0.2, 0.2]

        wcs = imagetools.define_wcs(skypos,
                                    skyrange,
                                    width=False,
                                    height=False,
                                    verbose=0,
                                    pixsz=0.0001)

        initial_time = intitial_asp[0] - 0.5

        tranges = []

        for sec in range(num_co):
            tranges.append(
                [initial_time + step * sec, initial_time + step * (sec + 1)])
        print tranges

        #data = get_data_cal(tranges, scan_name, cal_initial, offsets)
        data = get_data(tranges, scan_name)
        print len(data)

        output = "../data/%s/cata/%s.csv" % (scan_name, scan_name)
        dir = os.path.dirname(output)
        if not os.path.exists(dir):
            os.makedirs(dir)
        centroids = []
        for sec in range(num_co):
            if len(data[sec]) == 0:
                centroid = np.array([0.0, 0.0])
                centroids.append(centroid)
                print centroid
                continue
            coo1 = np.array(data[sec], dtype='float64')[:, -3:-1]
            coo2 = catalog_fits.get_catalog(center, 0.69)

            coo1 = angle_filter(coo1, center, 0.5)
            coo2 = angle_filter(coo2, center, 0.5)

            xi, eta = gn.gnomfwd_simple(coo1[:, 0], coo1[:, 1], center[0],
                                        center[1], -rot, 1 / 36000., 0.0)

            max_now = -1000
            cent_now = []
            for angle in angle_list:
                coo1[:,
                     0], coo1[:,
                              1] = gn.gnomrev_simple(xi, eta, center[0],
                                                     center[1], -(rot + angle),
                                                     1 / 36000., 0.)
                centroid, max_value = get_corr_map(coo2, coo1, skypos,
                                                   skyrange, sec, 0.2, 0.004)
                if max_value > max_now:
                    max_now = max_value
                    cent_now = np.append(centroid,
                                         angle)  #centroid.append(angle)

            centroids.append(cent_now)
        print centroids
        np.save(
            '../data/%s/cata/centroids_rot%d.npy' % (scan_name, initial_sec),
            centroids)