From fab9f7964734fc142f1fdd05f01f66ca95421b8d Mon Sep 17 00:00:00 2001 From: "David R. Law" Date: Sat, 6 Feb 2021 10:48:48 -0500 Subject: [PATCH 1/2] Enable cross-dichroics in cube_build --- CHANGES.rst | 5 + jwst/cube_build/cube_build.py | 3 +- jwst/cube_build/cube_build_step.py | 3 +- jwst/cube_build/file_table.py | 24 + jwst/cube_build/ifu_cube.py | 78 +++ jwst/cube_build/instrument_defaults.py | 528 ++++++++++++++++++ .../schemas/miri_ifucubepars.schema.yaml | 6 +- 7 files changed, 642 insertions(+), 5 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index d89fb9309f..b67eb44a94 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,11 @@ 0.18.4 (unreleased) =================== +cube_build +---------- + +- Added support for cross-dichroic configurations + datamodels ---------- diff --git a/jwst/cube_build/cube_build.py b/jwst/cube_build/cube_build.py index 6339091eec..56e433f0fa 100644 --- a/jwst/cube_build/cube_build.py +++ b/jwst/cube_build/cube_build.py @@ -178,7 +178,8 @@ def determine_band_coverage(self, master_table): # loop over the file names if self.instrument == 'MIRI': valid_channel = ['1', '2', '3', '4'] - valid_subchannel = ['short', 'medium', 'long'] + valid_subchannel = ['short', 'medium', 'long', 'short-medium', 'short-long', + 'medium-short', 'medium-long', 'long-short', 'long-medium'] nchannels = len(valid_channel) nsubchannels = len(valid_subchannel) diff --git a/jwst/cube_build/cube_build_step.py b/jwst/cube_build/cube_build_step.py index 18d97c3103..079203861f 100755 --- a/jwst/cube_build/cube_build_step.py +++ b/jwst/cube_build/cube_build_step.py @@ -387,7 +387,8 @@ def read_user_input(self): """ valid_channel = ['1', '2', '3', '4', 'all'] - valid_subchannel = ['short', 'medium', 'long', 'all'] + valid_subchannel = ['short', 'medium', 'long', 'all', 'short-medium', 'short-long', + 'medium-short', 'medium-long', 'long-short', 'long-medium'] valid_fwa = ['f070lp', 'f100lp', 'g170lp', 'f290lp', 'clear', 'all'] diff --git a/jwst/cube_build/file_table.py b/jwst/cube_build/file_table.py index bc58d2a1d8..d58c2ee178 100644 --- a/jwst/cube_build/file_table.py +++ b/jwst/cube_build/file_table.py @@ -18,21 +18,45 @@ def __init__(self): self.FileMap['MIRI']['1']['short'] = [] self.FileMap['MIRI']['1']['medium'] = [] self.FileMap['MIRI']['1']['long'] = [] + self.FileMap['MIRI']['1']['short-medium'] = [] + self.FileMap['MIRI']['1']['short-long'] = [] + self.FileMap['MIRI']['1']['medium-short'] = [] + self.FileMap['MIRI']['1']['medium-long'] = [] + self.FileMap['MIRI']['1']['long-short'] = [] + self.FileMap['MIRI']['1']['long-medium'] = [] self.FileMap['MIRI']['2'] = {} self.FileMap['MIRI']['2']['short'] = [] self.FileMap['MIRI']['2']['medium'] = [] self.FileMap['MIRI']['2']['long'] = [] + self.FileMap['MIRI']['2']['short-medium'] = [] + self.FileMap['MIRI']['2']['short-long'] = [] + self.FileMap['MIRI']['2']['medium-short'] = [] + self.FileMap['MIRI']['2']['medium-long'] = [] + self.FileMap['MIRI']['2']['long-short'] = [] + self.FileMap['MIRI']['2']['long-medium'] = [] self.FileMap['MIRI']['3'] = {} self.FileMap['MIRI']['3']['short'] = [] self.FileMap['MIRI']['3']['medium'] = [] self.FileMap['MIRI']['3']['long'] = [] + self.FileMap['MIRI']['3']['short-medium'] = [] + self.FileMap['MIRI']['3']['short-long'] = [] + self.FileMap['MIRI']['3']['medium-short'] = [] + self.FileMap['MIRI']['3']['medium-long'] = [] + self.FileMap['MIRI']['3']['long-short'] = [] + self.FileMap['MIRI']['3']['long-medium'] = [] self.FileMap['MIRI']['4'] = {} self.FileMap['MIRI']['4']['short'] = [] self.FileMap['MIRI']['4']['medium'] = [] self.FileMap['MIRI']['4']['long'] = [] + self.FileMap['MIRI']['4']['short-medium'] = [] + self.FileMap['MIRI']['4']['short-long'] = [] + self.FileMap['MIRI']['4']['medium-short'] = [] + self.FileMap['MIRI']['4']['medium-long'] = [] + self.FileMap['MIRI']['4']['long-short'] = [] + self.FileMap['MIRI']['4']['long-medium'] = [] self.FileMap['NIRSPEC'] = {} self.FileMap['NIRSPEC']['prism'] = {} diff --git a/jwst/cube_build/ifu_cube.py b/jwst/cube_build/ifu_cube.py index 4c4378d562..62c6cf2e66 100644 --- a/jwst/cube_build/ifu_cube.py +++ b/jwst/cube_build/ifu_cube.py @@ -2345,6 +2345,84 @@ def setup_final_ifucube_model(self, model_ref): ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL4C' ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE4C' + if self.list_par1[0] == '1' and self.list_par2[0] == 'short-medium': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL1A' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE1A' + if self.list_par1[0] == '2' and self.list_par2[0] == 'short-medium': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL2B' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE2B' + if self.list_par1[0] == '3' and self.list_par2[0] == 'short-medium': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL3B' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE3B' + if self.list_par1[0] == '4' and self.list_par2[0] == 'short-medium': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL4A' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE4A' + + if self.list_par1[0] == '1' and self.list_par2[0] == 'short-long': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL1A' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE1A' + if self.list_par1[0] == '2' and self.list_par2[0] == 'short-long': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL2C' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE2C' + if self.list_par1[0] == '3' and self.list_par2[0] == 'short-long': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL3C' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE3C' + if self.list_par1[0] == '4' and self.list_par2[0] == 'short-long': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL4A' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE4A' + + if self.list_par1[0] == '1' and self.list_par2[0] == 'medium-short': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL1B' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE1B' + if self.list_par1[0] == '2' and self.list_par2[0] == 'medium-short': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL2A' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE2A' + if self.list_par1[0] == '3' and self.list_par2[0] == 'medium-short': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL3A' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE3A' + if self.list_par1[0] == '4' and self.list_par2[0] == 'medium-short': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL4B' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE4B' + + if self.list_par1[0] == '1' and self.list_par2[0] == 'medium-long': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL1B' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE1B' + if self.list_par1[0] == '2' and self.list_par2[0] == 'medium-long': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL2C' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE2C' + if self.list_par1[0] == '3' and self.list_par2[0] == 'medium-long': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL3C' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE3C' + if self.list_par1[0] == '4' and self.list_par2[0] == 'medium-long': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL4B' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE4B' + + if self.list_par1[0] == '1' and self.list_par2[0] == 'long-short': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL1C' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE1C' + if self.list_par1[0] == '2' and self.list_par2[0] == 'long-short': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL2A' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE2A' + if self.list_par1[0] == '3' and self.list_par2[0] == 'long-short': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL3A' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE3A' + if self.list_par1[0] == '4' and self.list_par2[0] == 'long-short': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL4C' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE4C' + + if self.list_par1[0] == '1' and self.list_par2[0] == 'long-medium': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL1C' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE1C' + if self.list_par1[0] == '2' and self.list_par2[0] == 'long-medium': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL2B' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE2B' + if self.list_par1[0] == '3' and self.list_par2[0] == 'long-medium': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL3B' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE3B' + if self.list_par1[0] == '4' and self.list_par2[0] == 'long-medium': + ifucube_model.meta.wcsinfo.ctype1 = 'MRSAL4C' + ifucube_model.meta.wcsinfo.ctype2 = 'MRSBE4C' + if self.instrument == 'NIRSPEC': ifucube_model.meta.wcsinfo.cunit1 = 'meter' ifucube_model.meta.wcsinfo.cunit2 = 'meter' diff --git a/jwst/cube_build/instrument_defaults.py b/jwst/cube_build/instrument_defaults.py index e436265be3..e260527c99 100644 --- a/jwst/cube_build/instrument_defaults.py +++ b/jwst/cube_build/instrument_defaults.py @@ -355,6 +355,534 @@ def __init__(self): self.Info['4']['long']['rp_b_ave'] = None self.Info['4']['long']['rp_c_ave'] = None + self.Info['1']['short-medium'] = {} + self.Info['1']['short-medium']['ascale'] = None + self.Info['1']['short-medium']['bscale'] = None + self.Info['1']['short-medium']['wscale'] = None + self.Info['1']['short-medium']['sroi'] = None + self.Info['1']['short-medium']['wroi'] = None + self.Info['1']['short-medium']['wavemin'] = None + self.Info['1']['short-medium']['wavemax'] = None + self.Info['1']['short-medium']['softrad'] = None + self.Info['1']['short-medium']['scalerad'] = None + self.Info['1']['short-medium']['msm_power'] = None + self.Info['1']['short-medium']['rp_wave_cuttoff'] = None + self.Info['1']['short-medium']['rp_a_low'] = None + self.Info['1']['short-medium']['rp_b_low'] = None + self.Info['1']['short-medium']['rp_c_low'] = None + self.Info['1']['short-medium']['rp_a_high'] = None + self.Info['1']['short-medium']['rp_b_high'] = None + self.Info['1']['short-medium']['rp_c_high'] = None + self.Info['1']['short-medium']['rp_a_ave'] = None + self.Info['1']['short-medium']['rp_b_ave'] = None + self.Info['1']['short-medium']['rp_c_ave'] = None + + self.Info['2']['short-medium'] = {} + self.Info['2']['short-medium']['ascale'] = None + self.Info['2']['short-medium']['bscale'] = None + self.Info['2']['short-medium']['wscale'] = None + self.Info['2']['short-medium']['sroi'] = None + self.Info['2']['short-medium']['wroi'] = None + self.Info['2']['short-medium']['wavemin'] = None + self.Info['2']['short-medium']['wavemax'] = None + self.Info['2']['short-medium']['softrad'] = None + self.Info['2']['short-medium']['scalerad'] = None + self.Info['2']['short-medium']['msm_power'] = None + self.Info['2']['short-medium']['rp_wave_cuttoff'] = None + self.Info['2']['short-medium']['rp_a_low'] = None + self.Info['2']['short-medium']['rp_b_low'] = None + self.Info['2']['short-medium']['rp_c_low'] = None + self.Info['2']['short-medium']['rp_a_high'] = None + self.Info['2']['short-medium']['rp_b_high'] = None + self.Info['2']['short-medium']['rp_c_high'] = None + self.Info['2']['short-medium']['rp_a_ave'] = None + self.Info['2']['short-medium']['rp_b_ave'] = None + self.Info['2']['short-medium']['rp_c_ave'] = None + + self.Info['3']['short-medium'] = {} + self.Info['3']['short-medium']['ascale'] = None + self.Info['3']['short-medium']['bscale'] = None + self.Info['3']['short-medium']['wscale'] = None + self.Info['3']['short-medium']['sroi'] = None + self.Info['3']['short-medium']['wroi'] = None + self.Info['3']['short-medium']['wavemin'] = None + self.Info['3']['short-medium']['wavemax'] = None + self.Info['3']['short-medium']['softrad'] = None + self.Info['3']['short-medium']['scalerad'] = None + self.Info['3']['short-medium']['msm_power'] = None + self.Info['3']['short-medium']['rp_wave_cuttoff'] = None + self.Info['3']['short-medium']['rp_a_low'] = None + self.Info['3']['short-medium']['rp_b_low'] = None + self.Info['3']['short-medium']['rp_c_low'] = None + self.Info['3']['short-medium']['rp_a_high'] = None + self.Info['3']['short-medium']['rp_b_high'] = None + self.Info['3']['short-medium']['rp_c_high'] = None + self.Info['3']['short-medium']['rp_a_ave'] = None + self.Info['3']['short-medium']['rp_b_ave'] = None + self.Info['3']['short-medium']['rp_c_ave'] = None + + self.Info['4']['short-medium'] = {} + self.Info['4']['short-medium']['ascale'] = None + self.Info['4']['short-medium']['bscale'] = None + self.Info['4']['short-medium']['wscale'] = None + self.Info['4']['short-medium']['sroi'] = None + self.Info['4']['short-medium']['wroi'] = None + self.Info['4']['short-medium']['wavemin'] = None + self.Info['4']['short-medium']['wavemax'] = None + self.Info['4']['short-medium']['softrad'] = None + self.Info['4']['short-medium']['scalerad'] = None + self.Info['4']['short-medium']['msm_power'] = None + self.Info['4']['short-medium']['rp_wave_cuttoff'] = None + self.Info['4']['short-medium']['rp_a_low'] = None + self.Info['4']['short-medium']['rp_b_low'] = None + self.Info['4']['short-medium']['rp_c_low'] = None + self.Info['4']['short-medium']['rp_a_high'] = None + self.Info['4']['short-medium']['rp_b_high'] = None + self.Info['4']['short-medium']['rp_c_high'] = None + self.Info['4']['short-medium']['rp_a_ave'] = None + self.Info['4']['short-medium']['rp_b_ave'] = None + self.Info['4']['short-medium']['rp_c_ave'] = None + + self.Info['1']['short-long'] = {} + self.Info['1']['short-long']['ascale'] = None + self.Info['1']['short-long']['bscale'] = None + self.Info['1']['short-long']['wscale'] = None + self.Info['1']['short-long']['sroi'] = None + self.Info['1']['short-long']['wroi'] = None + self.Info['1']['short-long']['wavemin'] = None + self.Info['1']['short-long']['wavemax'] = None + self.Info['1']['short-long']['softrad'] = None + self.Info['1']['short-long']['scalerad'] = None + self.Info['1']['short-long']['msm_power'] = None + self.Info['1']['short-long']['rp_wave_cuttoff'] = None + self.Info['1']['short-long']['rp_a_low'] = None + self.Info['1']['short-long']['rp_b_low'] = None + self.Info['1']['short-long']['rp_c_low'] = None + self.Info['1']['short-long']['rp_a_high'] = None + self.Info['1']['short-long']['rp_b_high'] = None + self.Info['1']['short-long']['rp_c_high'] = None + self.Info['1']['short-long']['rp_a_ave'] = None + self.Info['1']['short-long']['rp_b_ave'] = None + self.Info['1']['short-long']['rp_c_ave'] = None + + self.Info['2']['short-long'] = {} + self.Info['2']['short-long']['ascale'] = None + self.Info['2']['short-long']['bscale'] = None + self.Info['2']['short-long']['wscale'] = None + self.Info['2']['short-long']['sroi'] = None + self.Info['2']['short-long']['wroi'] = None + self.Info['2']['short-long']['wavemin'] = None + self.Info['2']['short-long']['wavemax'] = None + self.Info['2']['short-long']['softrad'] = None + self.Info['2']['short-long']['scalerad'] = None + self.Info['2']['short-long']['msm_power'] = None + self.Info['2']['short-long']['rp_wave_cuttoff'] = None + self.Info['2']['short-long']['rp_a_low'] = None + self.Info['2']['short-long']['rp_b_low'] = None + self.Info['2']['short-long']['rp_c_low'] = None + self.Info['2']['short-long']['rp_a_high'] = None + self.Info['2']['short-long']['rp_b_high'] = None + self.Info['2']['short-long']['rp_c_high'] = None + self.Info['2']['short-long']['rp_a_ave'] = None + self.Info['2']['short-long']['rp_b_ave'] = None + self.Info['2']['short-long']['rp_c_ave'] = None + + self.Info['3']['short-long'] = {} + self.Info['3']['short-long']['ascale'] = None + self.Info['3']['short-long']['bscale'] = None + self.Info['3']['short-long']['wscale'] = None + self.Info['3']['short-long']['sroi'] = None + self.Info['3']['short-long']['wroi'] = None + self.Info['3']['short-long']['wavemin'] = None + self.Info['3']['short-long']['wavemax'] = None + self.Info['3']['short-long']['softrad'] = None + self.Info['3']['short-long']['scalerad'] = None + self.Info['3']['short-long']['msm_power'] = None + self.Info['3']['short-long']['rp_wave_cuttoff'] = None + self.Info['3']['short-long']['rp_a_low'] = None + self.Info['3']['short-long']['rp_b_low'] = None + self.Info['3']['short-long']['rp_c_low'] = None + self.Info['3']['short-long']['rp_a_high'] = None + self.Info['3']['short-long']['rp_b_high'] = None + self.Info['3']['short-long']['rp_c_high'] = None + self.Info['3']['short-long']['rp_a_ave'] = None + self.Info['3']['short-long']['rp_b_ave'] = None + self.Info['3']['short-long']['rp_c_ave'] = None + + self.Info['4']['short-long'] = {} + self.Info['4']['short-long']['ascale'] = None + self.Info['4']['short-long']['bscale'] = None + self.Info['4']['short-long']['wscale'] = None + self.Info['4']['short-long']['sroi'] = None + self.Info['4']['short-long']['wroi'] = None + self.Info['4']['short-long']['wavemin'] = None + self.Info['4']['short-long']['wavemax'] = None + self.Info['4']['short-long']['softrad'] = None + self.Info['4']['short-long']['scalerad'] = None + self.Info['4']['short-long']['msm_power'] = None + self.Info['4']['short-long']['rp_wave_cuttoff'] = None + self.Info['4']['short-long']['rp_a_low'] = None + self.Info['4']['short-long']['rp_b_low'] = None + self.Info['4']['short-long']['rp_c_low'] = None + self.Info['4']['short-long']['rp_a_high'] = None + self.Info['4']['short-long']['rp_b_high'] = None + self.Info['4']['short-long']['rp_c_high'] = None + self.Info['4']['short-long']['rp_a_ave'] = None + self.Info['4']['short-long']['rp_b_ave'] = None + self.Info['4']['short-long']['rp_c_ave'] = None + + self.Info['1']['medium-short'] = {} + self.Info['1']['medium-short']['ascale'] = None + self.Info['1']['medium-short']['bscale'] = None + self.Info['1']['medium-short']['wscale'] = None + self.Info['1']['medium-short']['sroi'] = None + self.Info['1']['medium-short']['wroi'] = None + self.Info['1']['medium-short']['wavemin'] = None + self.Info['1']['medium-short']['wavemax'] = None + self.Info['1']['medium-short']['softrad'] = None + self.Info['1']['medium-short']['scalerad'] = None + self.Info['1']['medium-short']['msm_power'] = None + self.Info['1']['medium-short']['rp_wave_cuttoff'] = None + self.Info['1']['medium-short']['rp_a_low'] = None + self.Info['1']['medium-short']['rp_b_low'] = None + self.Info['1']['medium-short']['rp_c_low'] = None + self.Info['1']['medium-short']['rp_a_high'] = None + self.Info['1']['medium-short']['rp_b_high'] = None + self.Info['1']['medium-short']['rp_c_high'] = None + self.Info['1']['medium-short']['rp_a_ave'] = None + self.Info['1']['medium-short']['rp_b_ave'] = None + self.Info['1']['medium-short']['rp_c_ave'] = None + + self.Info['2']['medium-short'] = {} + self.Info['2']['medium-short']['ascale'] = None + self.Info['2']['medium-short']['bscale'] = None + self.Info['2']['medium-short']['wscale'] = None + self.Info['2']['medium-short']['sroi'] = None + self.Info['2']['medium-short']['wroi'] = None + self.Info['2']['medium-short']['wavemin'] = None + self.Info['2']['medium-short']['wavemax'] = None + self.Info['2']['medium-short']['softrad'] = None + self.Info['2']['medium-short']['scalerad'] = None + self.Info['2']['medium-short']['msm_power'] = None + self.Info['2']['medium-short']['rp_wave_cuttoff'] = None + self.Info['2']['medium-short']['rp_a_low'] = None + self.Info['2']['medium-short']['rp_b_low'] = None + self.Info['2']['medium-short']['rp_c_low'] = None + self.Info['2']['medium-short']['rp_a_high'] = None + self.Info['2']['medium-short']['rp_b_high'] = None + self.Info['2']['medium-short']['rp_c_high'] = None + self.Info['2']['medium-short']['rp_a_ave'] = None + self.Info['2']['medium-short']['rp_b_ave'] = None + self.Info['2']['medium-short']['rp_c_ave'] = None + + self.Info['3']['medium-short'] = {} + self.Info['3']['medium-short']['ascale'] = None + self.Info['3']['medium-short']['bscale'] = None + self.Info['3']['medium-short']['wscale'] = None + self.Info['3']['medium-short']['sroi'] = None + self.Info['3']['medium-short']['wroi'] = None + self.Info['3']['medium-short']['wavemin'] = None + self.Info['3']['medium-short']['wavemax'] = None + self.Info['3']['medium-short']['softrad'] = None + self.Info['3']['medium-short']['scalerad'] = None + self.Info['3']['medium-short']['msm_power'] = None + self.Info['3']['medium-short']['rp_wave_cuttoff'] = None + self.Info['3']['medium-short']['rp_a_low'] = None + self.Info['3']['medium-short']['rp_b_low'] = None + self.Info['3']['medium-short']['rp_c_low'] = None + self.Info['3']['medium-short']['rp_a_high'] = None + self.Info['3']['medium-short']['rp_b_high'] = None + self.Info['3']['medium-short']['rp_c_high'] = None + self.Info['3']['medium-short']['rp_a_ave'] = None + self.Info['3']['medium-short']['rp_b_ave'] = None + self.Info['3']['medium-short']['rp_c_ave'] = None + + self.Info['4']['medium-short'] = {} + self.Info['4']['medium-short']['ascale'] = None + self.Info['4']['medium-short']['bscale'] = None + self.Info['4']['medium-short']['wscale'] = None + self.Info['4']['medium-short']['sroi'] = None + self.Info['4']['medium-short']['wroi'] = None + self.Info['4']['medium-short']['wavemin'] = None + self.Info['4']['medium-short']['wavemax'] = None + self.Info['4']['medium-short']['softrad'] = None + self.Info['4']['medium-short']['scalerad'] = None + self.Info['4']['medium-short']['msm_power'] = None + self.Info['4']['medium-short']['rp_wave_cuttoff'] = None + self.Info['4']['medium-short']['rp_a_low'] = None + self.Info['4']['medium-short']['rp_b_low'] = None + self.Info['4']['medium-short']['rp_c_low'] = None + self.Info['4']['medium-short']['rp_a_high'] = None + self.Info['4']['medium-short']['rp_b_high'] = None + self.Info['4']['medium-short']['rp_c_high'] = None + self.Info['4']['medium-short']['rp_a_ave'] = None + self.Info['4']['medium-short']['rp_b_ave'] = None + self.Info['4']['medium-short']['rp_c_ave'] = None + + self.Info['1']['medium-long'] = {} + self.Info['1']['medium-long']['ascale'] = None + self.Info['1']['medium-long']['bscale'] = None + self.Info['1']['medium-long']['wscale'] = None + self.Info['1']['medium-long']['sroi'] = None + self.Info['1']['medium-long']['wroi'] = None + self.Info['1']['medium-long']['wavemin'] = None + self.Info['1']['medium-long']['wavemax'] = None + self.Info['1']['medium-long']['softrad'] = None + self.Info['1']['medium-long']['scalerad'] = None + self.Info['1']['medium-long']['msm_power'] = None + self.Info['1']['medium-long']['rp_wave_cuttoff'] = None + self.Info['1']['medium-long']['rp_a_low'] = None + self.Info['1']['medium-long']['rp_b_low'] = None + self.Info['1']['medium-long']['rp_c_low'] = None + self.Info['1']['medium-long']['rp_a_high'] = None + self.Info['1']['medium-long']['rp_b_high'] = None + self.Info['1']['medium-long']['rp_c_high'] = None + self.Info['1']['medium-long']['rp_a_ave'] = None + self.Info['1']['medium-long']['rp_b_ave'] = None + self.Info['1']['medium-long']['rp_c_ave'] = None + + self.Info['2']['medium-long'] = {} + self.Info['2']['medium-long']['ascale'] = None + self.Info['2']['medium-long']['bscale'] = None + self.Info['2']['medium-long']['wscale'] = None + self.Info['2']['medium-long']['sroi'] = None + self.Info['2']['medium-long']['wroi'] = None + self.Info['2']['medium-long']['wavemin'] = None + self.Info['2']['medium-long']['wavemax'] = None + self.Info['2']['medium-long']['softrad'] = None + self.Info['2']['medium-long']['scalerad'] = None + self.Info['2']['medium-long']['msm_power'] = None + self.Info['2']['medium-long']['rp_wave_cuttoff'] = None + self.Info['2']['medium-long']['rp_a_low'] = None + self.Info['2']['medium-long']['rp_b_low'] = None + self.Info['2']['medium-long']['rp_c_low'] = None + self.Info['2']['medium-long']['rp_a_high'] = None + self.Info['2']['medium-long']['rp_b_high'] = None + self.Info['2']['medium-long']['rp_c_high'] = None + self.Info['2']['medium-long']['rp_a_ave'] = None + self.Info['2']['medium-long']['rp_b_ave'] = None + self.Info['2']['medium-long']['rp_c_ave'] = None + + self.Info['3']['medium-long'] = {} + self.Info['3']['medium-long']['ascale'] = None + self.Info['3']['medium-long']['bscale'] = None + self.Info['3']['medium-long']['wscale'] = None + self.Info['3']['medium-long']['sroi'] = None + self.Info['3']['medium-long']['wroi'] = None + self.Info['3']['medium-long']['wavemin'] = None + self.Info['3']['medium-long']['wavemax'] = None + self.Info['3']['medium-long']['softrad'] = None + self.Info['3']['medium-long']['scalerad'] = None + self.Info['3']['medium-long']['msm_power'] = None + self.Info['3']['medium-long']['rp_wave_cuttoff'] = None + self.Info['3']['medium-long']['rp_a_low'] = None + self.Info['3']['medium-long']['rp_b_low'] = None + self.Info['3']['medium-long']['rp_c_low'] = None + self.Info['3']['medium-long']['rp_a_high'] = None + self.Info['3']['medium-long']['rp_b_high'] = None + self.Info['3']['medium-long']['rp_c_high'] = None + self.Info['3']['medium-long']['rp_a_ave'] = None + self.Info['3']['medium-long']['rp_b_ave'] = None + self.Info['3']['medium-long']['rp_c_ave'] = None + + self.Info['4']['medium-long'] = {} + self.Info['4']['medium-long']['ascale'] = None + self.Info['4']['medium-long']['bscale'] = None + self.Info['4']['medium-long']['wscale'] = None + self.Info['4']['medium-long']['sroi'] = None + self.Info['4']['medium-long']['wroi'] = None + self.Info['4']['medium-long']['wavemin'] = None + self.Info['4']['medium-long']['wavemax'] = None + self.Info['4']['medium-long']['softrad'] = None + self.Info['4']['medium-long']['scalerad'] = None + self.Info['4']['medium-long']['msm_power'] = None + self.Info['4']['medium-long']['rp_wave_cuttoff'] = None + self.Info['4']['medium-long']['rp_a_low'] = None + self.Info['4']['medium-long']['rp_b_low'] = None + self.Info['4']['medium-long']['rp_c_low'] = None + self.Info['4']['medium-long']['rp_a_high'] = None + self.Info['4']['medium-long']['rp_b_high'] = None + self.Info['4']['medium-long']['rp_c_high'] = None + self.Info['4']['medium-long']['rp_a_ave'] = None + self.Info['4']['medium-long']['rp_b_ave'] = None + self.Info['4']['medium-long']['rp_c_ave'] = None + + self.Info['1']['long-short'] = {} + self.Info['1']['long-short']['ascale'] = None + self.Info['1']['long-short']['bscale'] = None + self.Info['1']['long-short']['wscale'] = None + self.Info['1']['long-short']['sroi'] = None + self.Info['1']['long-short']['wroi'] = None + self.Info['1']['long-short']['wavemin'] = None + self.Info['1']['long-short']['wavemax'] = None + self.Info['1']['long-short']['softrad'] = None + self.Info['1']['long-short']['scalerad'] = None + self.Info['1']['long-short']['msm_power'] = None + self.Info['1']['long-short']['rp_wave_cuttoff'] = None + self.Info['1']['long-short']['rp_a_low'] = None + self.Info['1']['long-short']['rp_b_low'] = None + self.Info['1']['long-short']['rp_c_low'] = None + self.Info['1']['long-short']['rp_a_high'] = None + self.Info['1']['long-short']['rp_b_high'] = None + self.Info['1']['long-short']['rp_c_high'] = None + self.Info['1']['long-short']['rp_a_ave'] = None + self.Info['1']['long-short']['rp_b_ave'] = None + self.Info['1']['long-short']['rp_c_ave'] = None + + self.Info['2']['long-short'] = {} + self.Info['2']['long-short']['ascale'] = None + self.Info['2']['long-short']['bscale'] = None + self.Info['2']['long-short']['wscale'] = None + self.Info['2']['long-short']['sroi'] = None + self.Info['2']['long-short']['wroi'] = None + self.Info['2']['long-short']['wavemin'] = None + self.Info['2']['long-short']['wavemax'] = None + self.Info['2']['long-short']['softrad'] = None + self.Info['2']['long-short']['scalerad'] = None + self.Info['2']['long-short']['msm_power'] = None + self.Info['2']['long-short']['rp_wave_cuttoff'] = None + self.Info['2']['long-short']['rp_a_low'] = None + self.Info['2']['long-short']['rp_b_low'] = None + self.Info['2']['long-short']['rp_c_low'] = None + self.Info['2']['long-short']['rp_a_high'] = None + self.Info['2']['long-short']['rp_b_high'] = None + self.Info['2']['long-short']['rp_c_high'] = None + self.Info['2']['long-short']['rp_a_ave'] = None + self.Info['2']['long-short']['rp_b_ave'] = None + self.Info['2']['long-short']['rp_c_ave'] = None + + self.Info['3']['long-short'] = {} + self.Info['3']['long-short']['ascale'] = None + self.Info['3']['long-short']['bscale'] = None + self.Info['3']['long-short']['wscale'] = None + self.Info['3']['long-short']['sroi'] = None + self.Info['3']['long-short']['wroi'] = None + self.Info['3']['long-short']['wavemin'] = None + self.Info['3']['long-short']['wavemax'] = None + self.Info['3']['long-short']['softrad'] = None + self.Info['3']['long-short']['scalerad'] = None + self.Info['3']['long-short']['msm_power'] = None + self.Info['3']['long-short']['rp_wave_cuttoff'] = None + self.Info['3']['long-short']['rp_a_low'] = None + self.Info['3']['long-short']['rp_b_low'] = None + self.Info['3']['long-short']['rp_c_low'] = None + self.Info['3']['long-short']['rp_a_high'] = None + self.Info['3']['long-short']['rp_b_high'] = None + self.Info['3']['long-short']['rp_c_high'] = None + self.Info['3']['long-short']['rp_a_ave'] = None + self.Info['3']['long-short']['rp_b_ave'] = None + self.Info['3']['long-short']['rp_c_ave'] = None + + self.Info['4']['long-short'] = {} + self.Info['4']['long-short']['ascale'] = None + self.Info['4']['long-short']['bscale'] = None + self.Info['4']['long-short']['wscale'] = None + self.Info['4']['long-short']['sroi'] = None + self.Info['4']['long-short']['wroi'] = None + self.Info['4']['long-short']['wavemin'] = None + self.Info['4']['long-short']['wavemax'] = None + self.Info['4']['long-short']['softrad'] = None + self.Info['4']['long-short']['scalerad'] = None + self.Info['4']['long-short']['msm_power'] = None + self.Info['4']['long-short']['rp_wave_cuttoff'] = None + self.Info['4']['long-short']['rp_a_low'] = None + self.Info['4']['long-short']['rp_b_low'] = None + self.Info['4']['long-short']['rp_c_low'] = None + self.Info['4']['long-short']['rp_a_high'] = None + self.Info['4']['long-short']['rp_b_high'] = None + self.Info['4']['long-short']['rp_c_high'] = None + self.Info['4']['long-short']['rp_a_ave'] = None + self.Info['4']['long-short']['rp_b_ave'] = None + self.Info['4']['long-short']['rp_c_ave'] = None + + self.Info['1']['long-medium'] = {} + self.Info['1']['long-medium']['ascale'] = None + self.Info['1']['long-medium']['bscale'] = None + self.Info['1']['long-medium']['wscale'] = None + self.Info['1']['long-medium']['sroi'] = None + self.Info['1']['long-medium']['wroi'] = None + self.Info['1']['long-medium']['wavemin'] = None + self.Info['1']['long-medium']['wavemax'] = None + self.Info['1']['long-medium']['softrad'] = None + self.Info['1']['long-medium']['scalerad'] = None + self.Info['1']['long-medium']['msm_power'] = None + self.Info['1']['long-medium']['rp_wave_cuttoff'] = None + self.Info['1']['long-medium']['rp_a_low'] = None + self.Info['1']['long-medium']['rp_b_low'] = None + self.Info['1']['long-medium']['rp_c_low'] = None + self.Info['1']['long-medium']['rp_a_high'] = None + self.Info['1']['long-medium']['rp_b_high'] = None + self.Info['1']['long-medium']['rp_c_high'] = None + self.Info['1']['long-medium']['rp_a_ave'] = None + self.Info['1']['long-medium']['rp_b_ave'] = None + self.Info['1']['long-medium']['rp_c_ave'] = None + + self.Info['2']['long-medium'] = {} + self.Info['2']['long-medium']['ascale'] = None + self.Info['2']['long-medium']['bscale'] = None + self.Info['2']['long-medium']['wscale'] = None + self.Info['2']['long-medium']['sroi'] = None + self.Info['2']['long-medium']['wroi'] = None + self.Info['2']['long-medium']['wavemin'] = None + self.Info['2']['long-medium']['wavemax'] = None + self.Info['2']['long-medium']['softrad'] = None + self.Info['2']['long-medium']['scalerad'] = None + self.Info['2']['long-medium']['msm_power'] = None + self.Info['2']['long-medium']['rp_wave_cuttoff'] = None + self.Info['2']['long-medium']['rp_a_low'] = None + self.Info['2']['long-medium']['rp_b_low'] = None + self.Info['2']['long-medium']['rp_c_low'] = None + self.Info['2']['long-medium']['rp_a_high'] = None + self.Info['2']['long-medium']['rp_b_high'] = None + self.Info['2']['long-medium']['rp_c_high'] = None + self.Info['2']['long-medium']['rp_a_ave'] = None + self.Info['2']['long-medium']['rp_b_ave'] = None + self.Info['2']['long-medium']['rp_c_ave'] = None + + self.Info['3']['long-medium'] = {} + self.Info['3']['long-medium']['ascale'] = None + self.Info['3']['long-medium']['bscale'] = None + self.Info['3']['long-medium']['wscale'] = None + self.Info['3']['long-medium']['sroi'] = None + self.Info['3']['long-medium']['wroi'] = None + self.Info['3']['long-medium']['wavemin'] = None + self.Info['3']['long-medium']['wavemax'] = None + self.Info['3']['long-medium']['softrad'] = None + self.Info['3']['long-medium']['scalerad'] = None + self.Info['3']['long-medium']['msm_power'] = None + self.Info['3']['long-medium']['rp_wave_cuttoff'] = None + self.Info['3']['long-medium']['rp_a_low'] = None + self.Info['3']['long-medium']['rp_b_low'] = None + self.Info['3']['long-medium']['rp_c_low'] = None + self.Info['3']['long-medium']['rp_a_high'] = None + self.Info['3']['long-medium']['rp_b_high'] = None + self.Info['3']['long-medium']['rp_c_high'] = None + self.Info['3']['long-medium']['rp_a_ave'] = None + self.Info['3']['long-medium']['rp_b_ave'] = None + self.Info['3']['long-medium']['rp_c_ave'] = None + + self.Info['4']['long-medium'] = {} + self.Info['4']['long-medium']['ascale'] = None + self.Info['4']['long-medium']['bscale'] = None + self.Info['4']['long-medium']['wscale'] = None + self.Info['4']['long-medium']['sroi'] = None + self.Info['4']['long-medium']['wroi'] = None + self.Info['4']['long-medium']['wavemin'] = None + self.Info['4']['long-medium']['wavemax'] = None + self.Info['4']['long-medium']['softrad'] = None + self.Info['4']['long-medium']['scalerad'] = None + self.Info['4']['long-medium']['msm_power'] = None + self.Info['4']['long-medium']['rp_wave_cuttoff'] = None + self.Info['4']['long-medium']['rp_a_low'] = None + self.Info['4']['long-medium']['rp_b_low'] = None + self.Info['4']['long-medium']['rp_c_low'] = None + self.Info['4']['long-medium']['rp_a_high'] = None + self.Info['4']['long-medium']['rp_b_high'] = None + self.Info['4']['long-medium']['rp_c_high'] = None + self.Info['4']['long-medium']['rp_a_ave'] = None + self.Info['4']['long-medium']['rp_b_ave'] = None + self.Info['4']['long-medium']['rp_c_ave'] = None + # #################################################################### # NIRSPEC Paramters self.Info['prism'] = {} diff --git a/jwst/datamodels/schemas/miri_ifucubepars.schema.yaml b/jwst/datamodels/schemas/miri_ifucubepars.schema.yaml index c544651e91..47c9a0c30c 100644 --- a/jwst/datamodels/schemas/miri_ifucubepars.schema.yaml +++ b/jwst/datamodels/schemas/miri_ifucubepars.schema.yaml @@ -14,7 +14,7 @@ allOf: - name: channel datatype: [ascii,3] - name: band - datatype: [ascii, 6] + datatype: [ascii, 12] - name: spaxelsize datatype: float32 - name: spectralstep @@ -30,7 +30,7 @@ allOf: - name: channel datatype: [ascii,3] - name: band - datatype: [ascii, 6] + datatype: [ascii, 12] - name: roispatial datatype: float32 - name: roispectral @@ -60,7 +60,7 @@ allOf: - name: channel datatype: [ascii,3] - name: band - datatype: [ascii, 6] + datatype: [ascii, 12] - name: roispatial datatype: float32 - name: roispectral From 336c40f4c30851588763e14dd11bbb0336103d80 Mon Sep 17 00:00:00 2001 From: "David R. Law" Date: Fri, 12 Feb 2021 16:09:42 -0500 Subject: [PATCH 2/2] Add PR number --- CHANGES.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index b67eb44a94..69f585eee2 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,7 +4,7 @@ cube_build ---------- -- Added support for cross-dichroic configurations +- Added support for cross-dichroic configurations [#5722] datamodels ----------