#import os #os.environ["OMP_NUM_THREADS"] = "1" Rmin = 1e-6 # arcsec dR = 0.0008 # arcsec nR = int(1.5 / dR) dR *= arcsec Rmin *= arcsec ##### Define a mesh for the space R = np.linspace(Rmin, Rmin + dR * nR, nR, endpoint=False) u, v, Re, Im, w = np.require(np.loadtxt('uvtable2.txt', unpack=True), requirements='C') #x=np.random.rand(len(uf))<0.01 nxy, dxy = get_image_size(u, v, verbose=False) #lastsamples,_,_,_=np.load('results/optimization/optigal_6_60_6300_merged.npy',allow_pickle=True) #lastsamples=lastsamples[:,-500:,:].reshape((-1,6)) #igauss,wgauss,inc,PA,dRA,dDec=np.mean(lastsamples[:,:], axis=0) #siginc,sigPA,sigdRA,sigdDec=np.std(lastsamples[:,2:], axis=0) igauss, wgauss, inc, PA, dRA, dDec = 10.420409422990984, 0.3862295668301837, 0.8062268497358551, 2.5555283969130116, 4.727564265115043e-08, -2.6084635508588672e-08 inc, PA, dRA, dDec = inc * deg, PA * deg, dRA * arcsec, dDec * arcsec ##### Define a gaussian profile def GaussianProfile(f0, sigma): """ Gaussian brightness profile. """ return (f0 * np.exp(-(0.5 * ((sigma)**-2.)) * (R**2.)))
### return gaussian profile return f, r # ========================== Code ========================== ### read in UV table visibilities print("\nReading in UV table: " + args.uvtable) U, V, Re, Im, W = np.loadtxt(args.uvtable, unpack=True) U, V = np.ascontiguousarray(U), np.ascontiguousarray(V) U /= args.wavelength V /= args.wavelength ### get image dimensions print("\nImage size: ") Nxy, Dxy = g_double.get_image_size(U, V, verbose=True, f_max=2.1, f_min=2.0) Rmin, dR, nR = 1e-4 * arcsec, 0.0005 * arcsec, 20000 ### get initial guesses and ranges of gaussian fit parameters if args.r_in: p0 = [ args.f0, args.sigma, args.r_in, args.incl, args.pa, args.dra, args.ddec ] p_ranges = [[0.1, 100.0], [0.01, 5.0], [0.01, 5.0], [0., 90.], [0., 180.], [-2.0, 2.0], [-2.0, 2.0]] else: p0 = [args.f0, args.sigma, args.incl, args.pa, args.dra, args.ddec] p_ranges = [[1.0, 50.0], [0.01, 5.0], [0., 90.], [0., 180.], [-2.5, 2.5], [-2.5, 2.5]] ### setup mcmc