diff --git a/metis_l2_prep_vl_generic.pro b/metis_l2_prep_vl_generic.pro index 53a4d5399552435e9c9e32de158a229eabb900d0..ec4e83b34e590c32eb5a9caaeab3596659eae026 100644 --- a/metis_l2_prep_vl_generic.pro +++ b/metis_l2_prep_vl_generic.pro @@ -53,6 +53,12 @@ pro metis_l2_prep_vl_generic ; calibration block + file_name_fields = strsplit(header.filename, '_', /extract) + + ; error is the quadratic relative error + + error = 0. + case header.datatype of 0 : begin data = double(data) @@ -64,7 +70,7 @@ pro metis_l2_prep_vl_generic ; 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 @@ -75,17 +81,23 @@ pro metis_l2_prep_vl_generic ; 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 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 btype = 'VL fixed-polarization intensity' + descriptor = 'metis-vl-image' + polarimetric = 1 endif else begin btype = 'VL total brightness' + descriptor = 'metis-vl-tb' + polarimetric = 0 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 end @@ -93,6 +105,7 @@ pro metis_l2_prep_vl_generic 3 : begin ; calibration of temporal noise images btype = 'VL temporal standard deviation' + descriptor = file_name_fields[2] bunit = 'DN' history = !null end @@ -100,6 +113,7 @@ pro metis_l2_prep_vl_generic 5 : begin ; calibration of cr/sep log matrices btype = 'VL cosmic-ray matrix' + descriptor = file_name_fields[2] bunit = 'DN' history = !null end @@ -122,15 +136,14 @@ pro metis_l2_prep_vl_generic ; name of the fits file - file_name_fields = strsplit(header.filename, '_', /extract) - file_name = 'solo_L2_' + file_name_fields[2] + '_' + file_name_fields[3] + '_V' + version + '.fits' + file_name = 'solo_L2_' + descriptor + '_' + file_name_fields[3] + '_V' + version + '.fits' out_file_name = 'output/' + file_name ; adjust the primary header fxaddpar, primary_header, 'FILENAME', 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, 'CREATOR', 'metis_l2_prep_vl_generic.pro' fxaddpar, primary_header, 'VERS_SW', input.sw_version @@ -143,6 +156,8 @@ pro metis_l2_prep_vl_generic fxaddpar, primary_header, 'XPOSURE', header.xposure fxaddpar, primary_header, 'NSUMEXP', header.nsumexp + sxdelpar, primary_header, 'BLANK' + ; append wcs keywords wcs = metis_wcs(header, cal_pack, ref_detector = ref_detector) @@ -155,10 +170,6 @@ pro metis_l2_prep_vl_generic history = [history, 'Update WCS and solar ephemeris:', ' SKD version = ' + kernel_version] - ; delete useless keywords - - sxdelpar, primary_header, 'BLANK' - ; add the history keyword for k = 0, n_elements(history) - 1 do $ @@ -192,7 +203,7 @@ pro metis_l2_prep_vl_generic fxaddpar, extension_header, 'PCOUNT', 0, 'Parameter count' fxaddpar, extension_header, 'GCOUNT', 1, 'Group count' 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') fits_add_checksum, extension_header, intarr(header.naxis1, header.naxis2) mwrfits, error_matrix, out_file_name, extension_header, /no_comment, /silent