""" Generate gaussian random fields with a known power spectrum """ import numpy as np import matplotlib.pyplot as plt from astropy.units import deg from lenstools import GaussianNoiseGenerator #Set map side angle, and number of pixels on a side num_pixel_side = 512 side_angle = 3.41 * deg #Read the power spectrum (l,Pl) from an external file, and load it in numpy array format (the generator interpolates the power spectrum between bins) l,Pl = np.loadtxt("Data/ee4e-7.txt",unpack=True) #Instantiate the gaussian noise generator gen = GaussianNoiseGenerator(shape=(num_pixel_side,num_pixel_side),side_angle=side_angle,label="convergence") #Generate one random realization gaussian_map = gen.fromConvPower(np.array([l,Pl]),seed=1,kind="linear",bounds_error=False,fill_value=0.0) #gaussian_map is a ConvergenceMap instance gaussian_map.visualize() gaussian_map.savefig("example_map.png")
if (pool is not None) and not (pool.is_master()): pool.wait() sys.exit(0) map_mock_ids = range(int(sys.argv[1])) igs1_set = IGS1( root_path= "/Users/andreapetri/Documents/Columbia/spurious_shear/convergence_maps") map_igs1_ids = igs1_set.getNames(z=1.0, realizations=range(1, int(sys.argv[1]) + 1)) gen = GaussianNoiseGenerator(shape=(2048, 2048), side_angle=3.41 * deg, label="convergence") power_func = np.loadtxt("Data/ee4e-7.txt", unpack=True) ens_mock = Ensemble.fromfilelist(map_mock_ids) ens_igs1 = Ensemble.fromfilelist(map_igs1_ids) ens_mock.load(callback_loader=generate_and_measure, pool=pool, generator=gen, power_func=power_func) ens_igs1.load(callback_loader=measure_from_IGS1, pool=pool) if pool is not None: pool.close()
import matplotlib.pyplot as plt from astropy.units import deg from lenstools import GaussianNoiseGenerator #Set map side angle, and number of pixels on a side num_pixel_side = 128 side_angle = 20 * deg #Read the power spectrum (l,Pl) from an external file, and load it in numpy array format (the generator interpolates the power spectrum between bins) l,Pl = np.loadtxt("./try1.dat",unpack=True) #Instantiate the gaussian noise generator #gen = GaussianNoiseGenerator(shape=(num_pixel_side,num_pixel_side),side_angle=side_angle,label="convergence") gen = GaussianNoiseGenerator(shape=(num_pixel_side,num_pixel_side),side_angle=side_angle) #Generate one random realization gaussian_map = gen.fromConvPower(np.array([l,Pl]),seed=1,kind="linear",bounds_error=False,fill_value=0.0) #print(dir(gen._fourierMap)) #print(gen._fourierMap.__dict__) #print(dir(gaussian_map)) #print(gaussian_map.__dict__) #print(getattr(gaussian_map, 'data').shape) map_data = getattr(gaussian_map, 'data') np.savetxt('map_data.dat', map_data)