예제 #1
0
 def test_combine(self): 
     cmd_folder = os.path.realpath(os.path.abspath(os.path.split(getfile(currentframe()))[0]))         
     
     parent = os.path.abspath(os.path.join(cmd_folder, os.pardir))
             
     if parent not in sys.path:
         sys.path.insert(0, parent)
         
     from shielding.shield_mult import combine
     
     slope_array = np.array([[0.2,0.4,4,5,13,11],
                               [7,14,3,1,8,6],
                               [1.8,9,4,7,2,18],
                               [2,5,15,12,7,8],
                               [3.6,8,3,1,5,2],
                               [2.8,9.6,4,15,1,3]])
     
     aspect_array = np.array([[1,2,3,4,5,5],
                               [7,5,3,1,8,6],
                               [7,7,4,7,2,7],
                               [2,5,7,7,7,8],
                               [7,8,3,1,5,2],
                               [7,7,4,7,1,3]])
     
     ms_orig_array = np.array([[0.18,0.36,0.36,0.45,0.98,0.85],
                               [0.74,0.94,0.27,0.09,0.82,0.92],
                               [0.78,0.93,0.36,0.77,0.23,0.98],
                               [0.22,0.58,0.85,0.28,0.77,0.83],
                               [0.65,0.84,0.92,0.89,0.75,0.82],
                               [0.89,0.96,0.45,0.85,0.93,0.38]])       
            
     one_dir = 'w'
     
     scripts_result = combine(ms_orig_array, slope_array, aspect_array, one_dir)
     
     np.set_printoptions(precision=2)
     
     expect_result = np.array([[0.16,0.32,0.32,0.41,0.96,0.77],
                               [0.76,0.88,0.24,0.08,0.74,0.85],
                               [0.70,0.95,0.32,0.78,0.21,1],
                               [0.20,0.52,1,0.95,0.78,0.75],
                               [0.60,0.76,0.85,0.80,0.68,0.74],
                               [0.80,0.98,0.41,1,0.86,0.34]])
         
     
     assert_almost_equal(scripts_result, expect_result, decimal=2, err_msg='',verbose=True)  
    def test_combine(self):

        from shielding.shield_mult import combine

        slope_array = np.array([[0.2, 0.4, 4, 5, 13, 11],
                                [7, 14, 3, 1, 8, 6],
                                [1.8, 9, 4, 7, 2, 18],
                                [2, 5, 15, 12, 7, 8],
                                [3.6, 8, 3, 1, 5, 2],
                                [2.8, 9.6, 4, 15, 1, 3]])

        aspect_array = np.array([[1, 2, 3, 4, 5, 5],
                                 [7, 5, 3, 1, 8, 6],
                                 [7, 7, 4, 7, 2, 7],
                                 [2, 5, 7, 7, 7, 8],
                                 [7, 8, 3, 1, 5, 2],
                                 [7, 7, 4, 7, 1, 3]])

        ms_orig_array = np.array([[0.18, 0.36, 0.36, 0.45, 0.98, 0.85],
                                  [0.74, 0.94, 0.27, 0.09, 0.82, 0.92],
                                  [0.78, 0.93, 0.36, 0.77, 0.23, 0.98],
                                  [0.22, 0.58, 0.85, 0.28, 0.77, 0.83],
                                  [0.65, 0.84, 0.92, 0.89, 0.75, 0.82],
                                  [0.89, 0.96, 0.45, 0.85, 0.93, 0.38]])

        one_dir = 'w'

        scripts_result = combine(ms_orig_array, slope_array, aspect_array,
                                 one_dir)

        np.set_printoptions(precision=2)

        expect_result = np.array([[0.16, 0.32, 0.32, 0.41, 0.96, 0.77],
                                  [0.76, 0.88, 0.24, 0.08, 0.74, 0.85],
                                  [0.70, 0.95, 0.32, 0.78, 0.21, 1],
                                  [0.20, 0.52, 1, 0.95, 0.78, 0.75],
                                  [0.60, 0.76, 0.85, 0.80, 0.68, 0.74],
                                  [0.80, 0.98, 0.41, 1, 0.86, 0.34]])

        assert_almost_equal(scripts_result, expect_result, decimal=2,
                            err_msg='', verbose=True)
