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)
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) '''
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) '''
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)
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)
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)
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)