diff --git a/metis_l2_prep_uv.pro b/metis_l2_prep_uv.pro index 9703fe205bcfcfdab9a6a5fbc839703ebca04823..b5bbe30b3aa6ad60cf88bfc45f38762503b60c72 100644 --- a/metis_l2_prep_uv.pro +++ b/metis_l2_prep_uv.pro @@ -189,10 +189,25 @@ pro metis_l2_prep_uv ; add the extension with the quality matrix - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'extension name' + base_header = primary_header + sxdelpar, base_header, 'EXTEND' + sxdelpar, base_header, 'DATASUM' + sxdelpar, base_header, 'CHECKSUM' + sxdelpar, base_header, 'COMMENT' + sxdelpar, base_header, 'HISTORY' + + extension_header = base_header + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'extension name', before = 'LONGSTRN' + fxaddpar, extension_header, 'BTYPE', 'Pixel quality' + fxaddpar, extension_header, 'BUNIT', 'None' + fxaddpar, extension_header, 'DATAMIN', min(quality_matrix, /nan) + fxaddpar, extension_header, 'DATAMAX', max(quality_matrix, /nan) + fxaddpar, extension_header, 'COMMENT', 'Quality matrix values:' + fxaddpar, extension_header, 'COMMENT', ' NaN = saturated or null L0 pixel counts' + fxaddpar, extension_header, 'COMMENT', ' 0 = unreliable pixel value' + fxaddpar, extension_header, 'COMMENT', ' 1 = good pixel' if not ref_detector then quality_matrix = metis_rectify(quality_matrix, 'UV') fits_add_checksum, extension_header, quality_matrix mwrfits, float(quality_matrix), out_file_name, extension_header, /no_comment, /silent @@ -201,11 +216,14 @@ pro metis_l2_prep_uv ; add the extension with the error matrix - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'extension name' + extension_header = base_header error_matrix = data * sqrt(error) + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'extension name', before = 'LONGSTRN' + fxaddpar, extension_header, 'BTYPE', 'Absolute error' + fxaddpar, extension_header, 'DATAMIN', min(error_matrix, /nan) + fxaddpar, extension_header, 'DATAMAX', max(error_matrix, /nan) if not ref_detector then error_matrix = metis_rectify(error_matrix, 'UV') fits_add_checksum, extension_header, float(error_matrix) mwrfits, float(error_matrix), out_file_name, extension_header, /no_comment, /silent diff --git a/metis_l2_prep_vl_generic.pro b/metis_l2_prep_vl_generic.pro index fca9edb5a2ff3dadf04c656142cb741875ba2da8..cd6e83459a0e57291e8b7535e443d6bca916cb6a 100644 --- a/metis_l2_prep_vl_generic.pro +++ b/metis_l2_prep_vl_generic.pro @@ -230,10 +230,25 @@ pro metis_l2_prep_vl_generic ; add the extension with the quality matrix - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'extension name' + base_header = primary_header + sxdelpar, base_header, 'EXTEND' + sxdelpar, base_header, 'DATASUM' + sxdelpar, base_header, 'CHECKSUM' + sxdelpar, base_header, 'COMMENT' + sxdelpar, base_header, 'HISTORY' + + extension_header = base_header + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'extension name', before = 'LONGSTRN' + fxaddpar, extension_header, 'BTYPE', 'Pixel quality' + fxaddpar, extension_header, 'BUNIT', 'None' + fxaddpar, extension_header, 'DATAMIN', min(quality_matrix, /nan) + fxaddpar, extension_header, 'DATAMAX', max(quality_matrix, /nan) + fxaddpar, extension_header, 'COMMENT', 'Quality matrix values:' + fxaddpar, extension_header, 'COMMENT', ' NaN = saturated or null L0 pixel counts' + fxaddpar, extension_header, 'COMMENT', ' 0 = unreliable pixel value' + fxaddpar, extension_header, 'COMMENT', ' 1 = good pixel' if not ref_detector then quality_matrix = metis_rectify(quality_matrix, 'VL') fits_add_checksum, extension_header, quality_matrix mwrfits, float(quality_matrix), out_file_name, extension_header, /no_comment, /silent @@ -242,11 +257,14 @@ pro metis_l2_prep_vl_generic ; add the extension with the error matrix - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'extension name' + extension_header = base_header error_matrix = data * sqrt(error) + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'extension name', before = 'LONGSTRN' + fxaddpar, extension_header, 'BTYPE', 'Absolute error' + fxaddpar, extension_header, 'DATAMIN', min(error_matrix, /nan) + fxaddpar, extension_header, 'DATAMAX', max(error_matrix, /nan) if not ref_detector then data = metis_rectify(error_matrix, 'VL') fits_add_checksum, extension_header, float(error_matrix) mwrfits, float(error_matrix), out_file_name, extension_header, /no_comment, /silent diff --git a/metis_l2_prep_vl_polariz.pro b/metis_l2_prep_vl_polariz.pro index 9b6c791ce90e0eac23ae0aed0cc35125938dc20e..34f09d67bffa41070a8f6069c7e8c1119a983b7f 100755 --- a/metis_l2_prep_vl_polariz.pro +++ b/metis_l2_prep_vl_polariz.pro @@ -403,10 +403,25 @@ pro metis_l2_prep_vl_polariz ; add the extension with the quality matrix - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'extension name' + base_header = primary_pb_header + sxdelpar, base_header, 'EXTEND' + sxdelpar, base_header, 'DATASUM' + sxdelpar, base_header, 'CHECKSUM' + sxdelpar, base_header, 'COMMENT' + sxdelpar, base_header, 'HISTORY' + + extension_header = base_header + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'extension name', before = 'LONGSTRN' + fxaddpar, extension_header, 'BTYPE', 'Pixel quality' + fxaddpar, extension_header, 'BUNIT', 'None' + fxaddpar, extension_header, 'DATAMIN', min(quality_matrix, /nan) + fxaddpar, extension_header, 'DATAMAX', max(quality_matrix, /nan) + fxaddpar, extension_header, 'COMMENT', 'Quality matrix values:' + fxaddpar, extension_header, 'COMMENT', ' NaN = saturated or null L0 pixel counts' + fxaddpar, extension_header, 'COMMENT', ' 0 = unreliable pixel value' + fxaddpar, extension_header, 'COMMENT', ' 1 = good pixel' if not ref_detector then quality_matrix = metis_rectify(quality_matrix, 'VL') fits_add_checksum, extension_header, quality_matrix mwrfits, float(quality_matrix), out_file_name[0], extension_header, /no_comment, /silent @@ -415,11 +430,14 @@ pro metis_l2_prep_vl_polariz ; add the extension with the error matrix - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'extension name' + extension_header = base_header error_matrix = intarr(header.naxis1, header.naxis2) + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'extension name', before = 'LONGSTRN' + fxaddpar, extension_header, 'BTYPE', 'Absolute error' + fxaddpar, extension_header, 'DATAMIN', min(error_matrix, /nan) + fxaddpar, extension_header, 'DATAMAX', max(error_matrix, /nan) if not ref_detector then error_matrix = metis_rectify(error_matrix, 'VL') fits_add_checksum, extension_header, error_matrix mwrfits, float(error_matrix), out_file_name[0], extension_header, /no_comment, /silent @@ -457,10 +475,25 @@ pro metis_l2_prep_vl_polariz ; add the extension with the quality matrix - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'extension name' + base_header = primary_tb_header + sxdelpar, base_header, 'EXTEND' + sxdelpar, base_header, 'DATASUM' + sxdelpar, base_header, 'CHECKSUM' + sxdelpar, base_header, 'COMMENT' + sxdelpar, base_header, 'HISTORY' + + extension_header = base_header + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'extension name', before = 'LONGSTRN' + fxaddpar, extension_header, 'BTYPE', 'Pixel quality' + fxaddpar, extension_header, 'BUNIT', 'None' + fxaddpar, extension_header, 'DATAMIN', min(quality_matrix, /nan) + fxaddpar, extension_header, 'DATAMAX', max(quality_matrix, /nan) + fxaddpar, extension_header, 'COMMENT', 'Quality matrix values:' + fxaddpar, extension_header, 'COMMENT', ' NaN = saturated or null L0 pixel counts' + fxaddpar, extension_header, 'COMMENT', ' 0 = unreliable pixel value' + fxaddpar, extension_header, 'COMMENT', ' 1 = good pixel' if not ref_detector then quality_matrix = metis_rectify(quality_matrix, 'VL') fits_add_checksum, extension_header, quality_matrix mwrfits, float(quality_matrix), out_file_name[1], extension_header, /no_comment, /silent @@ -469,11 +502,14 @@ pro metis_l2_prep_vl_polariz ; add the extension with the error matrix - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'extension name' + extension_header = base_header error_matrix = intarr(header.naxis1, header.naxis2) + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'extension name', before = 'LONGSTRN' + fxaddpar, extension_header, 'BTYPE', 'Absolute error' + fxaddpar, extension_header, 'DATAMIN', min(error_matrix, /nan) + fxaddpar, extension_header, 'DATAMAX', max(error_matrix, /nan) if not ref_detector then error_matrix = metis_rectify(error_matrix, 'VL') fits_add_checksum, extension_header, error_matrix mwrfits, float(error_matrix), out_file_name[1], extension_header, /no_comment, /silent @@ -511,10 +547,25 @@ pro metis_l2_prep_vl_polariz ; add the extension with the quality matrix - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'extension name' + base_header = primary_polangle_header + sxdelpar, base_header, 'EXTEND' + sxdelpar, base_header, 'DATASUM' + sxdelpar, base_header, 'CHECKSUM' + sxdelpar, base_header, 'COMMENT' + sxdelpar, base_header, 'HISTORY' + + extension_header = base_header + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'extension name', before = 'LONGSTRN' + fxaddpar, extension_header, 'BTYPE', 'Pixel quality' + fxaddpar, extension_header, 'BUNIT', 'None' + fxaddpar, extension_header, 'DATAMIN', min(quality_matrix, /nan) + fxaddpar, extension_header, 'DATAMAX', max(quality_matrix, /nan) + fxaddpar, extension_header, 'COMMENT', 'Quality matrix values:' + fxaddpar, extension_header, 'COMMENT', ' NaN = saturated or null L0 pixel counts' + fxaddpar, extension_header, 'COMMENT', ' 0 = unreliable pixel value' + fxaddpar, extension_header, 'COMMENT', ' 1 = good pixel' if not ref_detector then quality_matrix = metis_rectify(quality_matrix, 'VL') fits_add_checksum, extension_header, quality_matrix mwrfits, float(quality_matrix), out_file_name[2], extension_header, /no_comment, /silent @@ -523,11 +574,14 @@ pro metis_l2_prep_vl_polariz ; add the extension with the error matrix - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'extension name' + extension_header = base_header error_matrix = intarr(header.naxis1, header.naxis2) + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'extension name', before = 'LONGSTRN' + fxaddpar, extension_header, 'BTYPE', 'Absolute error' + fxaddpar, extension_header, 'DATAMIN', min(error_matrix, /nan) + fxaddpar, extension_header, 'DATAMAX', max(error_matrix, /nan) if not ref_detector then error_matrix = metis_rectify(error_matrix, 'VL') fits_add_checksum, extension_header, error_matrix mwrfits, float(error_matrix), out_file_name[2], extension_header, /no_comment, /silent @@ -587,15 +641,15 @@ pro metis_l2_prep_vl_polariz ; add the extension with the stokes q image - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Stokes Q', 'extension name' + extension_header = primary_stokes_header + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Stokes Q', 'extension name', before = 'LONGSTRN' fxaddpar, extension_header, 'BTYPE', 'Stokes Q' fxaddpar, extension_header, 'BUNIT', cal_pack.vl_channel.cal_units fxaddpar, extension_header, 'DATAMIN', min(q, /nan) fxaddpar, extension_header, 'DATAMAX', max(q, /nan) - + sxdelpar, extension_header, 'EXTEND' if not ref_detector then q = metis_rectify(q, 'VL') fits_add_checksum, extension_header, q mwrfits, float(q), out_file_name[3], extension_header, /no_comment, /silent @@ -604,15 +658,15 @@ pro metis_l2_prep_vl_polariz ; add the extension with the stokes u image - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Stokes U', 'extension name' + extension_header = primary_stokes_header + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Stokes U', 'extension name', before = 'LONGSTRN' fxaddpar, extension_header, 'BTYPE', 'Stokes U' fxaddpar, extension_header, 'BUNIT', cal_pack.vl_channel.cal_units fxaddpar, extension_header, 'DATAMIN', min(u, /nan) fxaddpar, extension_header, 'DATAMAX', max(u, /nan) - + sxdelpar, extension_header, 'EXTEND' if not ref_detector then u = metis_rectify(u, 'VL') fits_add_checksum, extension_header, u mwrfits, float(u), out_file_name[3], extension_header, /no_comment, /silent @@ -621,11 +675,25 @@ pro metis_l2_prep_vl_polariz ; add the extension with the quality matrix - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'extension name' - + base_header = primary_stokes_header + sxdelpar, base_header, 'EXTEND' + sxdelpar, base_header, 'DATASUM' + sxdelpar, base_header, 'CHECKSUM' + sxdelpar, base_header, 'COMMENT' + sxdelpar, base_header, 'HISTORY' + + extension_header = base_header + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'extension name', before = 'LONGSTRN' + fxaddpar, extension_header, 'BTYPE', 'Pixel quality' + fxaddpar, extension_header, 'BUNIT', 'None' + fxaddpar, extension_header, 'DATAMIN', min(quality_matrix, /nan) + fxaddpar, extension_header, 'DATAMAX', max(quality_matrix, /nan) + fxaddpar, extension_header, 'COMMENT', 'Quality matrix values:' + fxaddpar, extension_header, 'COMMENT', ' NaN = saturated or null L0 pixel counts' + fxaddpar, extension_header, 'COMMENT', ' 0 = unreliable pixel value' + fxaddpar, extension_header, 'COMMENT', ' 1 = good pixel' if not ref_detector then quality_matrix = metis_rectify(quality_matrix, 'VL') fits_add_checksum, extension_header, quality_matrix mwrfits, float(quality_matrix), out_file_name[3], extension_header, /no_comment, /silent @@ -634,12 +702,14 @@ pro metis_l2_prep_vl_polariz ; add the extension with the error matrix - extension_header = !null - fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count' - fxaddpar, extension_header, 'GCOUNT', 1, 'group count' - fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'extension name' + extension_header = base_header error_matrix = intarr(header.naxis1, header.naxis2) - + fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN' + fxaddpar, extension_header, 'GCOUNT', 1, 'group count', before = 'LONGSTRN' + fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'extension name', before = 'LONGSTRN' + fxaddpar, extension_header, 'BTYPE', 'Absolute error' + fxaddpar, extension_header, 'DATAMIN', min(error_matrix, /nan) + fxaddpar, extension_header, 'DATAMAX', max(error_matrix, /nan) if not ref_detector then error_matrix = metis_rectify(error_matrix, 'VL') fits_add_checksum, extension_header, error_matrix mwrfits, float(error_matrix), out_file_name[3], extension_header, /no_comment, /silent