download_dir=data_dir) # Fetch model file get_mojave_mdl_file(tsv_table, source, epoch, outdir=data_dir) # Clean uv-fits clean_difmap(uv_fits, 'cc.fits', 'I', [1024, 0.1], path=data_dir, path_to_script=path_to_script, outpath=data_dir) # Create clean image instance cc_image = create_clean_image_from_fits_file(os.path.join(data_dir, 'cc.fits')) comps = import_difmap_model(mdl_fname, data_dir) model = Model(stokes='I') model.add_components(*comps) # Check that model fits UV-data well uv_data = UVData(os.path.join(data_dir, uv_fits)) uv_data.uvplot() mdl_data = copy.deepcopy(uv_data) mdl_data.substitute([model]) mdl_data.uvplot(sym='.r') cc_image_ = copy.deepcopy(cc_image) cc_image_._image = np.zeros(cc_image._image.shape, dtype=float) cc_image_.add_model(model) plt.figure() plt.matshow(cc_image_.cc_image - cc_image.cc_image) plt.colorbar()
components_priors.append({'flux': (sp.stats.uniform.ppf, [0, 1], {}), 'x': (sp.stats.uniform.ppf, [-2, 4], {}), 'y': (sp.stats.uniform.ppf, [-2, 4], {}), 'bmaj': (sp.stats.uniform.ppf, [0, 1], {})}) components_priors.append({'flux': (sp.stats.uniform.ppf, [0, 1], {}), 'x': (sp.stats.uniform.ppf, [-5, 10], {}), 'y': (sp.stats.uniform.ppf, [-5, 10], {}), 'bmaj': (sp.stats.uniform.ppf, [0, 2], {})}) components_priors.append({'flux': (sp.stats.uniform.ppf, [0, 1], {}), 'x': (sp.stats.uniform.ppf, [-6, 12], {}), 'y': (sp.stats.uniform.ppf, [-6, 12], {}), 'bmaj': (sp.stats.uniform.ppf, [0, 3], {})}) results = fit_model_with_nestle(uv_fits, mdl_file, components_priors, outdir=outdir) data_dir = '/home/ilya/code/vlbi_errors/silke' # uv_fits = '0851+202.u.2012_11_11.uvf' uv_fits = '0851+202.u.2004_11_05.uvf' # mdl_fname = '2.mod.2012_11_11' mdl_fname = '1.mod.2004_11_05' uv_data = UVData(os.path.join(data_dir, uv_fits)) comps = import_difmap_model(mdl_fname, data_dir) model = Model(stokes='I') model.add_components(*comps) fig = uv_data.uvplot(style='a&p') uv_data.substitute([model]) uv_data.uvplot(color='r', fig=fig, phase_range=[-0.2, 0.2])
sys.path.insert(0, '/home/ilya/github/vlbi_errors/vlbi_errors') import numpy as np from skimage.transform import rotate import matplotlib.pyplot as plt from uv_data import UVData from components import ImageComponent from model import Model mas_to_rad = 4.8481368 * 1E-09 # uv_file = '/home/ilya/github/bck/jetshow/uvf/0716+714_raks01xg_C_LL_0060s_uva.fits' uv_file = '/home/ilya/github/bck/jetshow/uvf/2200+420_K_SVLBI.uvf' uvdata = UVData(uv_file) # fig = uvdata.uvplot(stokes=["LL"]) fig = uvdata.uvplot() images = list() angles = range(0, 180, 30) # image = '/home/ilya/github/bck/jetshow/uvf/map_i_09_C.txt' image = '/home/ilya/github/bck/jetshow/cmake-build-debug/map_i.txt' image = np.loadtxt(image) images.append(image) # imsize = 1096 imsize = 1734 imsize = (imsize, imsize) # mas_in_pix = 0.005 mas_in_pix = 0.00253 y, z = np.meshgrid(np.arange(imsize[0]), np.arange(imsize[1])) y = y - imsize[0] / 2. + 0.5
uv_fname_uv = '0945+408.u.2007_04_18.uvf' dfm_model_fname = 'dfmp_original_model.mdl' comps = import_difmap_model(dfm_model_fname, base_path) model_uv = Model(stokes='I') model_uv.add_components(*comps) uvdata = UVData(os.path.join(base_path, uv_fname_uv)) uvdata_m = UVData(os.path.join(base_path, uv_fname_uv)) uvdata_m.substitute([model_uv]) uvdata_r = uvdata - uvdata_m # Plot uv-data label_size = 12 matplotlib.rcParams['xtick.labelsize'] = label_size matplotlib.rcParams['ytick.labelsize'] = label_size uvdata.uvplot(style='re&im', freq_average=True) matplotlib.pyplot.show() matplotlib.pyplot.savefig('/home/ilya/sandbox/heteroboot/uvdata_original.png', bbox_inches='tight', dpi=400) matplotlib.pyplot.close() # # Plot residuals in radplot # label_size = 12 # matplotlib.rcParams['xtick.labelsize'] = label_size # matplotlib.rcParams['ytick.labelsize'] = label_size # for i, color in enumerate(colors): # uvdata_r.uvplot(baselines=uvdata_r.baselines[i], freq_average=True, # color=color, style='re&im') # matplotlib.pyplot.show() # matplotlib.pyplot.savefig('/home/ilya/sandbox/heteroboot/radplot_res_gauss.png', # bbox_inches='tight', dpi=400)
trc=trc, beam=image.beam, show_beam=True) # Create posterior for data & model lnpost = LnPost(uvdata, model) ndim = model.size nwalkers = 50 sampler = emcee.EnsembleSampler(nwalkers, ndim, lnpost) p_std1 = [0.1, 0.1, 0.1, 0.1] p_std2 = [0.1, 0.1, 0.1, 0.1] p0 = emcee.utils.sample_ball(model.p, p_std1 + p_std2, size=nwalkers) pos, prob, state = sampler.run_mcmc(p0, 100) sampler.reset() sampler.run_mcmc(pos, 300) # Overplot data and model p_map = list() for i in range(ndim): counts, bin_values = np.histogram(sampler.flatchain[::10, i], bins=30) p_map.append(bin_values[counts == counts.max()][0]) mdl = Model(stokes='I') cg1 = CGComponent(*(p_map[:4])) cg2 = CGComponent(*(p_map[4:])) mdl.add_components(cg1, cg2) uvdata.uvplot(stokes='I') mdl.uvplot(uv=uvdata.uv) fig = corner.corner( sampler.flatchain[::10, :], labels=["$flux$", "$y$", "$x$", "$maj$", "$flux$", "$y$", "$x$", "$maj$"])