示例#1
0
 def test_draw_light_2d_linear(self):
     np.random.seed(41)
     lightProfile = LightProfile(profile_list=['HERNQUIST'],
                                 interpol_grid_num=1000,
                                 max_interpolate=10,
                                 min_interpolate=0.01)
     kwargs_profile = [{'amp': 1., 'Rs': 0.8}]
     r_list = lightProfile.draw_light_2d_linear(kwargs_profile, n=100000)
     bins = np.linspace(0., 1, 20)
     hist, bins_hist = np.histogram(r_list, bins=bins, density=True)
     light2d = lightProfile.light_2d(R=(bins_hist[1:] + bins_hist[:-1]) /
                                     2.,
                                     kwargs_list=kwargs_profile)
     light2d_upper = lightProfile.light_2d(
         R=bins_hist[1:], kwargs_list=kwargs_profile) * bins_hist[1:]
     light2d_lower = lightProfile.light_2d(
         R=bins_hist[:-1], kwargs_list=kwargs_profile) * bins_hist[:-1]
     light2d *= (bins_hist[1:] + bins_hist[:-1]) / 2.
     print((light2d_upper - light2d_lower) /
           (light2d_upper + light2d_lower) * 2)
     light2d /= np.sum(light2d)
     hist /= np.sum(hist)
     print(light2d / hist)
     for i in range(2, len(hist)):
         print(bins_hist[i], i, light2d[i] / hist[i])
         npt.assert_almost_equal(light2d[i] / hist[i], 1, decimal=1)
示例#2
0
 def test_draw_light_2d_linear(self):
     lightProfile = LightProfile(profile_list=['HERNQUIST'])
     kwargs_profile = [{'sigma0': 1., 'Rs': 0.8}]
     r_list = lightProfile.draw_light_2d_linear(kwargs_profile, n=100000)
     bins = np.linspace(0., 1, 20)
     hist, bins_hist = np.histogram(r_list, bins=bins, normed=True)
     light2d = lightProfile.light_2d(R=(bins_hist[1:] + bins_hist[:-1])/2., kwargs_list=kwargs_profile)
     light2d_upper = lightProfile.light_2d(R=bins_hist[1:], kwargs_list=kwargs_profile) * bins_hist[1:]
     light2d_lower = lightProfile.light_2d(R=bins_hist[:-1], kwargs_list=kwargs_profile) * bins_hist[:-1]
     light2d *= (bins_hist[1:] + bins_hist[:-1]) / 2.
     print((light2d_upper - light2d_lower)/(light2d_upper + light2d_lower) * 2)
     light2d /= np.sum(light2d)
     hist /= np.sum(hist)
     print(light2d / hist)
     for i in range(2, len(hist)):
         print(bins_hist[i], i, light2d[i] / hist[i])
         npt.assert_almost_equal(light2d[i] / hist[i], 1, decimal=1)