Skip to content
Snippets Groups Projects
Commit d87ada1a authored by Roberto Susino's avatar Roberto Susino
Browse files

Add management of errors in VL generic pipeline

parent 77bf37fa
Branches
Tags
No related merge requests found
...@@ -53,6 +53,12 @@ pro metis_l2_prep_vl_generic ...@@ -53,6 +53,12 @@ pro metis_l2_prep_vl_generic
; calibration block ; calibration block
file_name_fields = strsplit(header.filename, '_', /extract)
; error is the quadratic relative error
error = 0.
case header.datatype of case header.datatype of
0 : begin 0 : begin
data = double(data) data = double(data)
...@@ -64,7 +70,7 @@ pro metis_l2_prep_vl_generic ...@@ -64,7 +70,7 @@ pro metis_l2_prep_vl_generic
; header.nsumexp = header.ndit ; header.nsumexp = header.ndit
; ==================================== ; ====================================
data = metis_dark_vlda(data, header, cal_pack, history = history) data = metis_dark_vlda(data, header, cal_pack, error = error, quality_matrix = quality_matrix, history = history)
; ==================================== ; ====================================
; for data already subtracted of dark ; for data already subtracted of dark
...@@ -75,24 +81,31 @@ pro metis_l2_prep_vl_generic ...@@ -75,24 +81,31 @@ pro metis_l2_prep_vl_generic
; history = ['Dark correction: ', ' ' + file] ; history = ['Dark correction: ', ' ' + file]
; ==================================== ; ====================================
data = metis_flat_field(data, header, cal_pack, history = history)
data = metis_vignetting(data, header, cal_pack, history = history)
data = metis_rad_cal(data, header, cal_pack, history = history, /polarimetric)
if header.pol_id eq 0 then begin if header.pol_id eq 0 then begin
btype = 'VL fixed-polarization intensity' btype = 'VL fixed-polarization intensity'
descriptor = 'metis-vl-image'
polarimetric = 1
endif else if header.pol_id ge 1 and header.pol_id le 4 then begin endif else if header.pol_id ge 1 and header.pol_id le 4 then begin
btype = 'VL fixed-polarization intensity' btype = 'VL fixed-polarization intensity'
descriptor = 'metis-vl-image'
polarimetric = 1
endif else begin endif else begin
btype = 'VL total brightness' btype = 'VL total brightness'
descriptor = 'metis-vl-tb'
polarimetric = 0
endelse endelse
data = metis_flat_field(data, header, cal_pack, error = error, quality_matrix = quality_matrix, history = history)
data = metis_vignetting(data, header, cal_pack, error = error, quality_matrix = quality_matrix, history = history)
data = metis_rad_cal(data, header, cal_pack, polarimetric = polarimetric, error = error, quality_matrix = quality_matrix, history = history)
bunit = cal_pack.vl_channel.cal_units bunit = cal_pack.vl_channel.cal_units
end end
3 : begin 3 : begin
; calibration of temporal noise images ; calibration of temporal noise images
btype = 'VL temporal standard deviation' btype = 'VL temporal standard deviation'
descriptor = file_name_fields[2]
bunit = 'DN' bunit = 'DN'
history = !null history = !null
end end
...@@ -100,6 +113,7 @@ pro metis_l2_prep_vl_generic ...@@ -100,6 +113,7 @@ pro metis_l2_prep_vl_generic
5 : begin 5 : begin
; calibration of cr/sep log matrices ; calibration of cr/sep log matrices
btype = 'VL cosmic-ray matrix' btype = 'VL cosmic-ray matrix'
descriptor = file_name_fields[2]
bunit = 'DN' bunit = 'DN'
history = !null history = !null
end end
...@@ -122,15 +136,14 @@ pro metis_l2_prep_vl_generic ...@@ -122,15 +136,14 @@ pro metis_l2_prep_vl_generic
; name of the fits file ; name of the fits file
file_name_fields = strsplit(header.filename, '_', /extract) file_name = 'solo_L2_' + descriptor + '_' + file_name_fields[3] + '_V' + version + '.fits'
file_name = 'solo_L2_' + file_name_fields[2] + '_' + file_name_fields[3] + '_V' + version + '.fits'
out_file_name = 'output/' + file_name out_file_name = 'output/' + file_name
; adjust the primary header ; adjust the primary header
fxaddpar, primary_header, 'FILENAME', file_name fxaddpar, primary_header, 'FILENAME', file_name
fxaddpar, primary_header, 'PARENT', file_basename(input.file_name) fxaddpar, primary_header, 'PARENT', file_basename(input.file_name)
fxaddpar, primary_header, 'LEVEL', 'L2-draft' fxaddpar, primary_header, 'LEVEL', 'L2'
fxaddpar, primary_header, 'ORIGIN', '' fxaddpar, primary_header, 'ORIGIN', ''
fxaddpar, primary_header, 'CREATOR', 'metis_l2_prep_vl_generic.pro' fxaddpar, primary_header, 'CREATOR', 'metis_l2_prep_vl_generic.pro'
fxaddpar, primary_header, 'VERS_SW', input.sw_version fxaddpar, primary_header, 'VERS_SW', input.sw_version
...@@ -143,6 +156,8 @@ pro metis_l2_prep_vl_generic ...@@ -143,6 +156,8 @@ pro metis_l2_prep_vl_generic
fxaddpar, primary_header, 'XPOSURE', header.xposure fxaddpar, primary_header, 'XPOSURE', header.xposure
fxaddpar, primary_header, 'NSUMEXP', header.nsumexp fxaddpar, primary_header, 'NSUMEXP', header.nsumexp
sxdelpar, primary_header, 'BLANK'
; append wcs keywords ; append wcs keywords
wcs = metis_wcs(header, cal_pack, ref_detector = ref_detector) wcs = metis_wcs(header, cal_pack, ref_detector = ref_detector)
...@@ -155,10 +170,6 @@ pro metis_l2_prep_vl_generic ...@@ -155,10 +170,6 @@ pro metis_l2_prep_vl_generic
history = [history, 'Update WCS and solar ephemeris:', ' SKD version = ' + kernel_version] history = [history, 'Update WCS and solar ephemeris:', ' SKD version = ' + kernel_version]
; delete useless keywords
sxdelpar, primary_header, 'BLANK'
; add the history keyword ; add the history keyword
for k = 0, n_elements(history) - 1 do $ for k = 0, n_elements(history) - 1 do $
...@@ -192,7 +203,7 @@ pro metis_l2_prep_vl_generic ...@@ -192,7 +203,7 @@ pro metis_l2_prep_vl_generic
fxaddpar, extension_header, 'PCOUNT', 0, 'Parameter count' fxaddpar, extension_header, 'PCOUNT', 0, 'Parameter count'
fxaddpar, extension_header, 'GCOUNT', 1, 'Group count' fxaddpar, extension_header, 'GCOUNT', 1, 'Group count'
fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'Extension name' fxaddpar, extension_header, 'EXTNAME', 'Error matrix', 'Extension name'
error_matrix = intarr(header.naxis1, header.naxis2) error_matrix = data * sqrt(error)
if not ref_detector then data = metis_rectify(error_matrix, 'VL') if not ref_detector then data = metis_rectify(error_matrix, 'VL')
fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2) fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2)
mwrfits, error_matrix, out_file_name, extension_header, /no_comment, /silent mwrfits, error_matrix, out_file_name, extension_header, /no_comment, /silent
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment