Пример #1
0
def make_container():
    """Create the container to test"""
    size = 5
    cube = CubeModel((size, size, size))
    cube.meta.target.proposer_name = 'JWST regression test'
    container = cube.to_container()
    return cube, container
Пример #2
0
def test_miri_slitless_wcs(_bigdata):
    """

    Regression test of creating a WCS object and doing pixel to sky transformation.

    """
    suffix = 'assignwcsstep'
    output_file_base, output_file = add_suffix('miri_slitless_wcs_output.fits',
                                               suffix)

    try:
        os.remove(output_file)
    except:
        pass

    input_file = os.path.join(
        _bigdata, 'miri', 'test_wcs', 'slitless',
        'jw80600012001_02101_00003_mirimage_rateints.fits')
    ref_file = os.path.join(
        _bigdata, 'miri', 'test_wcs', 'slitless',
        'jw80600012001_02101_00003_mirimage_assign_wcs.fits')

    AssignWcsStep.call(input_file, output_file=output_file_base, suffix=suffix)
    im = CubeModel(output_file)
    imref = CubeModel(ref_file)
    x, y = np.mgrid[:1031, :1024]
    ra, dec, lam = im.meta.wcs(x, y)
    raref, decref, lamref = imref.meta.wcs(x, y)
    utils.assert_allclose(ra, raref)
    utils.assert_allclose(dec, decref)
    utils.assert_allclose(lam, lamref)
Пример #3
0
def miri_mrs_short_tso():
    """Set up MIRI MRS SHORT TSO data"""

    image = CubeModel((5, 1024, 1032))
    image.data = np.random.random((5, 1024, 1032))
    image.meta.instrument.name = 'MIRI'
    image.meta.instrument.detector = 'MIRIFUSHORT'
    image.meta.exposure.type = 'MIR_MRS'
    image.meta.instrument.channel = '12'
    image.meta.instrument.band = 'SHORT'
    image.meta.filename = 'test_miri_short_tso.fits'
    image.meta.observation.date = '2019-01-01'
    image.meta.observation.time = '10:10:10'
    return image
Пример #4
0
def create_model_3d():
    im = CubeModel()
    im.meta.wcsinfo.crpix1 = 2.5
    im.meta.wcsinfo.crpix2 = 3
    im.meta.wcsinfo.crval1 = 5.6
    im.meta.wcsinfo.crval2 = -72.3
    im.meta.wcsinfo.wcsaxes = 2
    im.meta.wcsinfo.cunit1 = 'deg'
    im.meta.wcsinfo.cunit2 = 'deg'
    im.meta.wcsinfo.ctype1 = 'RA---TAN'
    im.meta.wcsinfo.ctype2 = 'DEC--TAN'
    im.meta.wcsinfo.pc1_1 = 1.
    im.meta.wcsinfo.pc1_2 = 0
    im.meta.wcsinfo.pc2_1 = 0.
    im.meta.wcsinfo.pc2_2 = 1.

    im.meta.wcsinfo.crpix3 = 1
    im.meta.wcsinfo.crval3 = 100
    im.meta.wcsinfo.wcsaxes = 3
    im.meta.wcsinfo.cunit3 = 'um'
    im.meta.wcsinfo.ctype3 = 'WAVE'
    im.meta.wcsinfo.pc3_1 = 0.
    im.meta.wcsinfo.pc3_2 = 0
    im.meta.wcsinfo.pc3_3 = 1
    im.meta.wcsinfo.pc1_3 = 0
    im.meta.wcsinfo.pc2_3 = 0.
    return im
Пример #5
0
def create_tso_wcsimage(filtername="F277W", subarray=False):
    """Help create tsgrism GWCS object."""
    if subarray:
        subarray = "SUBGRISM256"
    else:
        subarray = "FULL"
    hdul = create_hdul(exptype='NRC_TSGRISM',
                       pupil='GRISMR',
                       filtername=filtername,
                       detector='NRCALONG',
                       subarray=subarray,
                       wcskeys=wcs_tso_kw)
    hdul['sci'].header['SUBSIZE1'] = NIRCAM_TSO_WIDTH

    if subarray:
        hdul['sci'].header['SUBSIZE2'] = 256
        subsize = 256
    else:
        hdul['sci'].header['SUBSIZE2'] = 2048
        subsize = 2048

    hdul['sci'].data = np.ones((2, subsize, NIRCAM_TSO_WIDTH))
    im = CubeModel(hdul)
    im.meta.wcsinfo.siaf_xref_sci = 887.0
    im.meta.wcsinfo.siaf_yref_sci = 35.0
    aswcs = AssignWcsStep()
    return aswcs.process(im)
