Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
0
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)