def test__grid_with_points_below_magnification_threshold_removed(self): sis = al.mp.SphIsothermal(centre=(0.0, 0.0), einstein_radius=1.0) grid = al.Grid2DIrregularUniform(grid=[(1.0, 0.0), (0.1, 0.0)], pixel_scales=0.01) magnification = np.abs( sis.magnification_via_hessian_from_grid(grid=grid, buffer=grid.pixel_scale)) assert magnification[0] > 1000.0 assert magnification[1] < 1000.0 solver = pos.AbstractPositionsSolver(magnification_threshold=1000.0) positions = solver.grid_with_points_below_magnification_threshold_removed( lensing_obj=sis, grid=grid, deflections_func=sis.deflections_2d_from_grid) assert positions.in_list == [(1.0, 0.0)] assert positions.pixel_scales == (0.01, 0.01) solver = pos.AbstractPositionsSolver(magnification_threshold=0.0) positions = solver.grid_with_points_below_magnification_threshold_removed( lensing_obj=sis, grid=grid, deflections_func=sis.deflections_2d_from_grid) assert positions.in_list == [(1.0, 0.0), (0.1, 0.0)] assert positions.pixel_scales == (0.01, 0.01)
def test__solver_create_buffed_and_updated_grid_from_input_coordinate(self): solver = pos.AbstractPositionsSolver(use_upscaling=True, upscale_factor=1) grid = solver.grid_buffed_and_upscaled_around_coordinate_from( coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=1, upscale_factor=1 ) grid_util = pos.grid_buffed_around_coordinate_from( coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=1, upscale_factor=1 ) assert (grid == grid_util).all() solver = pos.AbstractPositionsSolver(use_upscaling=False, upscale_factor=3) grid = solver.grid_buffed_and_upscaled_around_coordinate_from( coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=1, upscale_factor=1 ) grid_util = pos.grid_buffed_around_coordinate_from( coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=1, upscale_factor=1 ) assert (grid == grid_util).all() solver = pos.AbstractPositionsSolver(use_upscaling=True, upscale_factor=1) grid = solver.grid_buffed_and_upscaled_around_coordinate_from( coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=3, upscale_factor=1 ) grid_util = pos.grid_buffed_around_coordinate_from( coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=3, upscale_factor=1 ) assert (grid == grid_util).all() solver = pos.AbstractPositionsSolver(use_upscaling=True, upscale_factor=2) grid = solver.grid_buffed_and_upscaled_around_coordinate_from( coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=2, upscale_factor=2 ) grid_util = pos.grid_buffed_around_coordinate_from( coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=2, upscale_factor=2 ) assert (grid == grid_util).all()
def test__solver_with_remove_distance_from_mass_profile_centre__remove_pixels_from_initial_grid( self, ): grid = al.Grid.manual_1d( grid=[[0.0, -0.1], [0.0, 0.0], [0.0, 0.1]], shape_2d=(1, 3), pixel_scales=0.1, ) sis = al.mp.SphericalIsothermal(centre=(0.0, 0.0), einstein_radius=1.0) solver = pos.AbstractPositionsSolver( distance_from_mass_profile_centre=0.01) grid = solver.grid_with_coordinates_from_mass_profile_centre_removed( grid=grid, lensing_obj=sis) assert grid == pytest.approx(np.array([[0.0, -0.1], [0.0, 0.1]]), 1.0e-4)