def test_create_slitlets(): """Test that slitlets are Slit type and have all the necessary fields""" dm = ImageModel() dm.meta.instrument.name = 'NIRSPEC' dm.meta.observation.date = '2016-09-05' dm.meta.observation.time = '8:59:37' msa_oper = Step().get_reference_file(dm, 'msaoper') result = create_slitlets(dm, msa_oper) slit_fields = ('name', 'shutter_id', 'dither_position', 'xcen', 'ycen', 'ymin', 'ymax', 'quadrant', 'source_id', 'shutter_state', 'source_name', 'source_alias', 'stellarity', 'source_xpos', 'source_ypos', 'source_ra', 'source_dec') for slit in result: # Test the returned data type and fields. assert type(slit) == Slit assert slit._fields == slit_fields
def test_flag(): wcsinfo = { 'dec_ref': -0.00601415671349804, 'ra_ref': -0.02073605215697509, 'roll_ref': -0.0, 'v2_ref': -453.5134, 'v3_ref': -373.4826, 'v3yangle': 0.0, 'vparity': -1} instrument = { 'detector': 'NRS1', 'filter': 'F100LP', 'grating': 'G140M', 'name': 'NIRSPEC', 'gwa_tilt': 37.0610, 'gwa_xtilt': 0.0001, 'gwa_ytilt': 0.0001, 'msa_metadata_id':12} observation = { 'date': '2016-09-05', 'time': '8:59:37'} exposure = { 'duration': 11.805952, 'end_time': 58119.85416, 'exposure_time': 11.776, 'frame_time': 0.11776, 'group_time': 0.11776, 'groupgap': 0, 'integration_time': 11.776, 'nframes': 1, 'ngroups': 100, 'nints': 1, 'nresets_between_ints': 0, 'nsamples': 1, 'readpatt': 'NRSRAPID', 'sample_time': 10.0, 'start_time': 58119.8333, 'type': 'NRS_MSASPEC', 'zero_frame': False} im = ImageModel() im.data = np.random.rand(2048, 2048) im.error = np.random.rand(2048, 2048) im.dq = np.zeros((2048, 2048)) im.meta.wcsinfo._instance.update(wcsinfo) im.meta.instrument._instance.update(instrument) im.meta.observation._instance.update(observation) im.meta.exposure._instance.update(exposure) metafl = get_file_path('msa_configuration.fits') im.meta.instrument.msa_metadata_file = metafl im.meta.dither.position_number = 1 step = AssignWcsStep() msa_oper = step.get_reference_file(im, 'msaoper') im = step.call(im) wcs_ref_files = create_reference_filename_dictionary(im) failed_slitlets = create_slitlets(im, msa_oper) result = flag(im, failed_slitlets, wcs_ref_files) msa_open_dq = 536870912 # Get all dqflags that are nonzero nonzero = np.nonzero(result.dq) # Make sure that all nonzero dqs are equal to the msa_open_dq assert (all(x == msa_open_dq for x in result.dq[nonzero]))