コード例 #1
0
ファイル: test_CombinedData.py プロジェクト: ggarba/Dioptas
class CombinedDataTest(unittest.TestCase):
    def setUp(self):
        self.img_data = ImgData()
        self.img_data.load('Data/Mg2SiO4_ambient_001.tif')
        self.calibration_data = CalibrationData(self.img_data)
        self.calibration_data.load('Data/calibration.poni')
        self.mask_data = MaskData()
        self.mask_data.mask_ellipse(500, 500, 100, 100)
        self.spectrum_data = SpectrumData()

    def test_dependencies(self):
        tth1, int1 = self.calibration_data.integrate_1d()
        self.img_data.load_next_file()

        self.assertEqual(os.path.abspath(self.img_data.filename),
                         os.path.abspath('Data/Mg2SiO4_ambient_002.tif'))
        tth2, int2 = self.calibration_data.integrate_1d()
        self.assertFalse(np.array_equal(int1, int2))

        plt.figure(1)
        plt.plot(tth1, int1)
        plt.plot(tth2, int2)
        plt.savefig('Results/dependencies1.png')

        tth3, int3 = self.calibration_data.integrate_1d(mask=self.mask_data.get_mask())
        self.assertFalse(np.array_equal(int2, int3))
        plt.figure(2)
        plt.plot(tth2, int2)
        plt.plot(tth3, int3)
        plt.savefig('Results/dependencies2.png')

        tth4, int4 = self.calibration_data.integrate_1d(polarization_factor=0.90, mask=None)
        plt.figure(3)
        plt.plot(tth2, int2)
        plt.plot(tth4, int4)
        plt.savefig('Results/dependencies3.png')

        tth5, int5 = self.calibration_data.integrate_1d(polarization_factor=.5, mask=None)
        plt.figure(4)
        plt.plot(tth4, int4)
        plt.plot(tth5, int5)
        plt.savefig('Results/dependencies4.png')

    def test_automatism(self):
        def integrate_and_set_spectrum():
            tth, I = self.calibration_data.integrate_1d()
            self.spectrum_data.set_spectrum(tth, I, self.img_data.filename)

        self.img_data.subscribe(integrate_and_set_spectrum)

        y1 = self.spectrum_data.spectrum.data[1]
        self.img_data.load_next_file()
        y2 = self.spectrum_data.spectrum.data[1]
        self.assertFalse(np.array_equal(y1, y2))
コード例 #2
0
ファイル: SpectrumDataTest.py プロジェクト: kif/Py2DeX
class SpectrumDataTest(unittest.TestCase):
    def setUp(self):
        self.spectrum = Spectrum()
        self.spectrum_data = SpectrumData()

    def test_spectrum_class(self):
        self.spectrum.save('Data/spec_test.txt')
        self.spectrum.save(
            'Data/spec_test2.txt',
            header='This is not only ridiculous\n but more and more '
            'challenging...')
        self.spectrum.load('Data/spec_test.txt')
        self.spectrum.load('Data/spec_test2.txt')

        self.assertTrue(
            np.array_equal(self.spectrum.data[0], np.linspace(0, 30, 100)))
        self.assertTrue(self.spectrum.load('Data/test_001.tif') == -1)

        self.spectrum.data = (np.linspace(0, 30), np.linspace(0, 20))
        self.spectrum.offset = 100
        self.assertTrue(
            np.array_equal(self.spectrum.data[1],
                           np.linspace(0, 20) + 100))
        self.assertTrue(
            np.array_equal(self.spectrum.data[0], np.linspace(0, 30)))

        self.spectrum.scaling = 10
        self.assertTrue(
            np.array_equal(self.spectrum.data[1],
                           np.linspace(0, 20) * 10 + 100))

        self.spectrum.data = (np.linspace(0, 20), np.linspace(0, 30))
        self.assertTrue(
            np.array_equal(self.spectrum.data[1], np.linspace(0, 30)))

        self.spectrum.scaling = -100
        self.assertTrue(
            np.array_equal(self.spectrum.data[1],
                           np.zeros(self.spectrum.data[0].shape)))

    def test_spectrum_data_class(self):
        self.spectrum_data.set_spectrum(np.linspace(0, 10),
                                        np.linspace(0, 10)**2, 'SQUARED')
        self.spectrum_data.add_overlay(np.linspace(0, 10),
                                       np.linspace(0, 10)**3, 'CUBED')
        self.spectrum_data.add_overlay(np.linspace(0, 10),
                                       np.linspace(0, 10)**4, 'QUADRUPOLED')

        self.assertTrue(len(self.spectrum_data.overlays) == 2)
        self.spectrum_data.del_overlay(0)
        self.assertTrue(self.spectrum_data.overlays[0].name == 'QUADRUPOLED')

        self.spectrum_data.add_overlay_file('Data/spec_test2.txt')
        self.assertTrue(self.spectrum_data.overlays[-1].name == 'spec_test2')
