def test_tso_phot_4(): global shape, xcenter, ycenter value = 17. background = 0.8 radius = 5. radius_inner = 8. radius_outer = 11. data = mk_data_array(shape, value, background, xcenter, ycenter, radius) datamodel = datamodels.CubeModel(data) set_meta(datamodel, sub64p=False) int_times = include_int_times(datamodel) # Modify the column of integration numbers so that they extend outside # the range of integration numbers in the science data. This shouldn't # happen, i.e. this is to test an edge case. int_start = datamodel.meta.exposure.integration_start datamodel.int_times['integration_number'] += (2 * int_start) catalog = tso_aperture_photometry(datamodel, xcenter, ycenter, radius + 1., radius_inner, radius_outer) int_times = np.array([ 58704.62853, 58704.628655, 58704.62878, 58704.62890, 58704.6290, 58704.6291511, 58704.629275 ]) assert np.allclose(catalog['MJD'], int_times, rtol=1.e-8)
def test_tso_phot_2(): # pupil = 'WLP8' and subarray = 'SUB64P' shape = (7, 64, 64) xcenter = 31. ycenter = 31. value = 17. background = 0.8 radius = 50. radius_inner = None radius_outer = None data = mk_data_array(shape, value, background, xcenter, ycenter, radius) datamodel = datamodels.CubeModel(data) set_meta(datamodel, sub64p=True) catalog = tso_aperture_photometry(datamodel, xcenter, ycenter, radius, radius_inner, radius_outer) assert catalog.meta['instrument'] == datamodel.meta.instrument.name assert catalog.meta['filter'] == datamodel.meta.instrument.filter assert catalog.meta['subarray'] == datamodel.meta.subarray.name assert catalog.meta['pupil'] == datamodel.meta.instrument.pupil assert math.isclose(catalog.meta['xcenter'], xcenter, abs_tol=0.01) assert math.isclose(catalog.meta['ycenter'], ycenter, abs_tol=0.01) assert np.allclose(catalog['aperture_sum'], (value + background) * shape[-1] * shape[-2], rtol=1.e-6) assert np.allclose(catalog['aperture_sum_err'], 0., atol=1.e-7)
def test_tso_phot_5(): global shape, xcenter, ycenter value = 17. background = 0.8 radius = 5. radius_inner = 8. radius_outer = 11. data = mk_data_array(shape, value, background, xcenter, ycenter, radius) datamodel = datamodels.CubeModel(data) set_meta(datamodel, sub64p=False) datamodel.meta.bunit_data = 'MJy' # unexpected data unit with pytest.raises(ValueError): tso_aperture_photometry(datamodel, xcenter, ycenter, radius + 1., radius_inner, radius_outer)
def test_tso_phot_3(): global shape, xcenter, ycenter value = 17. background = 0.8 radius = 5. radius_inner = 8. radius_outer = 11. data = mk_data_array(shape, value, background, xcenter, ycenter, radius) datamodel = datamodels.CubeModel(data) set_meta(datamodel, sub64p=False) int_times = include_int_times(datamodel) catalog = tso_aperture_photometry(datamodel, xcenter, ycenter, radius + 1., radius_inner, radius_outer) offset = datamodel.meta.exposure.integration_start - 1 slc = slice(offset, offset + shape[0]) assert np.allclose(catalog['MJD'], int_times[slc], atol=1.e-8)
def test_tso_phot_1(): global shape, xcenter, ycenter # pupil = 'CLEAR' and subarray = 'FULL' value = 17. background = 0.8 radius = 5. radius_inner = 8. radius_outer = 11. data = mk_data_array(shape, value, background, xcenter, ycenter, radius) datamodel = datamodels.CubeModel(data) set_meta(datamodel, sub64p=False) # Use a larger radius than was used for creating the data. catalog = tso_aperture_photometry(datamodel, xcenter, ycenter, radius + 1., radius_inner, radius_outer) assert catalog.meta['instrument'] == datamodel.meta.instrument.name assert catalog.meta['filter'] == datamodel.meta.instrument.filter assert catalog.meta['subarray'] == datamodel.meta.subarray.name assert catalog.meta['detector'] == datamodel.meta.instrument.detector assert catalog.meta['channel'] == datamodel.meta.instrument.channel assert catalog.meta['target_name'] == datamodel.meta.target.catalog_name assert math.isclose(catalog.meta['xcenter'], xcenter, abs_tol=0.01) assert math.isclose(catalog.meta['ycenter'], ycenter, abs_tol=0.01) assert np.allclose(catalog['aperture_sum'], 1263.4778, rtol=1.e-7) assert np.allclose(catalog['aperture_sum_err'], 0., atol=1.e-7) assert np.allclose(catalog['net_aperture_sum'], 1173., rtol=1.e-7) assert np.allclose(catalog['annulus_sum'], 143.256627, rtol=1.e-7) assert np.allclose(catalog['annulus_sum_err'], 0., atol=1.e-7) assert np.allclose(catalog['annulus_mean'], background, rtol=1.e-7) assert np.allclose(catalog['annulus_mean'], 0.8, rtol=1.e-6) assert np.allclose(catalog['annulus_mean_err'], 0., rtol=1.e-7) assert np.allclose(catalog['net_aperture_sum'], 1173., rtol=1.e-7) assert np.allclose(catalog['net_aperture_sum_err'], 0., atol=1.e-7)