Esempio n. 1
0
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()

# we will use a ring source structure
def source_model(nx,dx,radius,width):
    sigma = width / (2 * np.sqrt(np.log(4))) / dx
    x = np.dot(np.transpose([np.ones(nx)]),[np.arange(nx)-nx/2])
    r = np.sqrt(x**2 + x.T**2)
    m = np.exp(-0.5/sigma**2*(r-radius/dx)**2)
    return m/m.sum()
nx = 256
dx = 0.75
m = source_model(nx,dx,28.,10.)

# initialize the scattering class
b = Brane(m,dx,wavelength=1.3e-3,nphi=(2**12,2**12),screen_res=6,r_inner=50)

# points along the uv axes where to record the visibility
u = np.linspace(0.,10e9,num=50)

# generate a bunch of scattering instances
tic = time.time()
u_vis = []
v_vis = []
num_sims = 100
avg = np.zeros_like(b.isrc)
for i in range(num_sims):
    # create a new instance of the random phases
    b.generatePhases()
    # calculate the scattered image
    b.scatter()
Esempio n. 2
0
logger = logging.getLogger()

# import our source image and covert it to gray scale
src_file = 'source_images/nh_01_stern_05_pluto_hazenew2.square.jpg'
rgb = imread(src_file)[::-1]
I = (np.array([0.2989,0.5870,0.1140])[np.newaxis,np.newaxis,:]*rgb).sum(axis=-1)
I *= np.pi/I.sum()

# make up some scale for our image.
write_figs = False
wavelength=1e-3
FOV = 90.
dx = FOV/I.shape[0]

# initialize the scattering screen @ 0.87mm
b = Brane(I,dx,wavelength=0.87e-3,nphi=(2**12,2**14),anisotropy=1,pa=None,r_inner=50,live_dangerously=True)

# estimate the time resolution of our simulation assuming some screen velocity.
screen_velocity = 200.  #km/s
fs = screen_velocity/(b.screen_dx*b.ips) # Hz
num_samples = b.nphi[1]/b.ips - b.nx   # try num_samples = 100 for testing porpoises.
logger.info('Number of samples: {0:g}'.format(num_samples))
logger.info('Sampling interval: {0:g}s'.format(1./fs))
logger.info('Time coverage: {0:g} days'.format(num_samples/fs/(3600.*24.)))

# generate the screen (this takes a while)
logger.info('generating screen...')
tic = time.time()
b.generatePhases()
logger.info('took {0:g}s'.format(time.time()-tic))