Commit 5efe1b38 authored by Roberto Susino's avatar Roberto Susino
Browse files

Add management of the quality matrix

parent 5789703e
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -28,6 +28,10 @@ pro metis_l2_prep_uv

	data = mrdfits(input.file_name, 0, primary_header, /silent)

	; read the quality matrix

	quality_matrix = mrdfits(input.file_name, 'quality matrix', /silent)

	; convert the string header into an idl structure

	header = fits_hdr2struct(primary_header)
@@ -150,11 +154,15 @@ pro metis_l2_prep_uv
	mwrfits, data, out_file_name, primary_header, /no_comment, /create, /silent

	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'
	fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2)
	mwrfits, intarr(header.naxis1, header.naxis2), out_file_name, extension_header, /no_comment, /silent
	fits_add_checksum, extension_header, quality_matrix
	mwrfits, quality_matrix, out_file_name, extension_header, /no_comment, /silent

	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'
	fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2)
	mwrfits, intarr(header.naxis1, header.naxis2), out_file_name, extension_header, /no_comment, /silent
@@ -176,8 +184,7 @@ pro metis_l2_prep_uv
	; close the log

	journal
	;exit, status = 0
	return
	exit, status = 0

	error_handling:
	journal, 'Errors occurred while processing.'
+12 −5
Original line number Diff line number Diff line
@@ -28,6 +28,10 @@ pro metis_l2_prep_vl_generic

	data = mrdfits(input.file_name, 0, primary_header, /silent)

	; read the quality matrix

	quality_matrix = mrdfits(input.file_name, 'quality matrix', /silent)

	; convert the string header into an idl structure

	header = fits_hdr2struct(primary_header)
@@ -145,11 +149,15 @@ pro metis_l2_prep_vl_generic
	mwrfits, data, out_file_name, primary_header, /no_comment, /create, /silent

	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'
	fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2)
	mwrfits, intarr(header.naxis1, header.naxis2), out_file_name, extension_header, /no_comment, /silent
	fits_add_checksum, extension_header, quality_matrix
	mwrfits, quality_matrix, out_file_name, extension_header, /no_comment, /silent

	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'
	fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2)
	mwrfits, intarr(header.naxis1, header.naxis2), out_file_name, extension_header, /no_comment, /silent
@@ -171,11 +179,10 @@ pro metis_l2_prep_vl_generic
	; close the log

	journal
	;exit, status = 0
	return
	exit, status = 0

	error_handling:
	journal, 'Errors occurred while processing.', /continue
	journal
	; exit, status = 1
	exit, status = 1
end
+39 −10
Original line number Diff line number Diff line
@@ -38,11 +38,15 @@ pro metis_l2_prep_vl_polariz
	data = !null
	data_header = !null
	data_subdark = !null

	quality_matrix = 1.

	for k = 0, 3 do begin

		; read the input image

		image = mrdfits(input.file_name[k], 0, primary_header, /silent)

		header = fits_hdr2struct(primary_header)

		; ====================================
@@ -76,6 +80,10 @@ pro metis_l2_prep_vl_polariz
		data = [[[data]], [[image]]]
		data_header = [data_header, header]

		; read and update the quality matrix

		quality_matrix = quality_matrix * mrdfits(input.file_name[k], 'quality matrix', /silent)

		; apply dark correction to compute stokes i and total brightness

		tb_history = !null
@@ -294,11 +302,15 @@ pro metis_l2_prep_vl_polariz
	mwrfits, pb_image, out_file_name, primary_pb_header, /no_comment, /create, /silent

	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'
	fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2)
	mwrfits, intarr(header.naxis1, header.naxis2), out_file_name, extension_header, /no_comment, /silent
	fits_add_checksum, extension_header, quality_matrix
	mwrfits, quality_matrix, out_file_name, extension_header, /no_comment, /silent

	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'
	fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2)
	mwrfits, intarr(header.naxis1, header.naxis2), out_file_name, extension_header, /no_comment, /silent
@@ -310,7 +322,7 @@ pro metis_l2_prep_vl_polariz
	; name of the fits file

	file_name = 'solo_L2_metis-vl-tb_' + date_beg_string + '_V' + version + '.fits'
	out_file_name = [out_file_name, 'output/' + file_name]
	out_file_name = 'output/' + file_name

	fxaddpar, primary_tb_header, 'FILENAME', file_name
	fxaddpar, primary_tb_header, 'BTYPE', 'VL total brightness'
@@ -329,17 +341,21 @@ pro metis_l2_prep_vl_polariz

	fits_add_checksum, primary_tb_header, tb_image

	mwrfits, tb_image, out_file_name[1], primary_tb_header, /no_comment, /create, /silent
	mwrfits, tb_image, out_file_name, primary_tb_header, /no_comment, /create, /silent

	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'
	fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2)
	mwrfits, intarr(header.naxis1, header.naxis2), out_file_name[1], extension_header, /no_comment, /silent
	fits_add_checksum, extension_header, quality_matrix
	mwrfits, quality_matrix, out_file_name, extension_header, /no_comment, /silent

	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'
	fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2)
	mwrfits, intarr(header.naxis1, header.naxis2), out_file_name[1], extension_header, /no_comment, /silent
	mwrfits, intarr(header.naxis1, header.naxis2), out_file_name, extension_header, /no_comment, /silent

	; keywords specific for polarization-angle images

@@ -370,11 +386,15 @@ pro metis_l2_prep_vl_polariz
	mwrfits, pol_angle, out_file_name, primary_polangle_header, /no_comment, /create, /silent

	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'
	fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2)
	mwrfits, intarr(header.naxis1, header.naxis2), out_file_name, extension_header, /no_comment, /silent
	fits_add_checksum, extension_header, quality_matrix
	mwrfits, quality_matrix, out_file_name, extension_header, /no_comment, /silent

	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'
	fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2)
	mwrfits, intarr(header.naxis1, header.naxis2), out_file_name, extension_header, /no_comment, /silent
@@ -427,6 +447,8 @@ pro metis_l2_prep_vl_polariz
	mwrfits, i, out_file_name, primary_stokes_header, /no_comment, /create, /silent

	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'
	fxaddpar, extension_header, 'BTYPE', 'Stokes Q'
	fxaddpar, extension_header, 'BUNIT', cal_pack.vl_channel.cal_units
@@ -436,6 +458,8 @@ pro metis_l2_prep_vl_polariz
	mwrfits, q, out_file_name, extension_header, /no_comment, /silent

	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'
	fxaddpar, extension_header, 'BTYPE', 'Stokes U'
	fxaddpar, extension_header, 'BUNIT', cal_pack.vl_channel.cal_units
@@ -445,8 +469,13 @@ pro metis_l2_prep_vl_polariz
	mwrfits, u, out_file_name, extension_header, /no_comment, /silent

	extension_header = !null
	fxaddpar, extension_header, 'PCOUNT', 0, 'Parameter count'
	fxaddpar, extension_header, 'GCOUNT', 1, 'Group count'
	fxaddpar, extension_header, 'PCOUNT', 0, 'Parameter count'
	fxaddpar, extension_header, 'GCOUNT', 1, 'Group count'
	fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'Extension name'
	mwrfits, intarr(header.naxis1, header.naxis2), out_file_name, extension_header, /no_comment, /silent
	fits_add_checksum, extension_header, quality_matrix
	mwrfits, quality_matrix, out_file_name, extension_header, /no_comment, /silent

	extension_header = !null
	fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'Extension name'