--> Jorge, my comments are inserted into the text, prefixed with "-->" KPL/IK SPICAM Instrument kernel =========================================================================== This instrument kernel (I-kernel) contains Mars Express SPICAM LIGHT Ultraviolet wavelength sensor (SUV) and Near-Infrared wavelength sensor (SIR) channel optics, detector and FOV parameters. Version and Date --------------------------------------------------------------------------- Version 0.0 -- March xx, 2005 -- Jorge Diaz del Rio, RSSD/ESA Very Preliminary Version. Pending review and approval by SPICAM instrument team. References --------------------------------------------------------------------------- 1. ``Kernel Pool Required Reading'' 2. ``C-kernel Required Reading'' 3. ``SPICAM FUM'', SP-DES-032, Issue 004. April 17, 2002. 4. Mars Express Frames Definition Kernel (FK), latest version. 5. ``SPICAM LIGHT'', PID-B, PS-DES-011, August 19, 1999 Contact Information --------------------------------------------------------------------------- Jorge Diaz del Rio, RSSD/ESA, (31) 71-565-5175, jdiaz@rssd.esa.int Implementation Notes --------------------------------------------------------------------------- Applications that need SPICE I-kernel data must ``load'' the I-kernel file, normally during program initialization. Loading the kernel using the SPICELIB routine FURNSH causes the data items and their associated values present in the kernel to become associated with a data structure called the ``kernel pool''. The application program may then obtain the value(s) for any IK data item using the SPICELIB routines GDPOOL, GIPOOL, GCPOOL, and GETFOV if the file contains formal FOV definitions. See [1] for details. This file was created with and can be updated with a text editor or word processor. Naming Conventions --------------------------------------------------------------------------- All names referencing values in this I-kernel start with the characters `INS' followed by the NAIF MEX instrument ID code, contructed as the spacecraft ID number (-41) followed by the NAIF three digit ID number for SPICAM SIR (610), SOLAR-SIR (611), SUV (620) or SOLAR-SUV (621) channels. The UV channel can operate using a slit that has two different sections. Each of the sections has a MEX instrument ID code, constructed as the spacecraft ID number followed by the NAIF three digit ID number for the section: WIDE-SLIT section (622) and NARROW-SLIT section (623). These IDs are defined in [4] as follows (TBW): Instrument name ID -------------------- ------ MEX_SPICAM -41600 MEX_SPICAM_SIR -41610 MEX_SPICAM_SIR_SOLAR -41611 MEX_SPICAM_SUV -41620 MEX_SPICAM_SUV_SOLAR -41621 MEX_SPICAM_SUV_WSLIT -41622 MEX_SPICAM_SUV_NSLIT -41623 !!! TO DO: INCLUDE THESE TWO LAST PAIRS (SUV_WSLIT, SUV_NSLIT) IN THE MEX FK. --> Let me know if you want me to add these right away. --> Just for the reference: WSLIT is 20x20 and NSLIT is 2x268? It would be --> nice to have which-is-which clarified in this section. The remainder of the keyword is an underscore character followed by the unique name of the data item. For example, the focal length of the SPICAM SUV channel optics is specified by INS-41620_FOCAL_LENGTH The upper upper bound on the length of all keywords is 32 characters. If the same keyword is included in more than one file, or if the same keyword appears more than once within a single file, the last assignment supersedes any earlier assignments. Instrument Overview --------------------------------------------------------------------------- From [TBD]: "SPICAM description. To be copied from TBD source provided by the SPICAM team." Mounting Alignment --------------------------------------------------------------------------- Refer to the latest version of the Mars Express Frames Definition Kernel (FK) ([4]) for the SPICAM reference frame definitions and mounting alignment information. Detector Layout --------------------------------------------------------------------------- --> You could call it "FOV Layout" is it will illustrate FOVs. [TBW] --> ASCII diagrams showing full SUV FOV and slits "relationships" to --> SUV frame, SUV solar FOV to SUV_SOLAR frame, SIR FOV to SIR frame --> and SIR solar FOV to SIR_SOLAR frame would be very helpful :) UV Modes Description and Configuration --------------------------------------------------------------------------- [TBW] !!!THIS CHAPTER SHALL DESCRIBE THE CONFIGURATION OF EACH MODE IN TERMS OF BINNING, FOV.... Optical Parameters --------------------------------------------------------------------------- !!TO DO: DOCUMENTATION STATES THAT THE IFOV IS 40 ARCSECONDS, BUT IF WE USE 288 (3 DEGREES) THE IFOV IS 37.5 ARCSECONDS. WHICH IS THE CORRECT ONE? --> I'd guess that 40 is correct and "3 degrees" is simply a rounded --> number (from 3.2) The following SPICAM LIGHT SUV optical parameters are included in the data section below, taken from [3]: ----------------------------------------------------------------- parameter SUV SUV_SOLAR ----------------------------------------------------------------- Focal Length, mm 120.0 120 f/ratio ------- -------- IFOV, rad/pixel 0.000194 0.000194 Detector Shape rectangle circle Field of view (rad) Cross-track 0.0744674 (1) 0.00058177642 (2) Along-track 0.0558505 (1) 0.00058177642 (2) ----------------------------------------------------------------- --> so the slit is along track, i.e. parallel to +Y, right? --> technically, cross-track/along-track would not apply to SOLAR (1) The Cross-track field of view is computed as 384 x IFOV and the Along-track field of View is 288 x IFOV. These values correspond to the Unobstructed Field of View (operation without slit). --> makes sense !! CHECK IF THIS FoV IS CORRECT!!! CHECK IF IFOV IS 40 ARCSECS, AND IF THE FOV IS 4x3 DEG. ( FOV SHALL BE 0.069813170 x 0.052359878) (2) The Solar apperture uses the same optics as the other modes of the UV channel (See [5], page 10). The Solar apperture determines the FoV, and corresponds to a 3 pixels circular area on the CCD. !!WARNING: 3 PIXELS CORRESPOND TO: 2 ARCMIN FOV OF THE SUV_SOLAR APPERTURE (FROM [3]) DIVIDED BY 40 ARCSEC IFOV. --> THIS MAKES ME THINK THAT IFOV IS CORRECT AS 40 ARCSEC. --> makes sense The following SPICAM LIGHT SIR optical parameters are included in the data section below, taken from [3]: ----------------------------------------------------------------- parameter SIR SIR_SOLAR ----------------------------------------------------------------- Focal Length, mm ------- -------- f/ratio ------- -------- IFOV, rad/pixel 0.017453293 (3) 0.00058177642 (4) Detector Shape circle circle Field of view (rad) Cross-track 0.017453293 (3) 0.00058177642 (4) Along-track 0.017453293 (3) 0.00058177642 (4) ----------------------------------------------------------------- --> technically, cross-track/along-track would not apply to SOLAR !!TO DO: GET THE FOCAL LENGTH AND F/RATIO OF SIR/SIR_SOLAR DETECTORS. (3) The IFOV, and the Cross-track and Along-Track FoV are computed from the SIR FoV (1 degree, circular). SIR Channel detector is one single pixel. --> makes sense (4) The IFOV, and the Cross-track and Along-track FoV are computed from the SOLAR-SIR Channel FoV (2 arcminutes, circular). SOLAR-SIR channel detector is one single pixel. --> makes sense but is SIR_SOLAR FOV indeed exactly the same size as --> SUV_SOLAR FOV? Just a question. This data section also provides nominal data for each of the NADIR UV Channel Slit sections. In these, the FOV_ANGULAR_SIZE keyword's along- track and cross-track FoV dimension are computed using the slit size in pixels and the nominal IFOV of the UV Channel detector: Wide section is 20x20 pixels, narrow section is 2x268 pixels. !!!TO DO: CHECK THE SIZE OF THE WIDE AND NARROW SECTIONS OF THE UV CHANNEL SLIT. Angular size values in the keywords are given radians, with the cross-track size being the first value and the along-track size being the second value in each pair. \begindata INS-41410_FOCAL_LENGTH = ( '?' ) INS-41410_F/RATIO = ( '?' ) INS-41410_FOV_ANGULAR_SIZE = ( 0.017453293, 0.017453293 ) INS-41410_IFOV = ( 0.017453293 ) INS-41411_FOCAL_LENGTH = ( '?' ) INS-41411_F/RATIO = ( '?' ) INS-41411_FOV_ANGULAR_SIZE = ( 0.00058177642, 0.00058177642 ) INS-41411_IFOV = ( 0.00058177642 ) INS-41420_FOCAL_LENGTH = ( 120.0 ) INS-41420_F/RATIO = ( '?' ) INS-41420_FOV_ANGULAR_SIZE = ( 0.0744674 , 0.0558505 ) INS-41420_IFOV = ( 0.000194 ) INS-41421_FOCAL_LENGTH = ( 120.0 ) INS-41421_F/RATIO = ( '?' ) INS-41421_FOV_ANGULAR_SIZE = ( 0.00058177642, 0.00058177642 ) INS-41421_IFOV = ( 0.000194 ) INS-41422_FOCAL_LENGTH = ( 120.0 ) INS-41422_F/RATIO = ( '?' ) INS-41422_FOV_ANGULAR_SIZE = ( 0.0038785094, 0.0038785094 ) INS-41422_IFOV = ( 0.000194 ) INS-41423_FOCAL_LENGTH = ( 120.0 ) INS-41423_F/RATIO = ( '?' ) INS-41423_FOV_ANGULAR_SIZE = ( 0.00038785094, 0.051972027 ) INS-41423_IFOV = ( 0.000194 ) --> I did not check too carefully but I think all (most) of the numbers in --> keywords match those in the tables above. --> Since you have keywords for the two parts of the slit, it would --> be nice to have these parts and their sizes mentioned in the table --> describing SUV. For example insteof just to columns: --> --> ----------------------------------------------------------------- --> parameter SUV SUV_SOLAR --> ----------------------------------------------------------------- --> --> you may have four columns, like in the table with CCD stuff: --> --> ----------------------------------------------------------------- --> parameter Full FOV N-Slit W-Slit SOLAR --> ----------------------------------------------------------------- --> --> and a footnote explaning that slit sizes are computed as the number --> of pixels * IFOV. \begintext SUV CCD Detector Parameters --------------------------------------------------------------------------- The SUV CCD detector geometry parameters are included in the data section below, taken from [3]: ----------------------------------------------------------------- parameter Full CCD N-Slit W-Slit SOLAR ----------------------------------------------------------------- Pixel Size, microns Cross-track ---- ---- ---- --- Along-track ---- ---- ---- --- Detector Array Size Cross-track 384 (1) 2 20 3 Along-track 288 (1) 268 20 3 Detector Array Center Cross-track 192.5 192.5 (2) 192.5 (2) --- Along-track 144.5 134.5 (2) 178.5 (2) --- ----------------------------------------------------------------- --> so the slit is along track, i.e. parallel to +Y, right? --> technically, cross-track/along-track would not apply to SOLAR --> I don't think 178.5 is correct. Depending on which side 20x20 --> box is, it's center would be either 278.5 or 10.5; (1) The complete CCD has 408 "physical" pixels and 290 "physical" lines but only 384 pixels and 288 lines of them are active and used for spectral reconstruction and processing ([3]). !!!TO DO: CHECK WHETHER POINT (1) IS CORRECT OR NOT! (2) The Detector Array Center is given with respect to the complete CCD Array origin (Full CCD), although the detector array size refers to the actual size of the slit sections, in pixels. --> makes sense !!!TO DO: CHECK WHETHER THE CENTER OF THE SOLAR-SUV DETECTOR AREA IS FIXED OR NOT. ALSO CHECK IF THAT'S THE REAL SIZE OF THE DETECTOR. --> If it's fixed you will define its center. What will you do if it is --> not fixed? !!!TO DO: GET THE PIXEL SIZE IN MICRONS. The values are given in microns for PIXEL_SIZE keywords and in counts for PIXEL_SAMPLES, PIXEL_LINES, and CENTER keywords. \begindata INS-41620_PIXEL_SIZE = ( '?' , '?' ) INS-41620_PIXEL_SAMPLES = ( 384 ) INS-41620_PIXEL_LINES = ( 288 ) INS-41620_CCD_CENTER = ( 192.5 , 144.5 ) INS-41621_PIXEL_SIZE = ( '?' , '?' ) INS-41621_PIXEL_SAMPLES = ( 3 ) INS-41621_PIXEL_LINES = ( 3 ) INS-41621_CCD_CENTER = ( '?' , '?' ) INS-41622_PIXEL_SIZE = ( '?' , '?' ) INS-41622_PIXEL_SAMPLES = ( 20 ) INS-41622_PIXEL_LINES = ( 20 ) INS-41622_CCD_CENTER = ( 192.5 , 178.5 ) INS-41623_PIXEL_SIZE = ( '?' , '?' ) INS-41623_PIXEL_SAMPLES = ( 2 ) INS-41623_PIXEL_LINES = ( 168 ) INS-41623_CCD_CENTER = ( 192.5 , 134.5 ) --> I think the numbers in keywords match those in the tables above. 178.5 --> is probably incorrect. \begintext --> I know that SIR is one pixel and it seems silly to have keywords --> for it but I would have them anyway, just in case some program will --> look for them. They could be something like this: --> --> INS-41610_PIXEL_SIZE = ( '?' , '?' ) --> INS-41610_PIXEL_SAMPLES = ( 1 ) --> INS-41610_PIXEL_LINES = ( 1 ) --> INS-41610_CCD_CENTER = ( 0.5 , 0.5 ) --> --> INS-41611_PIXEL_SIZE = ( '?' , '?' ) --> INS-41611_PIXEL_SAMPLES = ( 1 ) --> INS-41611_PIXEL_LINES = ( 1 ) --> INS-41611_CCD_CENTER = ( 0.5, 0.5 ) FOV Definitions --------------------------------------------------------------------------- This section contains assignments defining the SIR/SUV channels FOV, for both the Nadir and Sun apertures. These definitions are based on the SIR/SUV detector and optics parameters provided in the previous sections and are provided in a format consistent with/required by the SPICE (CSPICE) function GETFOV (getfov_c). The SIR channel Nadir FOV is defined as a cone with a half angle of 0.5 degrees. It is defined with respect to the MEX_SPICAM_SIR frame. The boresight vector, along the +Z axis of the frame, was scaled to be equal to the focal length. The cross-reference vector is an unitary vector along the +X axis of the frame. !!!! TO DO! CHANGE THE VALUES OF THE BORESIGHT Z COMPONENT. \begindata INS-41610_FOV_FRAME = 'MEX_SPICAM_SIR' INS-41610_FOV_SHAPE = 'CIRCLE' INS-41610_BORESIGHT = ( 0.0 0.0 1.0 ) INS-41610_FOV_CLASS_SPEC = 'ANGLES' INS-41610_FOV_REF_VECTOR = ( 1.0 0.0 0.0 ) INS-41610_FOV_REF_ANGLE = ( 0.5 ) INS-41610_FOV_CROSS_ANGLE = ( 0.5 ) INS-41610_FOV_ANGLE_UNITS = 'DEGREES' --> this seems OK. \begintext The SIR and SUV channel Sun FOV are defined as a cone with a half angle of 1 arcminute. They are defined with respect to the MEX_SPICAM_SIR_SOLAR and MEX_SPICAM_SUV_SOLAR frames respectively. The boresight vector, along the +Z axis of the frame, was scaled to be equal to the focal length. The cross-reference vector is an unitary vector along the +X axis of the frame. !!!! TO DO! CHANGE THE VALUES OF THE BORESIGHT Z COMPONENT. \begindata INS-41611_FOV_FRAME = 'MEX_SPICAM_SIR_SOLAR' INS-41611_FOV_SHAPE = 'CIRCLE' INS-41611_BORESIGHT = ( 0.0 0.0 1.0 ) INS-41611_FOV_CLASS_SPEC = 'ANGLES' INS-41611_FOV_REF_VECTOR = ( 1.0 0.0 0.0 ) INS-41611_FOV_REF_ANGLE = ( 1.0000 ) INS-41611_FOV_CROSS_ANGLE = ( 1.0000 ) INS-41611_FOV_ANGLE_UNITS = 'ARCMINUTES' INS-41621_FOV_FRAME = 'MEX_SPICAM_SUV_SOLAR' INS-41621_FOV_SHAPE = 'CIRCLE' INS-41621_BORESIGHT = ( 0.0 0.0 1.0 ) INS-41621_FOV_CLASS_SPEC = 'ANGLES' INS-41621_FOV_REF_VECTOR = ( 1.0 0.0 0.0 ) INS-41621_FOV_REF_ANGLE = ( 1.0000 ) INS-41621_FOV_CROSS_ANGLE = ( 1.0000) INS-41621_FOV_ANGLE_UNITS = 'ARCMINUTES' --> these seem OK; same question: are SUV and SIR solar FOVs really the --> same size? \begintext The SPICAM SUV Nadir channel can operate in several differente modes, as described in [TBD]: - Full CCD - Binning Mode - Progresive-Binning Mode Only the Unobstructed FoV and the FoVs corresponding to each of the slit sections are described in this section. In the IK Code Example section of this kernel, the user will find a routine to compute/obtain the corresponding FoV for each of the SPICAM UV Nadir channel operation modes. !!! TO DO: DESCRIBE THIS IN MORE DETAIL, AS DONE FOR THE OTHERS. !!! TO DO: CHECK THE DEFINITION OF THE FOV FOR THE SLIT SECTIONS. BEFORE COMPUTING THE BSIGHT VECTOR, CHECK THE OPTICAL PATH OF THE INSTRUMENT. IF IT'S THE SAME AS FOR HRSC, USE THE SAME ALGORITHM. (SEE HRSC IK FILE) \begindata INS-41620_FOV_FRAME = 'MEX_SPICAM_SUV' INS-41620_FOV_SHAPE = 'RECTANGLE' INS-41620_BORESIGHT = ( 0.0 0.0 120.0 ) INS-41620_FOV_CLASS_SPEC = 'ANGLES' INS-41620_FOV_REF_VECTOR = ( 1.0 0.0 0.0 ) INS-41620_FOV_REF_ANGLE = ( 2.0 ) INS-41620_FOV_CROSS_ANGLE = ( 1.5 ) INS-41620_FOV_ANGLE_UNITS = 'DEGREES' --> You could use angles from the FOV table (4.27 x 3.2) rather than rounded --> 4x3, as you do for slits below. INS-41622_FOV_FRAME = 'MEX_SPICAM_SUV' INS-41622_FOV_SHAPE = 'RECTANGLE' INS-41622_BORESIGHT = ( '?' '?' 120.0 ) INS-41622_FOV_CLASS_SPEC = 'ANGLES' INS-41622_FOV_REF_VECTOR = ( 1.0 0.0 0.0 ) INS-41622_FOV_REF_ANGLE = ( 0.111111 ) INS-41622_FOV_CROSS_ANGLE = ( 0.111111 ) INS-41622_FOV_ANGLE_UNITS = 'DEGREES' INS-41623_FOV_FRAME = 'MEX_SPICAM_SUV' INS-41623_FOV_SHAPE = 'RECTANGLE' INS-41623_BORESIGHT = ( '?' '?' 120.0 ) INS-41623_FOV_CLASS_SPEC = 'ANGLES' INS-41623_FOV_REF_VECTOR = ( 1.0 0.0 0.0 ) INS-41623_FOV_REF_ANGLE = ( 0.0111111 ) INS-41623_FOV_CROSS_ANGLE = ( 2.7777778 ) INS-41623_FOV_ANGLE_UNITS = 'DEGREES' --> You are on the right path: if you want to use CLASS_SPEC = 'ANGLES' --> you will need to compute view directions --> that correpond to n-slit and w-slit center pixels, scale them to --> 120 and put them instead of ( '?' '?' 120.0 ). The rest of definition --> seems OK. \begintext Spectral Parameters --------------------------------------------------------------------------- This section contains assignments specifying SIR/SUV channels spectral resolution parameters. The following SIR/SUV channels spectral resolution parameters are included in the data section below, taken from [3]. ----------------------------------------------------------------- parameter SIR SUV ----------------------------------------------------------------- Spectral range, nanometers nominal 1100 - 1700 118 - 320 Number of spectral bins ? 384 ----------------------------------------------------------------- These values are provided in the assignments below, with the same units as in the table. \begindata INS-41610_SPECTRAL_RANGE = ( '?' , '?' ) INS-41610_NUMBER_OF_BINS = ( '?' ) \begintext !!! TO DO: ASK WHETHER IS INTERESTING TO HAVE SPECTRAL DISTORSION INFORMATION IN THE IK. --> did you mean SPECTRAL RESOLUTION? :) Yes, you should check with the --> team before spending time on this. You may want to include keywords --> specifying pixel ranges for each bin and spectral range boundaries --> for each bin Optical Distortion --------------------------------------------------------------------------- This section provides optical distortion and geometric calibration data for SIR/SUV SPICAM channels. [TBD] Platform ID --------------------------------------------------------------------------- This number is the NAIF instrument ID of the platform on which the instrument is mounted. SPICAM (and all its parts) is mounted on the spacecraft itself. \begindata INS-41600_PLATFORM_ID = ( -41000 ) INS-41610_PLATFORM_ID = ( -41000 ) INS-41611_PLATFORM_ID = ( -41000 ) INS-41620_PLATFORM_ID = ( -41000 ) INS-41621_PLATFORM_ID = ( -41000 ) --> I would change this to have -41600 as PLATFORM_ID for all except --> -41600 itself becaise SUV and SIR are closed in one main unit. \begintext IK Code Example --------------------------------------------------------------------------- This section contains an example code, in IDL, C and FORTRAN, illustrating how FoV boundary corners and boresight direction for a given UV channel operation mode can be obtained/computed from the data contained in this IK file. These examples are presented as stand-alone functions with SPICE-style header, ready to be cut-n-paste and called from an application. !! TO DO: INCLUDE THE C EXAMPLE AND THE FORTRAN ONE. IS IDL REQUIRED? I THINK SPICAM TEAM ARE USING IDL FOR THEIR DATA ANALYSIS, BUT NOT SURE. --> I'll wait to see this example :)