예제 #1
0
    def test_angle_interpolation(self) -> None:

        module = AngleInterpolationModule(name_in='angle', data_tag='read')

        self.pipeline.add_module(module)
        self.pipeline.run_module('angle')

        attr = self.pipeline.get_attribute('read', 'PARANG', static=False)
        assert np.sum(attr) == pytest.approx(900., rel=self.limit, abs=0.)
        assert attr.shape == (10, )
예제 #2
0
    def test_angle_interpolation(self):

        angle = AngleInterpolationModule(name_in="angle", data_tag="read")

        self.pipeline.add_module(angle)
        self.pipeline.run_module("angle")

        data = self.pipeline.get_attribute("read", "PARANG", static=False)
        assert data[5] == 2.7777777777777777
        assert np.allclose(np.mean(data), 10.0, rtol=limit, atol=0.)
        assert data.shape == (40, )
예제 #3
0
    def test_angle_interpolation(self):

        module = AngleInterpolationModule(name_in='angle', data_tag='read')

        self.pipeline.add_module(module)
        self.pipeline.run_module('angle')

        data = self.pipeline.get_attribute('read', 'PARANG', static=False)
        assert data[5] == 2.7777777777777777
        assert np.allclose(np.mean(data), 10.0, rtol=limit, atol=0.)
        assert data.shape == (40, )
예제 #4
0
    def test_angle_interpolation(self) -> None:

        module = AngleInterpolationModule(name_in='angle1',
                                          data_tag='read')

        self.pipeline.add_module(module)
        self.pipeline.run_module('angle1')

        data = self.pipeline.get_data('header_read/PARANG')
        assert np.sum(data) == pytest.approx(900., rel=self.limit, abs=0.)
        assert data.shape == (10, )
예제 #5
0
    def test_angle_interpolation(self):

        angle_calc = AngleInterpolationModule(name_in="angle_interpolation",
                                              data_tag="im_arr_aligned")

        self.pipeline.add_module(angle_calc)
        self.pipeline.run_module("angle_interpolation")

        data = self.pipeline.get_data("header_im_arr_aligned/PARANG")
        assert np.allclose(data[5, ], 5.9523809523809526, rtol=limit, atol=0.)
        assert data.shape == (78, )
예제 #6
0
    def test_angle_interpolation(self) -> None:

        module = AngleInterpolationModule(name_in='angle', data_tag='science')

        self.pipeline.add_module(module)
        self.pipeline.run_module('angle')

        data = self.pipeline.get_data('header_science/PARANG')
        assert np.allclose(data[0], 0., rtol=limit, atol=0.)
        assert np.allclose(data[15], 19.736842105263158, rtol=limit, atol=0.)
        assert np.allclose(np.mean(data), 50.0, rtol=limit, atol=0.)
        assert data.shape == (80, )
예제 #7
0
    def test_angle_interpolation(self):

        angle = AngleInterpolationModule(name_in="angle1", data_tag="read")

        self.pipeline.add_module(angle)
        self.pipeline.run_module("angle1")

        data = self.pipeline.get_data("header_read/PARANG")
        assert np.allclose(data[0], 0., rtol=limit, atol=0.)
        assert np.allclose(data[15], 7.777777777777778, rtol=limit, atol=0.)
        assert np.allclose(np.mean(data), 10.0, rtol=limit, atol=0.)
        assert data.shape == (40, )
예제 #8
0
    def test_angle_interpolation(self):

        module = AngleInterpolationModule(name_in='angle1', data_tag='read')

        self.pipeline.add_module(module)
        self.pipeline.run_module('angle1')

        data = self.pipeline.get_data('header_read/PARANG')
        assert np.allclose(data[0], 0., rtol=limit, atol=0.)
        assert np.allclose(data[15], 7.777777777777778, rtol=limit, atol=0.)
        assert np.allclose(np.mean(data), 10.0, rtol=limit, atol=0.)
        assert data.shape == (40, )
예제 #9
0
    def test_angle_interpolation(self):

        angle = AngleInterpolationModule(name_in="angle", data_tag="science")

        self.pipeline.add_module(angle)
        self.pipeline.run_module("angle")

        data = self.pipeline.get_data("header_science/PARANG")
        assert np.allclose(data[0], 0., rtol=limit, atol=0.)
        assert np.allclose(data[15], 19.736842105263158, rtol=limit, atol=0.)
        assert np.allclose(np.mean(data), 50.0, rtol=limit, atol=0.)
        assert data.shape == (80, )
