Commit 3573428d authored by Roberto Susino's avatar Roberto Susino
Browse files

Code optimizations in VL polarimetric pipeline

parent d87ada1a
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -118,9 +118,9 @@ pro metis_l2_prep_vl_polariz
		; ====================================
		; for data already subtracted of dark
		; file = file_basename(header.parent, '.fits') + '_subdark.fits'
		; image_subdark = mrdfits('input/VL_subdark/' + file, 0, /silent)
		; image_subdark = rebin(image_subdark, header.naxis1, header.naxis2)
		; image_subdark = image_subdark * header.nbin * header.ndit
		; image_subdark = mrdfits('input/subdark/' + file, 0, /silent)
		; image_subdark = rebin(image_subdark, header.naxis1, header.naxis2) * header.nbin
		; image_subdark = image_subdark * header.ndit
		; tb_history = ['Dark correction: ', '  ' + file]
		; ====================================

@@ -249,6 +249,11 @@ pro metis_l2_prep_vl_polariz
	pb_image = metis_vignetting(pb_image, header, cal_pack, history = pb_history)
	pb_image = metis_rad_cal(pb_image, header, cal_pack, /polarimetric, history = pb_history)

	; ====================================
	; for simple radiometric calibration
	; cal_pack.vl_channel.cal_units = 'DN/s'
	; ====================================

	; compute the polarization angle from the stokes q and u

	pol_angle = 0.5D0 * atan(stokes[*, *, 2], stokes[*, *, 1]) * !radeg
@@ -267,7 +272,7 @@ pro metis_l2_prep_vl_polariz
	; adjust the primary header

	fxaddpar, primary_header, 'PARENT', strjoin(file_basename(input.file_name), ', ')
	fxaddpar, primary_header, 'LEVEL', 'L2-draft'
	fxaddpar, primary_header, 'LEVEL', 'L2'
	fxaddpar, primary_header, 'ORIGIN', ''
	fxaddpar, primary_header, 'CREATOR', 'metis_l2_prep_vl_polariz.pro'
	fxaddpar, primary_header, 'VERS_SW', input.sw_version
@@ -303,6 +308,7 @@ pro metis_l2_prep_vl_polariz

	; delete useless keywords

	sxdelpar, primary_header, 'BLANK'
	sxdelpar, primary_header, 'OBJ_CNT'
	sxdelpar, primary_header, 'POL_ID'
	sxdelpar, primary_header, 'SNRMIN'
@@ -342,7 +348,6 @@ pro metis_l2_prep_vl_polariz
	fxaddpar, primary_pb_header, 'BUNIT', cal_pack.vl_channel.cal_units
	fxaddpar, primary_pb_header, 'DATAMIN', min(pb_image, /nan)
	fxaddpar, primary_pb_header, 'DATAMAX', max(pb_image, /nan)
	sxdelpar, primary_pb_header, 'BLANK'

	; add the history keyword

@@ -398,7 +403,6 @@ pro metis_l2_prep_vl_polariz
	fxaddpar, primary_tb_header, 'BUNIT', cal_pack.vl_channel.cal_units
	fxaddpar, primary_tb_header, 'DATAMIN', min(tb_image, /nan)
	fxaddpar, primary_tb_header, 'DATAMAX', max(tb_image, /nan)
	sxdelpar, primary_tb_header, 'BLANK'

	; add the history keyword

@@ -454,7 +458,6 @@ pro metis_l2_prep_vl_polariz
	fxaddpar, primary_polangle_header, 'BUNIT', 'deg'
	fxaddpar, primary_polangle_header, 'DATAMIN', min(pol_angle, /nan)
	fxaddpar, primary_polangle_header, 'DATAMAX', max(pol_angle, /nan)
	sxdelpar, primary_polangle_header, 'BLANK'

	; add the history keyword

@@ -533,7 +536,6 @@ pro metis_l2_prep_vl_polariz
	fxaddpar, primary_stokes_header, 'BUNIT', cal_pack.vl_channel.cal_units
	fxaddpar, primary_stokes_header, 'DATAMIN', min(i, /nan)
	fxaddpar, primary_stokes_header, 'DATAMAX', max(i, /nan)
	sxdelpar, primary_stokes_header, 'BLANK'

	; add the history keyword

@@ -559,6 +561,7 @@ pro metis_l2_prep_vl_polariz
	fxaddpar, extension_header, 'BUNIT', cal_pack.vl_channel.cal_units
	fxaddpar, extension_header, 'DATAMIN', min(q, /nan)
	fxaddpar, extension_header, 'DATAMAX', max(q, /nan)

	if not ref_detector then q = metis_rectify(q, 'VL')
	fits_add_checksum, extension_header, q
	mwrfits, q, out_file_name[3], extension_header, /no_comment, /silent
@@ -575,6 +578,7 @@ pro metis_l2_prep_vl_polariz
	fxaddpar, extension_header, 'BUNIT', cal_pack.vl_channel.cal_units
	fxaddpar, extension_header, 'DATAMIN', min(u, /nan)
	fxaddpar, extension_header, 'DATAMAX', max(u, /nan)

	if not ref_detector then u = metis_rectify(u, 'VL')
	fits_add_checksum, extension_header, u
	mwrfits, u, out_file_name[3], extension_header, /no_comment, /silent
@@ -587,6 +591,7 @@ pro metis_l2_prep_vl_polariz
	fxaddpar, extension_header, 'PCOUNT', 0, 'Parameter count'
	fxaddpar, extension_header, 'GCOUNT', 1, 'Group count'
	fxaddpar, extension_header, 'EXTNAME', 'Quality matrix', 'Extension name'

	if not ref_detector then quality_matrix = metis_rectify(quality_matrix, 'VL')
	fits_add_checksum, extension_header, quality_matrix
	mwrfits, quality_matrix, out_file_name[3], extension_header, /no_comment, /silent
@@ -600,6 +605,7 @@ pro metis_l2_prep_vl_polariz
	fxaddpar, extension_header, 'GCOUNT', 1, 'Group count'
	fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'Extension name'
	error_matrix = intarr(header.naxis1, header.naxis2)
	
	if not ref_detector then error_matrix = metis_rectify(error_matrix, 'VL')
	fits_add_checksum, extension_header, error_matrix
	mwrfits, error_matrix, out_file_name[3], extension_header, /no_comment, /silent