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