def test__y_size_smaller_than_data__raises_error(self): data = np.ones((5, 5)) data[2, 2] = 2.0 data = image.Image(data, pixel_scale=0.1) with pytest.raises(ValueError): assert image.trim(data, pixel_dimensions=(8, 3))
def test__trimmed_4x5_to_2x3(self): data = np.ones((4, 5)) data[1:3, 2] = 2.0 data = image.Image(data, pixel_scale=0.1) data = image.trim(data, pixel_dimensions=(2, 3)) assert (data == np.array([[1.0, 2.0, 1.0], [1.0, 2.0, 1.0]])).all() assert data.shape == (2, 3) assert data.central_pixel_coordinates == (0.5, 1.0) assert data.shape_arc_seconds == pytest.approx((0.2, 0.3), 1e-3)
def test__trimmed_4x4_to_2x2(self): data = np.ones((4, 4)) data[1:3, 1:3] = 2.0 data = image.Image(data, pixel_scale=0.1) data = image.trim(data, pixel_dimensions=(2, 2)) assert (data == np.array([[2.0, 2.0], [2.0, 2.0]])).all() assert data.shape == (2, 2) assert data.central_pixel_coordinates == (0.5, 0.5) assert data.shape_arc_seconds == pytest.approx((0.2, 0.2), 1e-3)
def test__trimmed_5x5_to_2x2__goes_to_3x3_to_keep_symmetry(self): data = np.ones((5, 5)) data[2, 2] = 2.0 data = image.Image(data, pixel_scale=0.1) data = image.trim(data, pixel_dimensions=(2, 2)) assert (data == np.array([[1.0, 1.0, 1.0], [1.0, 2.0, 1.0], [1.0, 1.0, 1.0]])).all() assert data.shape == (3, 3) assert data.central_pixel_coordinates == (1.0, 1.0) assert data.shape_arc_seconds == pytest.approx((0.3, 0.3), 1e-3)
def test__trimmed_7x7_to_3x3(self): data = np.ones((7, 7)) data[3, 3] = 2.0 data = image.Image(data, pixel_scale=0.1) data = image.trim(data, pixel_dimensions=(3, 3)) assert (data == np.array([[1.0, 1.0, 1.0], [1.0, 2.0, 1.0], [1.0, 1.0, 1.0]])).all() assert data.shape == (3, 3) assert data.central_pixel_coordinates == (1.0, 1.0) assert data.shape_arc_seconds == pytest.approx((0.3, 0.3), 1e-3)
def test__trimmed_6x6_to_3x3_goes_to_4x4_to_keep_symmetry(self): data = np.ones((6, 6)) data[2:4, 2:4] = 2.0 data = image.Image(data, pixel_scale=0.1) data = image.trim(data, pixel_dimensions=(3, 3)) assert (data == np.array([[1.0, 1.0, 1.0, 1.0], [1.0, 2.0, 2.0, 1.0], [1.0, 2.0, 2.0, 1.0], [1.0, 1.0, 1.0, 1.0]])).all() assert data.shape == (4, 4) assert data.central_pixel_coordinates == (1.5, 1.5) assert data.shape_arc_seconds == pytest.approx((0.4, 0.4), 1e-3)
def test__trimmed_11x11_to_5x5(self): data = np.ones((11, 11)) data[5, 5] = 2.0 data = image.Image(data, pixel_scale=0.1) data = image.trim(data, pixel_dimensions=(5, 5)) assert (data == np.array([[1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 2.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0]])).all() assert data.shape == (5, 5) assert data.central_pixel_coordinates == (2.0, 2.0) assert data.shape_arc_seconds == pytest.approx((0.5, 0.5), 1e-3)
def test__trimmed_5x4_to_4x3__goes_to_5x4_to_keep_symmetry(self): data = np.ones((5, 4)) data[2, 1:3] = 2.0 data[4, 3] = 9.0 data = image.Image(data, pixel_scale=0.1) data = image.trim(data, pixel_dimensions=(4, 3)) assert (data == np.array([[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [1.0, 2.0, 2.0, 1.0], [1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 9.0]])).all() assert data.shape == (5, 4) assert data.central_pixel_coordinates == (2, 1.5) assert data.shape_arc_seconds == pytest.approx((0.5, 0.4), 1e-3)
def test__trimmed_12x12_to_5x5__goes_to_6x6_to_keep_symmetry(self): data = np.ones((12, 12)) data[5:7, 5:7] = 2.0 data[4, 4] = 9.0 data = image.Image(data, pixel_scale=0.1) data = image.trim(data, pixel_dimensions=(5, 5)) assert (data == np.array([[1.0, 1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 9.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 2.0, 2.0, 1.0, 1.0], [1.0, 1.0, 2.0, 2.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0]])).all() assert data.shape == (6, 6) assert data.central_pixel_coordinates == (2.5, 2.5) assert data.shape_arc_seconds == pytest.approx((0.6, 0.6), 1e-3)
def prepare_image(img_data): """Trim off non-image data.""" pil_img = image.data_to_pil(img_data) pil_img_trimmed = image.trim(pil_img, top_px=16, bottom_px=14) return image.pil_to_data(pil_img_trimmed)
def test__array(self): data = np.ones((3, 3)) assert image.trim(data, pixel_dimensions=(1, 1)).__class__ == np.ndarray
def test__noise(self): data = image.Noise.from_array(np.ones((3, 3))) assert image.trim(data, pixel_dimensions=(1, 1)).__class__ == image.Noise
def test__image(self): data = image.Image(np.ones((3, 3)), pixel_scale=0.1) assert image.trim(data, pixel_dimensions=(1, 1)).__class__ == image.Image
def prepare_image(img_data): """Trim off non-image data.""" pil_img = image.data_to_pil(img_data) pil_img_trimmed = image.trim(pil_img, top_px=16, bottom_px=14) return image.pil_to_data(pil_img_trimmed)