예제 #10
0
    def test_angle_interpolation(self):

        with h5py.File(self.test_dir + 'PynPoint_database.hdf5',
                       'a') as hdf_file:
            hdf_file['config'].attrs['CPU'] = 1

        module = AngleInterpolationModule(name_in='angle', data_tag='read')

        self.pipeline.add_module(module)
        self.pipeline.run_module('angle')

        data = self.pipeline.get_data('header_read/PARANG')
        assert data[5] == 2.7777777777777777
        assert np.allclose(np.mean(data), 10.0, rtol=limit, atol=0.)
        assert data.shape == (40, )
예제 #11
0
    def test_angle_interpolation(self):

        module = AngleInterpolationModule(name_in='angle', data_tag='binary')

        self.pipeline.add_module(module)
        self.pipeline.run_module('angle')

        data = self.pipeline.get_attribute('binary', 'PARANG', static=False)
        assert data[5] == 6.578947368421053
        assert np.allclose(np.mean(data), 50.0, rtol=limit, atol=0.)
        assert data.shape == (80, )

        parang = self.pipeline.get_attribute('binary', 'PARANG', static=False)
        self.pipeline.set_attribute('binary',
                                    'PARANG',
                                    -1. * parang,
                                    static=False)

        data = self.pipeline.get_attribute('binary', 'PARANG', static=False)
        assert data[5] == -6.578947368421053
        assert np.allclose(np.mean(data), -50.0, rtol=limit, atol=0.)
        assert data.shape == (80, )
예제 #12
0
    def test_angle_interpolation_mismatch(self):

        self.pipeline.set_attribute("read", "NDIT", [9, 9, 9, 9], static=False)

        angle = AngleInterpolationModule(name_in="angle5", data_tag="read")

        self.pipeline.add_module(angle)

        with pytest.warns(UserWarning) as warning:
            self.pipeline.run_module("angle5")

        assert len(warning) == 1
        assert warning[0].message.args[0] == "There is a mismatch between the NDIT and NFRAMES " \
                                             "values. The derotation angles are calculated with " \
                                             "a linear interpolation by using NFRAMES steps. A " \
                                             "frame selection should be applied after the " \
                                             "derotation angles are calculated."

        data = self.pipeline.get_data("header_read/PARANG")
        assert np.allclose(data[0], 0., rtol=limit, atol=0.)
        assert np.allclose(data[15], 7.777777777777778, rtol=limit, atol=0.)
        assert np.allclose(np.mean(data), 10.0, rtol=limit, atol=0.)
        assert data.shape == (40, )
예제 #13
0
    def test_angle_interpolation_mismatch(self):

        self.pipeline.set_attribute('read', 'NDIT', [9, 9, 9, 9], static=False)

        module = AngleInterpolationModule(name_in='angle5', data_tag='read')

        self.pipeline.add_module(module)

        with pytest.warns(UserWarning) as warning:
            self.pipeline.run_module('angle5')

        assert len(warning) == 1
        assert warning[0].message.args[0] == 'There is a mismatch between the NDIT and NFRAMES ' \
                                             'values. The parallactic angles are calculated ' \
                                             'with a linear interpolation by using NFRAMES ' \
                                             'steps. A frame selection should be applied ' \
                                             'after the parallactic angles are calculated.'

        data = self.pipeline.get_data('header_read/PARANG')
        assert np.allclose(data[0], 0., rtol=limit, atol=0.)
        assert np.allclose(data[15], 7.777777777777778, rtol=limit, atol=0.)
        assert np.allclose(np.mean(data), 10.0, rtol=limit, atol=0.)
        assert data.shape == (40, )
예제 #14
0
    def test_angle_interpolation_mismatch(self) -> None:

        self.pipeline.set_attribute('read', 'NDIT', [9, 9, 9, 9], static=False)

        module = AngleInterpolationModule(name_in='angle5',
                                          data_tag='read')

        self.pipeline.add_module(module)

        with pytest.warns(UserWarning) as warning:
            self.pipeline.run_module('angle5')

        warning_0 = 'There is a mismatch between the NDIT and NFRAMES values. The parallactic ' \
                    'angles are calculated with a linear interpolation by using NFRAMES steps. ' \
                    'A frame selection should be applied after the parallactic angles are ' \
                    'calculated.'

        if len(warning) == 1:
            assert warning[0].message.args[0] == warning_0

        data = self.pipeline.get_data('header_read/PARANG')
        assert np.sum(data) == pytest.approx(900., rel=self.limit, abs=0.)
        assert data.shape == (10, )