def pipeline(): tools.reset_paths(test_name=test_name, output_path=output_path) lens_light = lp.SphericalDevVaucouleurs(centre=(0.0, 0.0), intensity=0.1, effective_radius=0.5) lens_mass = mp.EllipticalIsothermal(centre=(0.0, 0.0), axis_ratio=0.8, phi=80.0, einstein_radius=1.6) source_light = lp.EllipticalSersic(centre=(0.0, 0.0), axis_ratio=0.6, phi=90.0, intensity=1.0, effective_radius=0.5, sersic_index=1.0) lens_galaxy = galaxy.Galaxy(dev=lens_light, sie=lens_mass) source_galaxy = galaxy.Galaxy(sersic=source_light) tools.simulate_integration_image(test_name=test_name, pixel_scale=0.1, lens_galaxies=[lens_galaxy], source_galaxies=[source_galaxy], target_signal_to_noise=30.0) ccd_data = ccd.load_ccd_data_from_fits( image_path=path + '/data/' + test_name + '/image.fits', psf_path=path + '/data/' + test_name + '/psf.fits', noise_map_path=path + '/data/' + test_name + '/noise_map.fits', pixel_scale=0.1) pipeline = make_pipeline(test_name=test_name) pipeline.run(data=ccd_data)
def phase(): pixel_scale = 0.1 image_shape = (150, 150) tools.reset_paths(test_name=test_name, output_path=output_path) grid_stack = grids.GridStack.from_shape_pixel_scale_and_sub_grid_size(shape=image_shape, pixel_scale=pixel_scale, sub_grid_size=4) galaxy = g.Galaxy(mass=mp.SphericalIsothermal(centre=(0.0, 0.0), einstein_radius=1.0)) deflections = galaxy_util.deflections_of_galaxies_from_grid(galaxies=[galaxy], grid=grid_stack.sub) deflections_y = grid_stack.regular.scaled_array_from_array_1d(array_1d=deflections[:,0]) deflections_x = grid_stack.regular.scaled_array_from_array_1d(array_1d=deflections[:,1]) noise_map = scaled_array.ScaledSquarePixelArray(array=np.ones(deflections_y.shape), pixel_scale=pixel_scale) data_y = gd.GalaxyData(image=deflections_y, noise_map=noise_map, pixel_scale=pixel_scale) data_x = gd.GalaxyData(image=deflections_x, noise_map=noise_map, pixel_scale=pixel_scale) phase = ph.GalaxyFitPhase(galaxies=dict(gal=gm.GalaxyModel(light=mp.SphericalIsothermal)), use_deflections=True, sub_grid_size=4, optimizer_class=nl.MultiNest, phase_name=test_name+'/') phase.run(galaxy_data=[data_y, data_x])
def pipeline(): tools.reset_paths(test_name=test_name, output_path=output_path) pipeline = make_pipeline(test_name=test_name) pipeline.run(positions=[[[1.0, 1.0], [1.0, -1.0], [-1.0, 1.0], [-1.0, -1.0]]], pixel_scale=0.05)
def phase(): pixel_scale = 0.1 image_shape = (150, 150) tools.reset_paths(test_name=test_name, output_path=output_path) grid_stack = grids.GridStack.from_shape_pixel_scale_and_sub_grid_size( shape=image_shape, pixel_scale=pixel_scale, sub_grid_size=4) galaxy = g.Galaxy(mass=lp.SphericalExponential( centre=(0.0, 0.0), intensity=1.0, effective_radius=0.5)) intensities = galaxy_util.intensities_of_galaxies_from_grid( galaxies=[galaxy], grid=grid_stack.sub) intensities = grid_stack.regular.scaled_array_from_array_1d( array_1d=intensities) noise_map = scaled_array.ScaledSquarePixelArray(array=np.ones( intensities.shape), pixel_scale=pixel_scale) data = gd.GalaxyData(image=intensities, noise_map=noise_map, pixel_scale=pixel_scale) phase = ph.GalaxyFitPhase( galaxies=dict(gal=gm.GalaxyModel(light=lp.SphericalExponential)), use_intensities=True, sub_grid_size=4, optimizer_class=nl.MultiNest, phase_name=test_name + '/') phase.run(galaxy_data=[data])
def pipeline(): lens_mass = mp.SphericalIsothermal(centre=(0.0, 0.0), einstein_radius=1.6) lens_subhalo = mp.SphericalIsothermal(centre=(1.0, 1.0), einstein_radius=0.0) source_light = lp.SphericalSersic(centre=(0.0, 0.0), intensity=1.0, effective_radius=0.5, sersic_index=1.0) lens_galaxy = galaxy.Galaxy(mass=lens_mass, subhalo=lens_subhalo) source_galaxy = galaxy.Galaxy(light=source_light) tools.reset_paths(test_name=test_name, output_path=output_path) tools.simulate_integration_image(test_name=test_name, pixel_scale=0.1, lens_galaxies=[lens_galaxy], source_galaxies=[source_galaxy], target_signal_to_noise=30.0) ccd_data = ccd.load_ccd_data_from_fits( image_path=path + '/data/' + test_name + '/image.fits', psf_path=path + '/data/' + test_name + '/psf.fits', noise_map_path=path + '/data/' + test_name + '/noise_map.fits', pixel_scale=0.1) pipeline = make_pipeline(test_name=test_name) result = pipeline.run(data=ccd_data) print(dir(result))
def test_constants_work(self): name = "const_float" test_name = '/const_float' tools.reset_paths(test_name, output_path) sersic = lp.EllipticalSersic(centre=(0.0, 0.0), axis_ratio=0.8, phi=90.0, intensity=1.0, effective_radius=1.3, sersic_index=3.0) lens_galaxy = galaxy.Galaxy(light_profile=sersic) tools.simulate_integration_image(test_name=test_name, pixel_scale=0.5, lens_galaxies=[lens_galaxy], source_galaxies=[], target_signal_to_noise=10.0) path = "{}/".format( os.path.dirname(os.path.realpath(__file__))) # Setup path so we can output the simulated image. ccd_data = ccd.load_ccd_data_from_fits(image_path=path + '/data/' + test_name + '/image.fits', psf_path=path + '/data/' + test_name + '/psf.fits', noise_map_path=path + '/data/' + test_name + '/noise_map.fits', pixel_scale=0.1) class MMPhase(ph.LensPlanePhase): def pass_priors(self, previous_results): self.lens_galaxies.lens.sersic.axis_ratio = 0.2 self.lens_galaxies.lens.sersic.phi = 90.0 self.lens_galaxies.lens.sersic.intensity = 1.0 self.lens_galaxies.lens.sersic.effective_radius = 1.3 self.lens_galaxies.lens.sersic.sersic_index = 3.0 phase = MMPhase(lens_galaxies=dict(lens=gm.GalaxyModel(sersic=lp.EllipticalSersic)), optimizer_class=nl.MultiNest, phase_name="{}/phase1".format(name)) phase.optimizer.n_live_points = 20 phase.optimizer.sampling_efficiency = 0.8 phase.make_analysis(data=ccd_data) sersic = phase.variable.lens_galaxies[0].sersic assert isinstance(sersic, mm.PriorModel) assert isinstance(sersic.axis_ratio, prior.Constant) assert isinstance(sersic.phi, prior.Constant) assert isinstance(sersic.intensity, prior.Constant) assert isinstance(sersic.effective_radius, prior.Constant) assert isinstance(sersic.sersic_index, prior.Constant)
def test_pipeline(): bulge_0 = lp.EllipticalSersic(centre=(-1.0, -1.0), axis_ratio=0.9, phi=90.0, intensity=1.0, effective_radius=1.0, sersic_index=4.0) disk_0 = lp.EllipticalSersic(centre=(-1.0, -1.0), axis_ratio=0.6, phi=90.0, intensity=20.0, effective_radius=2.5, sersic_index=1.0) bulge_1 = lp.EllipticalSersic(centre=(1.0, 1.0), axis_ratio=0.9, phi=90.0, intensity=1.0, effective_radius=1.0, sersic_index=4.0) disk_1 = lp.EllipticalSersic(centre=(1.0, 1.0), axis_ratio=0.6, phi=90.0, intensity=20.0, effective_radius=2.5, sersic_index=1.0) lens_galaxy_0 = galaxy.Galaxy(bulge=bulge_0, disk=disk_0) lens_galaxy_1 = galaxy.Galaxy(bulge=bulge_1, disk=disk_1) tools.reset_paths(test_name=test_name, output_path=output_path) tools.simulate_integration_image( test_name=test_name, pixel_scale=0.1, lens_galaxies=[lens_galaxy_0, lens_galaxy_1], source_galaxies=[], target_signal_to_noise=30.0) ccd_data = ccd.load_ccd_data_from_fits( image_path=path + '/data/' + test_name + '/image.fits', psf_path=path + '/data/' + test_name + '/psf.fits', noise_map_path=path + '/data/' + test_name + '/noise_map.fits', pixel_scale=0.1) pipeline = make_pipeline(test_name=test_name) pipeline.run(data=ccd_data)
def test_pairing_works(self): test_name = 'pair_floats' tools.reset_paths(test_name, output_path) sersic = lp.EllipticalSersic(centre=(0.0, 0.0), axis_ratio=0.8, phi=90.0, intensity=1.0, effective_radius=1.3, sersic_index=3.0) lens_galaxy = galaxy.Galaxy(light_profile=sersic) tools.simulate_integration_image(test_name=test_name, pixel_scale=0.5, lens_galaxies=[lens_galaxy], source_galaxies=[], target_signal_to_noise=10.0) path = "{}/".format( os.path.dirname(os.path.realpath(__file__))) # Setup path so we can output the simulated image. ccd_data = ccd.load_ccd_data_from_fits(image_path=path + '/data/' + test_name + '/image.fits', psf_path=path + '/data/' + test_name + '/psf.fits', noise_map_path=path + '/data/' + test_name + '/noise_map.fits', pixel_scale=0.1) class MMPhase(ph.LensPlanePhase): def pass_priors(self, previous_results): self.lens_galaxies.lens.sersic.intensity = self.lens_galaxies.lens.sersic.axis_ratio phase = MMPhase(lens_galaxies=dict(lens=gm.GalaxyModel(sersic=lp.EllipticalSersic)), optimizer_class=nl.MultiNest, phase_name="{}/phase1".format(test_name)) initial_total_priors = phase.variable.prior_count phase.make_analysis(data=ccd_data) assert phase.lens_galaxies[0].sersic.intensity == phase.lens_galaxies[0].sersic.axis_ratio assert initial_total_priors - 1 == phase.variable.prior_count assert len(phase.variable.flat_prior_model_tuples) == 1 lines = list( filter(lambda line: "axis_ratio" in line or "intensity" in line, phase.variable.info.split("\n"))) assert len(lines) == 2 assert "lens_axis_ratio UniformPrior, lower_limit = 0.2, " \ "upper_limit = 1.0" in lines assert "lens_intensity UniformPrior, lower_limit = 0.2, " \ "upper_limit = 1.0" in lines
def pipeline(): lens_mass = mp.EllipticalIsothermal(centre=(0.01, 0.01), axis_ratio=0.8, phi=80.0, einstein_radius=1.6) source_bulge_0 = lp.EllipticalSersic(centre=(0.01, 0.01), axis_ratio=0.9, phi=90.0, intensity=1.0, effective_radius=1.0, sersic_index=4.0) source_bulge_1 = lp.EllipticalSersic(centre=(0.1, 0.1), axis_ratio=0.9, phi=90.0, intensity=1.0, effective_radius=1.0, sersic_index=4.0) lens_galaxy = galaxy.Galaxy(sie=lens_mass) source_galaxy = galaxy.Galaxy(bulge_0=source_bulge_0, bulge_1=source_bulge_1) tools.reset_paths(test_name=test_name, output_path=output_path) tools.simulate_integration_image(test_name=test_name, pixel_scale=0.1, lens_galaxies=[lens_galaxy], source_galaxies=[source_galaxy], target_signal_to_noise=30.0) ccd_data = ccd.load_ccd_data_from_fits( image_path=path + '/data/' + test_name + '/image.fits', psf_path=path + '/data/' + test_name + '/psf.fits', noise_map_path=path + '/data/' + test_name + '/noise_map.fits', pixel_scale=0.1) pipeline = make_pipeline(test_name=test_name) pipeline.run(data=ccd_data)