Commit 335f72d5 authored by Roberto Susino's avatar Roberto Susino
Browse files

Minor improvements and optimizations

parent a7656a07
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
pro fix_fits_header, filename
    fits_info, filename, n_ext = n_ext, /silent
    for ext = 0, n_ext do begin
        data = readfits(filename, header, exten_no = ext, /silent)
        data = readfits(filename, header, exten_no = ext, /noscale, /silent)
        for k = 0, n_elements(header) - 1 do begin
            while header[k].matches('\/  +') do begin
                header[k] = header[k].replace('/  ', '/ ')
            endwhile
        endfor
        fits_add_checksum, header, data
        modfits, filename, 0, header, exten_no = ext
    endfor
end
 No newline at end of file
+19 −8
Original line number Diff line number Diff line
@@ -121,6 +121,14 @@ pro metis_l2_prep_uv
        end
    endcase

    ; make rotations and compute absolute error

    if not ref_detector then data = metis_rectify(data, 'UV')
    if not ref_detector then quality_matrix = metis_rectify(quality_matrix, 'UV')
    if not ref_detector then error = metis_rectify(error, 'UV')

    error_matrix = data * sqrt(error)

    ; definitions for the primary header
    ; version of the fits file

@@ -145,6 +153,8 @@ pro metis_l2_prep_uv
    fxaddpar, primary_header, 'VERS_SW', input.sw_version
    fxaddpar, primary_header, 'VERS_CAL', cal_pack.version
    fxaddpar, primary_header, 'VERSION', version
    fxaddpar, primary_header, 'OBJECT', 'Sun'
    fxaddpar, primary_header, 'TARGET', 'Corona'
    fxaddpar, primary_header, 'BTYPE', btype
    fxaddpar, primary_header, 'BUNIT', bunit
    fxaddpar, primary_header, 'DATAMIN', min(data, /nan)
@@ -197,20 +207,19 @@ pro metis_l2_prep_uv
        fxaddpar, primary_header, 'HISTORY', history[k]
    fxaddpar, primary_header, 'HISTORY', 'L2 FITS file created on ' + date

    if not ref_detector then data = metis_rectify(data, 'UV')
    ; write the fits file

    fits_add_checksum, primary_header, float(data)
    mwrfits, float(data), out_file_name, primary_header, /no_comment, /create, /silent

    journal, 'Fits file created:'
    journal, '  file name = ' + file_basename(out_file_name)

    ; add the extension with the quality matrix
    ; quality matrix

    base_header = primary_header
    sxdelpar, base_header, 'SIMPLE'
    sxdelpar, base_header, 'EXTEND'
    sxdelpar, base_header, 'DATASUM'
    sxdelpar, base_header, 'CHECKSUM'
    sxdelpar, base_header, 'COMMENT'
    sxdelpar, base_header, 'HISTORY'

@@ -227,16 +236,16 @@ pro metis_l2_prep_uv
    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')

    ; add the extension to the fits file

    fits_add_checksum, extension_header, float(quality_matrix)
    mwrfits, float(quality_matrix), out_file_name, extension_header, /no_comment, /silent

    journal, 'Quality-matrix extension correctly added.'

    ; add the extension with the error matrix
    ; error matrix

    if not ref_detector then error = metis_rectify(error, 'UV')
    error_matrix = data * sqrt(error)
    extension_header = base_header
    fxaddpar, extension_header, 'XTENSION', 'IMAGE', 'image extension', before = 'BITPIX'
    fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN'
@@ -246,6 +255,8 @@ pro metis_l2_prep_uv
    fxaddpar, extension_header, 'DATAMIN', min(error_matrix, /nan)
    fxaddpar, extension_header, 'DATAMAX', max(error_matrix, /nan)

    ; add the extension to the fits file

    fits_add_checksum, extension_header, float(error_matrix)
    mwrfits, float(error_matrix), out_file_name, extension_header, /no_comment, /silent

+19 −9
Original line number Diff line number Diff line
@@ -137,6 +137,14 @@ pro metis_l2_prep_vl_generic
        end
    endcase

    ; make rotations and compute absolute error

    if not ref_detector then data = metis_rectify(data, 'VL')
    if not ref_detector then quality_matrix = metis_rectify(quality_matrix, 'VL')
    if not ref_detector then error = metis_rectify(error, 'VL')

    error_matrix = data * sqrt(error)

    ; definitions for the primary header
    ; version of the fits file

@@ -160,6 +168,8 @@ pro metis_l2_prep_vl_generic
    fxaddpar, primary_header, 'VERS_SW', input.sw_version
    fxaddpar, primary_header, 'VERS_CAL', cal_pack.version
    fxaddpar, primary_header, 'VERSION', version
    fxaddpar, primary_header, 'OBJECT', 'Sun'
    fxaddpar, primary_header, 'TARGET', 'Corona'
    fxaddpar, primary_header, 'BTYPE', btype
    fxaddpar, primary_header, 'BUNIT', bunit
    fxaddpar, primary_header, 'DATAMIN', min(data, /nan)
@@ -232,22 +242,19 @@ pro metis_l2_prep_vl_generic
        fxaddpar, primary_header, 'HISTORY', history[k]
    fxaddpar, primary_header, 'HISTORY', 'L2 FITS file created on ' + date

    ; add checksum and datasum to the fits header
    ; write the fits file

    if not ref_detector then data = metis_rectify(data, 'VL')
    fits_add_checksum, primary_header, float(data)
    mwrfits, float(data), out_file_name, primary_header, /no_comment, /create, /silent

    journal, 'Fits file created:'
    journal, '  file name = ' + file_basename(out_file_name)

    ; add the extension with the quality matrix
    ; quality matrix

    base_header = primary_header
    sxdelpar, base_header, 'SIMPLE'
    sxdelpar, base_header, 'EXTEND'
    sxdelpar, base_header, 'DATASUM'
    sxdelpar, base_header, 'CHECKSUM'
    sxdelpar, base_header, 'COMMENT'
    sxdelpar, base_header, 'HISTORY'

@@ -264,16 +271,16 @@ pro metis_l2_prep_vl_generic
    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')

    ; add the extension to the fits file

    fits_add_checksum, extension_header, float(quality_matrix)
    mwrfits, float(quality_matrix), out_file_name, extension_header, /no_comment, /silent

    journal, 'Quality-matrix extension correctly added.'

    ; add the extension with the error matrix
    ; error matrix

    if not ref_detector then error = metis_rectify(error, 'VL')
    error_matrix = data * sqrt(error)
    extension_header = base_header
    fxaddpar, extension_header, 'XTENSION', 'IMAGE', 'image extension', before = 'BITPIX'
    fxaddpar, extension_header, 'PCOUNT', 0, 'parameter count', before = 'LONGSTRN'
@@ -282,6 +289,9 @@ pro metis_l2_prep_vl_generic
    fxaddpar, extension_header, 'BTYPE', 'Absolute error'
    fxaddpar, extension_header, 'DATAMIN', min(error_matrix, /nan)
    fxaddpar, extension_header, 'DATAMAX', max(error_matrix, /nan)

    ; add the extension to the fits file

    fits_add_checksum, extension_header, float(error_matrix)
    mwrfits, float(error_matrix), out_file_name, extension_header, /no_comment, /silent

+129 −79

File changed.

Preview size limit exceeded, changes collapsed.