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