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)
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)
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)