예제 #3
0
    def test_combine(self):

        from shielding.shield_mult import combine

        slope_array = np.array([[0.2, 0.4, 4, 5, 13, 11], [7, 14, 3, 1, 8, 6],
                                [1.8, 9, 4, 7, 2, 18], [2, 5, 15, 12, 7, 8],
                                [3.6, 8, 3, 1, 5, 2], [2.8, 9.6, 4, 15, 1, 3]])

        aspect_array = np.array([[1, 2, 3, 4, 5, 5], [7, 5, 3, 1, 8, 6],
                                 [7, 7, 4, 7, 2, 7], [2, 5, 7, 7, 7, 8],
                                 [7, 8, 3, 1, 5, 2], [7, 7, 4, 7, 1, 3]])

        ms_orig_array = np.array([[0.18, 0.36, 0.36, 0.45, 0.98, 0.85],
                                  [0.74, 0.94, 0.27, 0.09, 0.82, 0.92],
                                  [0.78, 0.93, 0.36, 0.77, 0.23, 0.98],
                                  [0.22, 0.58, 0.85, 0.28, 0.77, 0.83],
                                  [0.65, 0.84, 0.92, 0.89, 0.75, 0.82],
                                  [0.89, 0.96, 0.45, 0.85, 0.93, 0.38]])

        one_dir = 'w'

        scripts_result = combine(ms_orig_array, slope_array, aspect_array,
                                 one_dir)

        np.set_printoptions(precision=2)

        expect_result = np.array([[0.16, 0.32, 0.32, 0.41, 0.96, 0.77],
                                  [0.76, 0.88, 0.24, 0.08, 0.74, 0.85],
                                  [0.70, 0.95, 0.32, 0.78, 0.21, 1],
                                  [0.20, 0.52, 1, 0.95, 0.78, 0.75],
                                  [0.60, 0.76, 0.85, 0.80, 0.68, 0.74],
                                  [0.80, 0.98, 0.41, 1, 0.86, 0.34]])

        assert_almost_equal(scripts_result,
                            expect_result,
                            decimal=2,
                            err_msg='',
                            verbose=True)
    def test_combine_scenario(self):

        # A single line of elevation data to use in the tests:
        pixelwidth = 25.
        ms_orig = np.ones([3, 640])
        ms_orig[:, 160:200] = 0.85
        ms_orig[:, 200:240] = 0.9
        ms_orig[:, 320:360] = 0.85
        ms_orig[:, 360:400] = 0.88
        ms_orig[:, 400:440] = 0.9
        ms_orig[:, 520:560] = 0.85
        ms_orig[:, 560:600] = 0.88

        slope_array = np.zeros([3, 640])
        slope_array[:, 320:360] = 3.44
        slope_array[:, 360:400] = 3.44
        slope_array[:, 520:560] = 12.68
        slope_array[:, 560:600] = 12.68

        aspect_array = np.empty([3, 640])
        aspect_array.fill(9)
        aspect_array[:, 320:360] = 7
        aspect_array[:, 360:400] = 3
        aspect_array[:, 520:560] = 7
        aspect_array[:, 560:600] = 3

        ms_engineered = np.ones(640)
        ms_engineered[161] = 0.957
        ms_engineered[162] = 0.836
        ms_engineered[163:201] = 0.765
        ms_engineered[201] = 0.771
        ms_engineered[202] = 0.791
        ms_engineered[203:241] = 0.810
        ms_engineered[241] = 0.836
        ms_engineered[242] = 0.916
        ms_engineered[243:321] = 1.0
        ms_engineered[321] = 0.959
        ms_engineered[322] = 0.841
        ms_engineered[323:360] = 0.769
        ms_engineered[360] = 0.765
        ms_engineered[361] = 0.769
        ms_engineered[362] = 0.782
        ms_engineered[363:401] = 0.792
        ms_engineered[401] = 0.795
        ms_engineered[402] = 0.803
        ms_engineered[403:441] = 0.810
        ms_engineered[441] = 0.836
        ms_engineered[442] = 0.916
        ms_engineered[443:560] = 1.0
        ms_engineered[560] = 0.765
        ms_engineered[561] = 0.769
        ms_engineered[562] = 0.782
        ms_engineered[563:601] = 0.792
        ms_engineered[601] = 0.806
        ms_engineered[602] = 0.912
        ms_engineered[603:640] = 1.0

        from shielding.shield_mult import kern_w, blur_image, combine

        kernel_size = int(100.0 / pixelwidth) - 1

        if kernel_size > 0:
            outdata = np.zeros_like(ms_orig, dtype=np.float32)
            mask = kern_w(kernel_size)
            outdata = blur_image(ms_orig, mask)
        else:
            outdata = ms_orig

        result = combine(outdata, slope_array, aspect_array, 'w')

        # get the computed mz from scripts using the test line total
        mh_scripts = result[1, :].flatten()
        np.set_printoptions(precision=3)

        assert_almost_equal(mh_scripts, ms_engineered, decimal=2, err_msg='',
                            verbose=True)
