for compare_to in [pysiaf.JWST_PRD_VERSION, 'outdated pre-delivery']: if compare_to == 'outdated pre-delivery': ref_siaf = pysiaf.Siaf(instrument, filename=os.path.join( pre_delivery_dir, 'NIRCam_SIAF_outdated.xml')) else: # compare new SIAF with PRD version ref_siaf = pysiaf.Siaf(instrument) tags = {'reference': compare_to, 'comparison': 'new pre-delivery'} compare.compare_siaf(pre_delivery_siaf, reference_siaf_input=ref_siaf, fractional_tolerance=1e-6, report_dir=pre_delivery_dir, tags=tags) compare.compare_transformation_roundtrip(pre_delivery_siaf, reference_siaf_input=ref_siaf, tags=tags, report_dir=pre_delivery_dir) compare.compare_inspection_figures(pre_delivery_siaf, reference_siaf_input=ref_siaf, report_dir=pre_delivery_dir, tags=tags, mark_ref=True) create_jira_plots = False
#sort SIAF entries in the order of the aperture definition file aperture_dict = OrderedDict(sorted(aperture_dict.items(), key=lambda t: aperture_name_list.index(t[0]))) #third pass to set DDCNames apertures, which depend on other apertures ddc_siaf_aperture_names = np.array([key for key in _ddc_apername_mapping.keys()]) ddc_v2 = np.array([aperture_dict[aperture_name].V2Ref for aperture_name in ddc_siaf_aperture_names]) ddc_v3 = np.array([aperture_dict[aperture_name].V3Ref for aperture_name in ddc_siaf_aperture_names]) for AperName in aperture_name_list: separation_tel_from_ddc_aperture = np.sqrt((aperture_dict[AperName].V2Ref - ddc_v2)**2 + (aperture_dict[AperName].V3Ref - ddc_v3)**2) aperture_dict[AperName].DDCName = _ddc_apername_mapping[ddc_siaf_aperture_names[np.argmin(separation_tel_from_ddc_aperture)]] aperture_collection = pysiaf.ApertureCollection(aperture_dict) # write the SIAFXML to disk [filename] = pysiaf.iando.write.write_jwst_siaf(aperture_collection, basepath=test_dir, file_format=['xml']) print('SIAFXML written in {}'.format(filename)) # compare to SIAFXML produced the old way # ref_siaf = pysiaf.Siaf(instrument, os.path.join(test_dir , '{}'.format('NIRISS_SIAF_2017-10-18.xml'))) ref_siaf = pysiaf.Siaf(instrument) new_siaf = pysiaf.Siaf(instrument, filename) # compare.compare_siaf(new_siaf, reference_siaf_input=ref_siaf, fractional_tolerance=1e-6, selected_aperture_name=['NIS_CEN', 'NIS_CEN_OSS']) compare.compare_siaf(new_siaf, reference_siaf_input=ref_siaf, fractional_tolerance=1e-6) # tools.compare_siaf_xml(ref_siaf, new_siaf) compare.compare_transformation_roundtrip(new_siaf, reference_siaf_input=ref_siaf)
for compare_to in [pysiaf.JWST_PRD_VERSION]: if compare_to == 'cdp7b': ref_siaf = pysiaf.Siaf(instrument, filename=os.path.join( pre_delivery_dir, 'NIRISS_SIAF_cdp7b.xml')) else: # compare new SIAF with PRD version ref_siaf = pysiaf.Siaf(instrument) tags = {'reference': compare_to, 'comparison': 'pre_delivery'} compare.compare_siaf(pre_delivery_siaf, reference_siaf_input=ref_siaf, fractional_tolerance=1e-6, report_dir=pre_delivery_dir, tags=tags) compare.compare_transformation_roundtrip( pre_delivery_siaf, reference_siaf_input=ref_siaf, tags=tags, report_dir=pre_delivery_dir, ) compare.compare_inspection_figures(pre_delivery_siaf, reference_siaf_input=ref_siaf, report_dir=pre_delivery_dir, tags=tags)
if not os.path.isdir(pre_delivery_dir): os.makedirs(pre_delivery_dir) # write the SIAF files to disk filenames = pysiaf.iando.write.write_jwst_siaf(aperture_collection, basepath=pre_delivery_dir, file_format=['xml', 'xlsx']) pre_delivery_siaf = pysiaf.Siaf(instrument, basepath=pre_delivery_dir) # compare new SIAF with PRD version ref_siaf = pysiaf.Siaf(instrument) compare.compare_siaf(pre_delivery_siaf, reference_siaf_input=ref_siaf, fractional_tolerance=1e-6, report_dir=pre_delivery_dir, tags={ 'reference': pysiaf.JWST_PRD_VERSION, 'comparison': 'pre_delivery' }) compare.compare_siaf(pre_delivery_siaf, reference_siaf_input=ref_siaf, fractional_tolerance=1e-6, tags={ 'reference': pysiaf.JWST_PRD_VERSION, 'comparison': 'pre_delivery' }) # run some tests on the new SIAF from pysiaf.tests import test_nirspec print(