Exemplo n.º 1
0
        p_list = []

        for file_num in range(0, num_t):
            p = Process(target=exp_dead_new, args=(file_num, name_file, imsz, wcs, hrflat, foc_list[file_num], asp_solutions[file_num], deads[file_num], cuts[file_num], step, return_dict))
            p.start()
            p_list.append(p)

        for p in p_list:
            p.join()
        print 'all done'
        
        count = np.zeros(imsz)

        for i in range(0, num_t):
            #count += np.load('{0}/{1}_gal_sec_exp_tmp{2}.npy'.format(out_path, name_file, i)) #return_dict[i]
            count += return_dict[i]

        tranges.append(trange)
        hdu = pyfits.PrimaryHDU(count)
        hdu = imagetools.fits_header('NUV', skypos, tranges, skyrange, hdu=hdu, wcs=wcs)
        hdulist = pyfits.HDUList([hdu])
        hdulist.writeto('{0}/count_map_{1}_exp.fits'.format(out_path, name_file), clobber=False)


        for i in range(num_t):
            #os.remove('{0}/{1}_gal_sec_exp_tmp{2}.npy'.format(out_path, name_file, i))
            os.remove('/scratch/dw1519/galex/fits/scan_map/{1}_gal_sec_exp_tmp{2}.dat'.format(out_path, name_file, i))



Exemplo n.º 2
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)