Example #1
0
    def test_dtypes0(self):
        """Test output is float64 by default"""
        inttypes = ["int8", "int16", "int32", "uint8", "uint16", "uint32"]
        floattypes = ["float32", "float64", "float128"]
        mdtype = numpy.dtype("uint8")
        ddtype = numpy.dtype("float64")
        rows = 3
        columns = 4
        for dtype in inttypes:
            data = numpy.arange(10, dtype=dtype)
            data = numpy.tile(self.data, (columns, rows, 1)).T
            res = ramp_array(data, self.ti, self.gain, self.ron)
            self.assertIs(res[0].dtype, ddtype)
            self.assertIs(res[1].dtype, ddtype)
            self.assertIs(res[2].dtype, mdtype)
            self.assertIs(res[3].dtype, mdtype)

        for dtype in floattypes:
            data = numpy.arange(10, dtype=dtype)
            data = numpy.tile(self.data, (columns, rows, 1)).T
            res = ramp_array(data, self.ti, self.gain, self.ron)
            self.assertIs(res[0].dtype, ddtype)
            self.assertIs(res[1].dtype, ddtype)
            self.assertIs(res[2].dtype, mdtype)
            self.assertIs(res[3].dtype, mdtype)
Example #2
0
    def test_badpixel0(self):
        """Test we ignore badpixels in RAMP mode."""
        self.emptybp[...] = 1

        res = ramp_array(
            self.data,
            self.ti,
            self.gain,
            self.ron,
            saturation=self.saturation,
            badpixels=self.emptybp,
            blank=self.blank,
        )

        for nn in res[2].flat:
            self.assertEqual(nn, 0)

        for n in res[3].flat:
            self.assertEqual(n, 1)

        for v in res[1].flat:
            self.assertEqual(v, 0)

        for v in res[0].flat:
            self.assertEqual(v, self.blank)
Example #3
0
    def test_results1(self):
        """Test we obtain correct values in RAMP mode"""

        res = ramp_array(self.data, self.ti, self.gain, self.ron, saturation=self.saturation, blank=self.blank)

        for nn in res[2].flat:
            self.assertEqual(nn, 10)

        for n in res[3].flat:
            self.assertEqual(n, 0)

        #        for v in res[1].flat:
        #            self.assertEqual(v, 0.13454545454545455)

        for v in res[0].flat:
            self.assertEqual(v, 1.0)
Example #4
0
    def test_results2(self):
        """Test we obtain correct values in RAMP mode"""

        self.data *= 12
        self.data[:, 1, 1] = 70000
        # self.data[5:,2,2] += 1300

        self.emptybp[0, 0] = 1

        res = ramp_array(
            self.data,
            self.ti,
            self.gain,
            self.ron,
            dtype="float32",
            saturation=self.saturation,
            badpixels=self.emptybp,
            blank=self.blank,
        )

        res0 = 12 * numpy.ones((3, 4), dtype="float32")
        res0[0, 0] = 0
        res0[1, 1] = 0
        res1 = 1.4812121212 * numpy.ones((3, 4), dtype="float32")
        res1[0, 0] = 0
        res1[1, 1] = 0
        res1[2, 2] = 1.61
        res2 = 10 * numpy.ones((3, 4), dtype="uint8")
        res2[0, 0] = 0
        res2[1, 1] = 0
        res3 = numpy.zeros((3, 4), dtype="uint8")
        res3[0, 0] = 1
        res3[1, 1] = 3
        res4 = numpy.zeros((3, 4), dtype="uint8")
        res4[2, 2] = 5

        for xx, yy in zip(res[0].flat, res0.flat):
            self.assertAlmostEqual(xx, yy)
        # for xx, yy in zip(res[1].flat, res1.flat):
        #    self.assertAlmostEqual(xx, yy)
        for xx, yy in zip(res[2].flat, res2.flat):
            self.assertEqual(xx, yy)
        for xx, yy in zip(res[3].flat, res3.flat):
            self.assertEqual(xx, yy)
Example #5
0
    def test_saturation1(self):
        """Test we count correctly saturated pixels in RAMP mode."""

        MASK_GOOD = 0

        saturation = 50000
        self.data[7:, ...] = saturation

        res = ramp_array(self.data, self.ti, self.gain, self.ron, saturation=saturation, blank=self.blank)

        for nn in res[2].flat:
            self.assertEqual(nn, 7)

        for n in res[3].flat:
            self.assertEqual(n, MASK_GOOD)

        # for v in res[1].flat:
        #    self.assertEqual(v, 0.2142857142857143)

        for v in res[0].flat:
            self.assertAlmostEqual(v, 1)
Example #6
0
    def test_saturation0(self):
        """Test we count correctly saturated pixels in RAMP mode."""

        MASK_SATURATION = 3

        # No points
        self.data[:] = 50000  # - 32768
        saturation = 40000  # - 32767

        res = ramp_array(self.data, self.ti, self.gain, self.ron, saturation=saturation, blank=self.blank)

        for nn in res[2].flat:
            self.assertEqual(nn, 0)

        for n in res[3].flat:
            self.assertEqual(n, MASK_SATURATION)

        for v in res[1].flat:
            self.assertEqual(v, 0)

        for v in res[0].flat:
            self.assertEqual(v, self.blank)
Example #7
0
    def test_badpixel1(self):
        """Test we handle correctly None badpixel mask."""
        rows = 3
        columns = 4
        self.emptybp[...] = 0
        self.data = numpy.arange(10, dtype="int32")
        self.data = numpy.tile(self.data, (columns, rows, 1)).T
        value = 1.0
        variance = 0.13454545454545455

        # Badpixels is [0,..., 0]
        res = ramp_array(
            self.data,
            self.ti,
            self.gain,
            self.ron,
            saturation=self.saturation,
            badpixels=self.emptybp,
            blank=self.blank,
        )

        for n in res[3].flat:
            self.assertEqual(n, 0)

        for nn in res[2].flat:
            self.assertEqual(nn, 10)

        # for v in res[1].flat:
        #    self.assertAlmostEqual(v, variance)

        for v in res[0].flat:
            self.assertAlmostEqual(v, value)

        # Badpixels is None
        res = ramp_array(
            self.data, self.ti, self.gain, self.ron, saturation=self.saturation, badpixels=None, blank=self.blank
        )

        # for n in res[4].flat:
        #    self.assertEqual(n, 0)

        for n in res[3].flat:
            self.assertEqual(n, 0)

        for nn in res[2].flat:
            self.assertEqual(nn, 10)

        for v in res[1].flat:
            self.assertAlmostEqual(v, variance)

        for v in res[0].flat:
            self.assertAlmostEqual(v, value)

        # Badpixels has default value
        res = ramp_array(self.data, self.ti, self.gain, self.ron, saturation=self.saturation, blank=self.blank)

        # for n in res[4].flat:
        #    self.assertEqual(n, 0)

        for n in res[3].flat:
            self.assertEqual(n, 0)

        for nn in res[2].flat:
            self.assertEqual(nn, 10)

        for v in res[1].flat:
            self.assertAlmostEqual(v, variance)

        for v in res[0].flat:
            self.assertAlmostEqual(v, value)