Пример #6
0
def create_tso_wcs(filtername=tsgrism_filters[0], subarray="SUBGRISM256"):
    """Help create tsgrism GWCS object."""
    hdul = create_hdul(exptype='NRC_TSGRISM', pupil='GRISMR',
                       filtername=filtername, detector='NRCALONG',
                       subarray=subarray, wcskeys=wcs_tso_kw)
    im = CubeModel(hdul)
    ref = get_reference_files(im)
    pipeline = nircam.create_pipeline(im, ref)
    wcsobj = wcs.WCS(pipeline)
    return wcsobj
Пример #7
0
    def test_miri_slitless_wcs(self):
        """

        Regression test of creating a WCS object and doing pixel to sky transformation.

        """
        input_file = self.get_data(self.test_dir,
                                   "jw80600012001_02101_00003_mirimage_rateints.fits")
        ref_file = self.get_data(*self.ref_loc,
                                 "jw80600012001_02101_00003_mirimage_assign_wcs.fits")

        result = AssignWcsStep.call(input_file)
        output_file = result.meta.filename
        result.save(output_file)
        result.close()

        im = CubeModel(output_file)
        imref = CubeModel(ref_file)
        x, y = np.mgrid[:1031, :1024]
        ra, dec, lam = im.meta.wcs(x, y)
        raref, decref, lamref = imref.meta.wcs(x, y)
        utils.assert_allclose(ra, raref)
        utils.assert_allclose(dec, decref)
        utils.assert_allclose(lam, lamref)
Пример #8
0
    def _dm(nints, ysize, xsize):
        # create the data arrays
        csize = (nints, ysize, xsize)
        data = np.random.randint(low=1, high=50, size=csize)
        err = np.random.randint(low=0.1, high=5.0, size=csize)
        var_p = err * err
        var_r = np.ones(csize) * 12

        # create a JWST datamodel
        dm = CubeModel(data=data, err=err, var_poisson=var_p, var_rnoise=var_r)

        dm.meta.instrument.name = 'NIRSPEC'
        dm.meta.date = '2018-01-01'
        dm.meta.instrument.detector = 'NRS1'
        dm.meta.observation.date = '2018-01-01'

        dm.meta.exposure.gain_factor = 2

        return dm
Пример #9
0
    def _add_missing_key(missing_key=None):
        tso_kw = wcs_tso_kw.copy()

        if missing_key is not None:
            tso_kw[missing_key] = None

        hdu = create_hdul(
            exptype='NRC_TSGRISM',
            pupil='GRISMR',
            filtername=request.param,
            detector='NRCALONG',
            subarray='SUBGRISM256',
            wcskeys=tso_kw,
            channel='LONG',
            module='A',
        )

        image_model = CubeModel(hdu)

        return image_model, get_reference_files(image_model)
Пример #10
0
    def test_miri_slitless_wcs(self):
        """
        Regression test of creating a WCS object and doing pixel to sky transformation.
        """
        input_file = self.get_data(self.test_dir,
                                   "jw80600012001_02101_00003_mirimage_rateints.fits")
        result = AssignWcsStep.call(input_file, save_results=True)

        cwd = os.path.abspath('.')
        os.makedirs('truth', exist_ok=True)
        os.chdir('truth')
        truth_file = self.get_data(*self.ref_loc,
                                 "jw80600012001_02101_00003_mirimage_assignwcsstep.fits")
        os.chdir(cwd)
        truth = CubeModel(truth_file)

        x, y = grid_from_bounding_box(result.meta.wcs.bounding_box)
        ra, dec, lam = result.meta.wcs(x, y)
        raref, decref, lamref = truth.meta.wcs(x, y)
        assert_allclose(ra, raref)
        assert_allclose(dec, decref)
        assert_allclose(lam, lamref)