Commit e072616a authored by Roberto Susino's avatar Roberto Susino
Browse files

Fix headers in FITS extensions

parent 7a4420be
Loading
Loading
Loading
Loading
+26 −8
Original line number Diff line number Diff line
@@ -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
+26 −8
Original line number Diff line number Diff line
@@ -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
+114 −44
Original line number Diff line number Diff line
@@ -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