def test_single_interval_time_axis(time_interval): axis = TimeMapAxis(edges_min=time_interval["t_min"], edges_max=time_interval["t_max"], reference_time=time_interval["t_ref"]) coord = Time(58933, format="mjd") + u.Quantity([1.5, 3.5, 10], unit="d") pix = axis.coord_to_pix(coord) assert axis.nbin == 1 assert_allclose(axis.time_delta.to_value("d"), 10) assert_allclose(axis.time_mid[0].mjd, 58933) pix_min = axis.coord_to_pix(time_interval["t_min"] + 0.001 * u.s) assert_allclose(pix_min, -0.5) pix_max = axis.coord_to_pix(time_interval["t_max"] - 0.001 * u.s) assert_allclose(pix_max, 0.5) assert_allclose(pix, [0.15, 0.35, np.nan])
def test_coord_to_idx_time_axis(time_intervals): tmin = time_intervals["t_min"] tmax = time_intervals["t_max"] tref = time_intervals["t_ref"] axis = TimeMapAxis(tmin, tmax, tref, name="time") time = Time(58927.020833333336, format="mjd") times = axis.time_mid times[::2] += 1 * u.h times = times.insert(0, tref - [1, 2] * u.yr) idx = axis.coord_to_idx(time) indices = axis.coord_to_idx(times) pix = axis.coord_to_pix(time) pixels = axis.coord_to_pix(times) assert idx == 0 assert_allclose(indices[1::2], [-1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19]) assert_allclose(indices[::2], -1) assert_allclose(pix, 0, atol=1e-10) assert_allclose(pixels[1::2], [np.nan, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19])