コード例 #3
0
ファイル: CombinedDataTest.py プロジェクト: kif/Py2DeX
class CombinedDataTest(unittest.TestCase):
    def setUp(self):
        self.img_data = ImgData()
        self.img_data.load('Data/Mg2SiO4_ambient_001.tif')
        self.calibration_data = CalibrationData(self.img_data)
        self.calibration_data.load('Data/calibration.poni')
        self.mask_data = MaskData()
        self.mask_data.load_mask('Data/test.mask')
        self.spectrum_data = SpectrumData()

    def test_dependencies(self):
        tth1, int1 = self.calibration_data.integrate_1d()
        self.img_data.load_next()
        tth2, int2 = self.calibration_data.integrate_1d()
        self.assertFalse(np.array_equal(int1, int2))

        plt.figure(1)
        plt.plot(tth1, int1)
        plt.plot(tth2, int2)
        plt.savefig('Results/dependencies1.jpg')

        tth3, int3 = self.calibration_data.integrate_1d(mask=self.mask_data.get_mask())
        self.assertFalse(np.array_equal(int2, int3))
        plt.figure(2)
        plt.plot(tth2, int2)
        plt.plot(tth3, int3)
        plt.savefig('Results/dependencies2.jpg')

        tth4, int4 = self.calibration_data.integrate_1d(polarization_factor=0.90, mask=None)
        plt.figure(3)
        plt.plot(tth2, int2)
        plt.plot(tth4, int4)
        plt.savefig('Results/dependencies3.jpg')

        tth5, int5 = self.calibration_data.integrate_1d(polarization_factor=.5, mask=None)
        plt.figure(4)
        plt.plot(tth4, int4)
        plt.plot(tth5, int5)
        plt.savefig('Results/dependencies4.jpg')

    def test_automatism(self):
        def integrate_and_set_spectrum():
            tth, I = self.calibration_data.integrate_1d()
            self.spectrum_data.set_spectrum(tth, I, self.img_data.filename)

        self.img_data.subscribe(integrate_and_set_spectrum)

        y1 = self.spectrum_data.spectrum.data[1]
        self.img_data.load_next()
        y2 = self.spectrum_data.spectrum.data[1]
        self.assertFalse(np.array_equal(y1, y2))
コード例 #4
0
ファイル: SpectrumDataTest.py プロジェクト: kif/Py2DeX
class SpectrumDataTest(unittest.TestCase):
    def setUp(self):
        self.spectrum = Spectrum()
        self.spectrum_data = SpectrumData()

    def test_spectrum_class(self):
        self.spectrum.save('Data/spec_test.txt')
        self.spectrum.save('Data/spec_test2.txt',
                           header='This is not only ridiculous\n but more and more '
                                  'challenging...')
        self.spectrum.load('Data/spec_test.txt')
        self.spectrum.load('Data/spec_test2.txt')

        self.assertTrue(np.array_equal(self.spectrum.data[0], np.linspace(0, 30, 100)))
        self.assertTrue(self.spectrum.load('Data/test_001.tif') == -1)

        self.spectrum.data = (np.linspace(0, 30), np.linspace(0, 20))
        self.spectrum.offset = 100
        self.assertTrue(np.array_equal(self.spectrum.data[1], np.linspace(0, 20) + 100))
        self.assertTrue(np.array_equal(self.spectrum.data[0], np.linspace(0, 30)))

        self.spectrum.scaling = 10
        self.assertTrue(np.array_equal(self.spectrum.data[1], np.linspace(0, 20) * 10 + 100))

        self.spectrum.data = (np.linspace(0, 20), np.linspace(0, 30))
        self.assertTrue(np.array_equal(self.spectrum.data[1], np.linspace(0, 30)))

        self.spectrum.scaling = -100
        self.assertTrue(np.array_equal(self.spectrum.data[1], np.zeros(self.spectrum.data[0].shape)))

    def test_spectrum_data_class(self):
        self.spectrum_data.set_spectrum(np.linspace(0, 10), np.linspace(0, 10) ** 2, 'SQUARED')
        self.spectrum_data.add_overlay(np.linspace(0, 10), np.linspace(0, 10) ** 3, 'CUBED')
        self.spectrum_data.add_overlay(np.linspace(0, 10), np.linspace(0, 10) ** 4, 'QUADRUPOLED')

        self.assertTrue(len(self.spectrum_data.overlays) == 2)
        self.spectrum_data.del_overlay(0)
        self.assertTrue(self.spectrum_data.overlays[0].name == 'QUADRUPOLED')

        self.spectrum_data.add_overlay_file('Data/spec_test2.txt')
        self.assertTrue(self.spectrum_data.overlays[-1].name == 'spec_test2')
