Download presentation
Presentation is loading. Please wait.
1
Calibration Pipeline
2
Osiris Data Flow - Overview
RTU Osiris MMB/IM Osiris Packetizer S/C SSMM S/C 1355 VC0 + VC1 ESA Osiris GSEOS TM Decoder + Level 0 TMI generator ESOC SCOS 2000 archive DDS I/F TMI Level 0 to PDS level 1 converter (tmi2pds.exe) Level 1 to Level 2 converter (IDL Based) Level 2 to Level 3 converter (IDL Based) Science Level 1 Archive Level 2 Archive Level 3 Archive
3
Calibration Pipeline Purpose:
To perform the Level 1 to Level 2 calibration (From DN To Wm-2sr-1nm-1) To perform the Level 2 to Level 3 calibration (Geometric distortion) Constraints: Must work with PDS images Must produce legal PDS labels Must maintain strict revision control (Both on source level, data file level and PDS label level) Must be open source (To be archived with the PDS) Must correctly deal with HW and SW binning
4
Pipeline Elements? Level 1 -> 2 Bad pixel Replacement Hviid / Kramm
Coherent noise removal Kramm Low/High ADC offset removal Cosmics removal ? Ghost removal Straylight Pinholes PSF Deconvolution Shutter motion correction Hviid / ? Bias Subtraction Knollenberg / Kramm Readout noise correction Dark current correction Flatfielding Thomas / Küppers DN to Wm-2sr-1nm-1 (as function of T and pixel coord) Level 2 -> 3 Geometric distortion correction
5
Pipeline I/F #1 Datafile naming convention: PDS Labels:
<camera>_<unit>_<file id>_V<version>_<creationdate>.<ext> Example: NAC_FM_FLAT-FFPVIS-ORANGE_V1_ img PDS Labels: Each processing step must write a processing history entry to the PDS header (using p_approc). This entry must include name of function, version of function and a list of the data files used during the processing. Each processing step must set a processing boolean flag in the header indicating that the processing step has been performed.
6
Pipeline I/F #2 IDL I/F: Pipeline main entry points: Subroutine I/F:
result = osiris_level1_to_level2(header_in, image_in, header_out, image_out) result = osiris_level2_to_level3(header_in, image_in, header_out, image_out) Subroutine I/F: result = osiris_calibrate_<process name>(header, image, _EXTRA=_EXTRA) Example: result = osiris_calibrate_badpixels(header, image, _EXTRA=_EXTRA) Return value as a boolean TRUE=success FALSE=error
7
Example FUNCTION osiris_calibrate_badpixels, header, image, VERBOSE=VERBOSE,_EXTRA=_EXTRA VERSION = '0.1' if keyword_set(VERBOSE) then print, 'osiris_calibrate_badpixels running' ; Verify the the correction has not already been performed flag = p_value(header, 'SR_PROCESSING_FLAGS.BAD_PIXEL_REPLACEMENT_FLAG') if flag eq 'TRUE' then begin if keyword_set(VERBOSE) then print, 'osiris_calibrate_badpixels skipped - Already performed' return, 1 endif ; do the calibration print, '******* Bad pixel replacement implementation missing' ; Change the processing flag p_setvalue, header, 'SR_PROCESSING_FLAGS.BAD_PIXEL_REPLACEMENT_FLAG', 'TRUE', /LABEL, /NO_QUOTES p_approc,header,header,'osiris_calibrate_badpixels','V'+VERSION, 'Using bad pixel table: NAC_FM_BADPIXEL_V1_ dat' ; finish if keyword_set(VERBOSE) then print, 'osiris_calibrate_badpixels - Done' END
8
PDS Label Example LABEL_REVISION_NOTE = "V3.0 June 8 2004 SFH"
/* PROCESSING HISTORY */ /* PH: Tue Oct 26 12:57: UTC hviid V0.1 - osiris_calibrate_badpixels - Using bad pixel table: NAC_FM_BADPIXEL_V1_ dat */ /* PH: Tue Oct 26 12:57: UTC hviid V0.1 - osiris_calibrate_shutter_motion */ /* PH: Tue Oct 26 12:57: UTC hviid V0.1 - osiris_calibrate_absolute - Using datafile: NAC_FM_ABSCAL_V1_ img */ /* PH: Tue Oct 26 12:57: UTC hviid V0.1 - osiris_level1_to_level2 */ /* FILE CHARACTERISTICS */ RECORD_TYPE = FIXED_LENGTH RECORD_BYTES = 512 < --- Snip --- > /* PROCESSING FLAGS */ GROUP = SR_PROCESSING_FLAGS ROSETTA:READOUT_CORRECTION_FLAG = TRUE BAD_PIXEL_REPLACEMENT_FLAG = TRUE DARK_CURRENT_CORRECTION_FLAG = FALSE SHUTTER_CORRECTION_FLAG = FALSE FLATFIELD_CORRECTION_FLAG = FALSE ROSETTA:GEOMETRY_CORRECTION_FLAG = FALSE ROSETTA:DISTORSION_CORRECTION_FLAG = FALSE ROSETTA:READOUT_NOISE_CORRECTION_FLAG = FALSE ROSETTA:ABSOLUTE_CALIBRATION_FLAG = FALSE ROSETTA:ADC_CORRECTION_FLAG = TRUE SHUTTER_CORRECTION_FLAG = TRUE ROSETTA:READOUT_NOISE_CORRECTION_FLAG = TRUE FLATFIELD_CORRECTION_FLAG = TRUE ROSETTA:ABSOLUTE_CALIBRATION_FLAG = TRUE END_GROUP = SR_PROCESSING_FLAGS
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.