예제 #5
0
    def test_combine(self):
        
#        import pdb
#        pdb.set_trace()

        ms_engineered = np.ones(640)
        ms_engineered[160] = 0.963
        ms_engineered[161] = 0.926
        ms_engineered[162] = 0.821
        ms_engineered[163:200] = 0.765
        ms_engineered[200] = 0.771
        ms_engineered[201] = 0.776
        ms_engineered[202] = 0.793
        ms_engineered[203:240] = 0.810
        ms_engineered[240] = 0.833
        ms_engineered[241] = 0.856
        ms_engineered[242] = 0.926
        ms_engineered[243:320] = 1.0
        ms_engineered[320] = 0.963
        ms_engineered[321] = 0.926
        ms_engineered[322] = 0.821
        ms_engineered[323:340] = 0.765
        ms_engineered[340:360] = 0.769
        ms_engineered[360] = 0.768
        ms_engineered[361] = 0.772
        ms_engineered[362] = 0.782
        ms_engineered[363:400] = 0.792
        ms_engineered[400] = 0.794
        ms_engineered[401] = 0.797
        ms_engineered[402] = 0.803
        ms_engineered[403:440] = 0.810
        ms_engineered[440] = 0.833
        ms_engineered[441] = 0.856
        ms_engineered[442] = 0.926
        ms_engineered[443:520] = 1.0
#        ms_engineered[520] = 0.963
#        ms_engineered[521] = 0.926
#        ms_engineered[522] = 0.821
#        ms_engineered[523:528] = 0.765
#        ms_engineered[528:532] = 0.794
#        ms_engineered[532:536] = 0.851
#        ms_engineered[536:540] = 0.929
#        ms_engineered[540:560] = 1.000
        ms_engineered[560] = 0.768
        ms_engineered[561] = 0.772
        ms_engineered[562] = 0.782
        ms_engineered[563:600] = 0.792
        ms_engineered[600] = 0.806
        ms_engineered[601] = 0.828
        ms_engineered[602] = 0.912
        ms_engineered[603:640] = 1.0
        
                
        cmd_folder = os.path.realpath(
                     os.path.abspath(os.path.split(
                     getfile(currentframe()))[0]))         
        
        parent = os.path.abspath(os.path.join(cmd_folder, os.pardir))
            
        if parent not in sys.path:
            sys.path.insert(0, parent) 
            
        from shielding.shield_mult import kern_w, blur_image, combine        
        
        kernel_size = int(100.0 / self.pixelwidth) - 1

        if kernel_size > 0:
            outdata = np.zeros_like(self.ms_orig, dtype=np.float32)
            mask = kern_w(kernel_size)
            outdata = blur_image(self.ms_orig, mask)
        else:
            outdata = self.ms_orig

            
        result = combine(outdata, self.slope_array, self.aspect_array, 'w')

        #plot the line profile