コード例 #5
0
ファイル: test_SpectrumData.py プロジェクト: ggarba/Dioptas
class SpectrumDataTest(unittest.TestCase):
    def setUp(self):
        self.x = np.linspace(0.1, 15, 100)
        self.y = np.sin(self.x)
        self.spectrum = Spectrum(self.x, self.y)
        self.spectrum_data = SpectrumData()

    def test_spectrum_class(self):
        self.spectrum.save('Data/spec_test.txt')
        self.spectrum.save('Data/spec_test2.txt',
                           header='This is not only ridiculous\n but more and more '
                                  'challenging...')
        self.spectrum.load('Data/spec_test.txt', 0)
        self.spectrum.load('Data/spec_test2.txt', 0)

        self.assertTrue(np.array_equal(self.spectrum.data[0], np.linspace(0.1, 15, 100)))
        self.assertTrue(self.spectrum.load('Data/test_001.tif') == -1)

        self.spectrum.data = (np.linspace(0, 30), np.linspace(0, 20))
        self.spectrum.offset = 100
        self.assertTrue(np.array_equal(self.spectrum.data[1], np.linspace(0, 20) + 100))
        self.assertTrue(np.array_equal(self.spectrum.data[0], np.linspace(0, 30)))

        self.spectrum.scaling = 10
        self.assertTrue(np.array_equal(self.spectrum.data[1], np.linspace(0, 20) * 10 + 100))

        self.spectrum.data = (np.linspace(0, 20), np.linspace(0, 30))
        self.assertTrue(np.array_equal(self.spectrum.data[1], np.linspace(0, 30)))

        self.spectrum.scaling = -100
        self.assertTrue(np.array_equal(self.spectrum.data[1], np.zeros(self.spectrum.data[0].shape)))

    def test_spectrum_data_class(self):
        self.spectrum_data.set_spectrum(np.linspace(0, 10), np.linspace(0, 10) ** 2, 'SQUARED')
        self.spectrum_data.add_overlay(np.linspace(0, 10), np.linspace(0, 10) ** 3, 'CUBED')
        self.spectrum_data.add_overlay(np.linspace(0, 10), np.linspace(0, 10) ** 4, 'QUADRUPOLED')

        self.assertTrue(len(self.spectrum_data.overlays) == 2)
        self.spectrum_data.del_overlay(0)
        self.assertTrue(self.spectrum_data.overlays[0].name == 'QUADRUPOLED')

        self.spectrum_data.add_overlay_file('Data/spec_test2.txt')
        self.assertTrue(self.spectrum_data.overlays[-1].name == 'spec_test2')

    def test_background(self):
        x_spectrum = np.linspace(0,100,1001)
        y_spectrum = np.sin(x_spectrum)
        x_background = np.linspace(0,91, 1002)
        y_background = np.cos(x_background)

        spec = Spectrum(x_spectrum, y_spectrum)
        spec.set_background(Spectrum(x_background, y_background))

        x, y = spec.data

        self.assertTrue(x[-1]<1000)
        self.assertEqual(len(x), 911)

        test_x = np.linspace(0,91, 911)
        test_y = np.sin(test_x) - np.cos(test_x)

        diff = abs(np.sum(test_y-y))
        self.assertLess(diff, 1e-3)

    def test_background_not_in_spectrum_range(self):
        x_spectrum = np.linspace(0,30,101)
        y_spectrum = np.sin(x_spectrum)
        x_background = np.linspace(50,60, 102)
        y_background = np.cos(x_background)

        spec = Spectrum(x_spectrum, y_spectrum)
        spec.set_background(Spectrum(x_background, y_background))

        self.assertRaises(BkgNotInRangeError)