Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
datatable[i]['uvis'] = float(line[7][:-1]) * np.exp(1j*float(line[8][:-1])*DEGREE)
datatable[i]['usigma'] = float(line[10])
i += 1
if not vfile==0:
f = open(vfile)
i = 0
for line in f:
line = line.split()
if not (line[0] in ['UV', 'Scan','\n']):
datatable[i]['vvis'] = float(line[7][:-1]) * np.exp(1j*float(line[8][:-1])*DEGREE)
datatable[i]['vsigma'] = float(line[10])
i += 1
# Return the data object
return ehtim.obsdata.Obsdata(ra, dec, rf, bw, datatable, tdata, source=src, mjd=mjd, polrep='stokes')
allsites = obs.tarr['site']
caldict = scans_cal[0]
for i in range(1,len(scans_cal)):
row = scans_cal[i]
for site in allsites:
try: dat = row[site]
except KeyError: continue
try: caldict[site] = np.append(caldict[site], row[site])
except KeyError: caldict[site] = dat
caltable = ehtim.caltable.Caltable(obs.ra, obs.dec, obs.rf, obs.bw, caldict, obs.tarr,
source = obs.source, mjd=obs.mjd, timetype=obs.timetype)
out = caltable
else: # return a calibrated observation
obs_cal = ehtim.obsdata.Obsdata(obs.ra, obs.dec, obs.rf, obs.bw, np.concatenate(scans_cal), obs.tarr,
polrep=obs.polrep, source=obs.source, mjd=obs.mjd,
ampcal=obs.ampcal, phasecal=obs.phasecal, dcal=obs.dcal, frcal=obs.frcal,
timetype=obs.timetype, scantable=obs.scans)
out = obs_cal
# close multiprocessing jobs
if processes != -1:
pool.close()
return out
np.random.seed(seed=seed)
obs = self.observe_same_nonoise(obs_in, sgrscat=sgrscat, ttype=ttype, fft_pad_factor=fft_pad_factor)
# Jones Matrix Corruption & Calibration
if jones:
obsdata = simobs.add_jones_and_noise(obs, add_th_noise=add_th_noise,
opacitycal=opacitycal, ampcal=ampcal,
phasecal=phasecal, dcal=dcal, frcal=frcal, rlgaincal=rlgaincal,
stabilize_scan_phase=stabilize_scan_phase,
stabilize_scan_amp=stabilize_scan_amp, neggains=neggains,
gainp=gainp, taup=taup, gain_offset=gain_offset,
dterm_offset=dterm_offset,
caltable_path=caltable_path, seed=seed)
obs = ehtim.obsdata.Obsdata(obs.ra, obs.dec, obs.rf, obs.bw, obsdata, obs.tarr,
source=obs.source, mjd=obs.mjd, polrep=obs_in.polrep,
ampcal=ampcal, phasecal=phasecal, opacitycal=opacitycal, dcal=dcal, frcal=frcal,
timetype=obs.timetype, scantable=obs.scans)
if inv_jones:
obsdata = simobs.apply_jones_inverse(obs, opacitycal=opacitycal, dcal=dcal, frcal=frcal)
obs = ehtim.obsdata.Obsdata(obs.ra, obs.dec, obs.rf, obs.bw, obsdata, obs.tarr,
source=obs.source, mjd=obs.mjd, polrep=obs_in.polrep,
ampcal=ampcal, phasecal=phasecal,
opacitycal=True, dcal=True, frcal=True,
timetype=obs.timetype, scantable=obs.scans)
#these are always set to True after inverse jones call
# No Jones Matrices, Add noise the old way
obs = ehtim.obsdata.Obsdata(obs.ra, obs.dec, obs.rf, obs.bw, obsdata, obs.tarr,
source=obs.source, mjd=obs.mjd, polrep=obs_in.polrep,
ampcal=ampcal, phasecal=phasecal,
opacitycal=True, dcal=True, frcal=True,
timetype=obs.timetype, scantable=obs.scans)
#these are always set to True after inverse jones call
# No Jones Matrices, Add noise the old way
# TODO There is an asymmetry here - in the old way, we don't offer the ability to *not* unscale estimated noise.
elif add_th_noise:
obsdata = simobs.add_noise(obs, add_th_noise=add_th_noise,
ampcal=ampcal, phasecal=phasecal, opacitycal=opacitycal,
gainp=gainp, taup=taup, gain_offset=gain_offset)
obs = ehtim.obsdata.Obsdata(obs.ra, obs.dec, obs.rf, obs.bw, obsdata, obs.tarr,
source=obs.source, mjd=obs.mjd, polrep=obs_in.polrep,
ampcal=ampcal, phasecal=phasecal, opacitycal=True, dcal=True, frcal=True,
timetype=obs.timetype, scantable=obs.scans)
#these are always set to True after inverse jones call
return obs
scan['vis'] = scan['vis']/scan_zbl
scan['sigma'] = scan['sigma']/scan_zbl
scan['qvis'] = scan['qvis']/scan_zbl
scan['qsigma'] = scan['qsigma']/scan_zbl
scan['uvis'] = scan['uvis']/scan_zbl
scan['usigma'] = scan['usigma']/scan_zbl
scan['vvis'] = scan['vvis']/scan_zbl
scan['vsigma'] = scan['vsigma']/scan_zbl
if len(data_norm):
data_norm = np.hstack((data_norm, scan))
else:
data_norm = scan
obs_cal = ehtim.obsdata.Obsdata(obs.ra, obs.dec, obs.rf, obs.bw, data_norm, obs.tarr,
source=obs.source, mjd=obs.mjd, timetype=obs.timetype,
ampcal=obs.ampcal, phasecal=obs.phasecal,
dcal=obs.dcal, frcal=obs.frcal, scantable=obs.scans)
return obs_cal
# No Jones Matrices, Add noise the old way
# NOTE There is an asymmetry here - in the old way, we don't offer the ability to *not*
# unscale estimated noise.
else:
if caltable_path:
print('WARNING: the caltable is only saved if you apply noise with a Jones Matrix')
obsdata = simobs.add_noise(obs, add_th_noise=add_th_noise,
ampcal=ampcal, phasecal=phasecal, opacitycal=opacitycal,
stabilize_scan_phase=stabilize_scan_phase,
stabilize_scan_amp=stabilize_scan_amp,
gainp=gainp, taup=taup, gain_offset=gain_offset, seed=seed)
obs = ehtim.obsdata.Obsdata(obs.ra, obs.dec, obs.rf, obs.bw, obsdata, obs.tarr,
source=obs.source, mjd=obs.mjd, polrep=obs_in.polrep,
ampcal=ampcal, phasecal=phasecal,
opacitycal=True, dcal=True, frcal=True,
timetype=obs.timetype, scantable=obs.scans)
#these are always set to True after inverse jones call
return obs
phasecal=phasecal, dcal=dcal, frcal=frcal, rlgaincal=rlgaincal,
stabilize_scan_phase=stabilize_scan_phase,
stabilize_scan_amp=stabilize_scan_amp, neggains=neggains,
gainp=gainp, taup=taup, gain_offset=gain_offset,
dterm_offset=dterm_offset,
caltable_path=caltable_path, seed=seed)
obs = ehtim.obsdata.Obsdata(obs.ra, obs.dec, obs.rf, obs.bw, obsdata, obs.tarr,
source=obs.source, mjd=obs.mjd, polrep=obs_in.polrep,
ampcal=ampcal, phasecal=phasecal, opacitycal=opacitycal, dcal=dcal, frcal=frcal,
timetype=obs.timetype, scantable=obs.scans)
if inv_jones:
obsdata = simobs.apply_jones_inverse(obs, opacitycal=opacitycal, dcal=dcal, frcal=frcal)
obs = ehtim.obsdata.Obsdata(obs.ra, obs.dec, obs.rf, obs.bw, obsdata, obs.tarr,
source=obs.source, mjd=obs.mjd, polrep=obs_in.polrep,
ampcal=ampcal, phasecal=phasecal,
opacitycal=True, dcal=True, frcal=True,
timetype=obs.timetype, scantable=obs.scans)
#these are always set to True after inverse jones call
# No Jones Matrices, Add noise the old way
# NOTE There is an asymmetry here - in the old way, we don't offer the ability to *not* unscale estimated noise.
else:
if caltable_path:
print('WARNING: the caltable is currently only saved if you apply noise with a Jones Matrix')
obsdata = simobs.add_noise(obs, add_th_noise=add_th_noise,
ampcal=ampcal, phasecal=phasecal, opacitycal=opacitycal,
u = datatable['u']
v = datatable['v']
fwhm_sigma = fwhm / (2*np.sqrt(2*np.log(2)))
ker = np.exp(-2 * np.pi**2 * fwhm_sigma**2*(u**2+v**2))
datatable['vis'] = vis/ker
datatable['qvis'] = qvis/ker
datatable['uvis'] = uvis/ker
datatable['vvis'] = vvis/ker
datatable['sigma'] = sigma/ker
datatable['qsigma'] = qsigma/ker
datatable['usigma'] = usigma/ker
datatable['vsigma'] = vsigma/ker
obstaper = Obsdata(self.ra, self.dec, self.rf, self.bw, datatable, self.tarr, source=self.source, mjd=self.mjd,
ampcal=self.ampcal, phasecal=self.phasecal, opacitycal=self.opacitycal, dcal=self.dcal, frcal=self.frcal,
timetype=self.timetype, scantable=self.scans)
return obstaper
timetype=obs.timetype, scantable=obs.scans)
#these are always set to True after inverse jones call
# No Jones Matrices, Add noise the old way
# NOTE There is an asymmetry here - in the old way, we don't offer the ability to *not* unscale estimated noise.
else:
if caltable_path:
print('WARNING: the caltable is currently only saved if you apply noise with a Jones Matrix')
obsdata = simobs.add_noise(obs, add_th_noise=add_th_noise,
ampcal=ampcal, phasecal=phasecal, opacitycal=opacitycal,
gainp=gainp, taup=taup, gain_offset=gain_offset, seed=seed)
obs = ehtim.obsdata.Obsdata(obs.ra, obs.dec, obs.rf, obs.bw, obsdata, obs.tarr,
source=obs.source, mjd=obs.mjd, polrep=obs_in.polrep,
ampcal=ampcal, phasecal=phasecal, opacitycal=True, dcal=True, frcal=True,
timetype=obs.timetype, scantable=obs.scans)
#these are always set to True after inverse jones call
return obs
timesplit[t]['v'][i],
timesplit[t]['vis'][i],
timesplit[t]['qvis'][i],
timesplit[t]['uvis'][i],
timesplit[t]['vvis'][i],
timesplit[t]['sigma'][i],
timesplit[t]['qsigma'][i],
timesplit[t]['usigma'][i],
timesplit[t]['vsigma'][i]
), dtype=DTPOL
))
# average data in a time region
else:
tavg += 1
obs_timeregion = Obsdata(self.ra, self.dec, self.rf, self.bw, np.array(timeregion),
self.tarr, source=self.source, mjd=self.mjd)
blsplit = obs_timeregion.unpack(alldata_list, mode='bl')
for bl in range(0,len(blsplit)):
bldata = blsplit[bl]
amp_vis, sig_vis = mean_incoh_amp_from_vis(bldata['vis'], bldata['sigma'], debias=debias,err_type=err_type)
amp_qvis, sig_qvis = mean_incoh_amp_from_vis(bldata['qvis'],bldata['qsigma'],debias=debias,err_type=err_type)
amp_uvis, sig_uvis = mean_incoh_amp_from_vis(bldata['uvis'],bldata['usigma'],debias=debias,err_type=err_type)
amp_vvis, sig_vvis = mean_incoh_amp_from_vis(bldata['vvis'],bldata['vsigma'],debias=debias,err_type=err_type)
datatable.append(np.array
((
np.mean(obs_timeregion.data['time']),
np.mean(bldata['tint']),
bldata['t1'][0],