#        point_no = result.shape[1]
#        print point_no
#        x = np.arange(point_no)
#        y = result[1,:].flatten()
#        print y
#        pyplot.plot(x, y, 'g')
#        pyplot.show()

        # get the computed mz from scripts using the test line total
        mh_scripts = result[1,:].flatten()        
        
        assert_almost_equal(mh_scripts, ms_engineered, decimal=2, err_msg='',verbose=True)
예제 #6
0
    def test_combine_scenario(self):

        # A single line of elevation data to use in the tests:
        pixelwidth = 25.
        ms_orig = np.ones([3, 640])
        ms_orig[:, 160:200] = 0.85
        ms_orig[:, 200:240] = 0.9
        ms_orig[:, 320:360] = 0.85
        ms_orig[:, 360:400] = 0.88
        ms_orig[:, 400:440] = 0.9
        ms_orig[:, 520:560] = 0.85
        ms_orig[:, 560:600] = 0.88

        slope_array = np.zeros([3, 640])
        slope_array[:, 320:360] = 3.44
        slope_array[:, 360:400] = 3.44
        slope_array[:, 520:560] = 12.68
        slope_array[:, 560:600] = 12.68

        aspect_array = np.empty([3, 640])
        aspect_array.fill(9)
        aspect_array[:, 320:360] = 7
        aspect_array[:, 360:400] = 3
        aspect_array[:, 520:560] = 7
        aspect_array[:, 560:600] = 3

        ms_engineered = np.ones(640)
        ms_engineered[161] = 0.957
        ms_engineered[162] = 0.836
        ms_engineered[163:201] = 0.765
        ms_engineered[201] = 0.771
        ms_engineered[202] = 0.791
        ms_engineered[203:241] = 0.810
        ms_engineered[241] = 0.836
        ms_engineered[242] = 0.916
        ms_engineered[243:321] = 1.0
        ms_engineered[321] = 0.959
        ms_engineered[322] = 0.841
        ms_engineered[323:360] = 0.769
        ms_engineered[360] = 0.765
        ms_engineered[361] = 0.769
        ms_engineered[362] = 0.782
        ms_engineered[363:401] = 0.792
        ms_engineered[401] = 0.795
        ms_engineered[402] = 0.803
        ms_engineered[403:441] = 0.810
        ms_engineered[441] = 0.836
        ms_engineered[442] = 0.916
        ms_engineered[443:560] = 1.0
        ms_engineered[560] = 0.765
        ms_engineered[561] = 0.769
        ms_engineered[562] = 0.782
        ms_engineered[563:601] = 0.792
        ms_engineered[601] = 0.806
        ms_engineered[602] = 0.912
        ms_engineered[603:640] = 1.0

        from shielding.shield_mult import kern_w, blur_image, combine

        kernel_size = int(100.0 / pixelwidth) - 1

        if kernel_size > 0:
            outdata = np.zeros_like(ms_orig, dtype=np.float32)
            mask = kern_w(kernel_size)
            outdata = blur_image(ms_orig, mask)
        else:
            outdata = ms_orig

        result = combine(outdata, slope_array, aspect_array, 'w')

        # get the computed mz from scripts using the test line total
        mh_scripts = result[1, :].flatten()
        np.set_printoptions(precision=3)

        assert_almost_equal(mh_scripts,
                            ms_engineered,
                            decimal=2,
                            err_msg='',
                            verbose=True)