ISIS Application Documentation
|Standard View | TOC | Home|
Computes MESSENGER/MDIS EDR geometric keyword values
mdisedrinfo computes geometric properties that satisfy PDS EDR archive specifications. The input file can be either a MDIS EDR or an ISIS cube. It will work on either one. The file type is distinguished by the file extension. If the extension is not .cub, then the file is deemed a PDS EDR. It is converted to an ISIS cube (using mdis2isis) and initialized with SPICE kernels (using spiceinit). The resulting ISIS cube file is then used to compute the values. If the FROM file extension is .cub, then it is assumed to be an ISIS cube that has been initialized with the proper SPICE kernel information.
The ISIS cube file stores the original MDIS PDS EDR labels. All PDS EDR keywords are loaded with their intial values. The keyword/values generated by mdisedrinfo replace the original ones and are made available through a semi-colon delineated list provided in either the KEYLIST or TO parameter. All original PDS EDR keywords and their values are available as well. The RETICLE_POINT_LATITUDE and RETICLE_POINT_LONGITUDE keywords in each of the SUBFRAME_PARAMETERS objects are also computed by mdisedrinfo. These parameters are referenced using the name of the object from whence they came. For example, the RETICLE_POINT_LATITUDE in object SUBFRAME2_PARAMETERS is referenced as SUBFRAME2_PARAMETERS/RETICLE_POINT_LATITUDE. In general, this special class of reticle point keywords are prepended with the name of the object followed by the keyword name and separated by a forward slash. See the parameter descriptions for further details.
Also, the KEYLIST parameter is expected to contain the single line of semi-colon delineated keywords selected for update. It is optional in that the TO file can also provide this item, if the TO file exists. The idea is to provide a single file that has the keyword list and have each image data appended to it on succesive runs. On the first run, if TO does not exist and KEYLIST is given, the keyword list is read from KEYLIST, TO is created and the single keyword list line from KEYLIST is written to it followed by the computed/selected keywords. Any keyword in the list provided that does not exist will cause the application to abort.
There are three additional keywords generated by this application that are not in the PDS EDR label at the time this application was developed. The filename specified in the FROM parameter is provided through the FILENAME keyword. It is added as an additional reference to support subsequent processing of the results. The SOURCE_PRODUCT_ID keyword is added that identifies every SPICE kernel used to compute the geometric parameters. And the RA_DEC_REF_PIXEL records the center pixel coordinate of the image that was used to compute all the target geometric properties. These keywords may be used in future PDS EDRs released by the team.
Images that do not have a target name recognized by NAIF (such as STAR, etc...) will generally fail if left unchanged. When processing raw PDS EDR images, a check is performed by mdisedrinfo after importing into ISIS with mdis2isis of the TargetName (TARGET_NAME in the PDS EDR header) keyword for a valid NAIF target. If it is invalid, the TargetName ISIS keyword is changed to Sky so spiceinit executes properly. This check is not performed if the input FROM file is an ISIS cube. It is the responsibility of the user to ensure proper target names are in ISIS cube files.
Images that were acquired in subframe mode are not supported and will abort the application when they are detected.
The follow table lists the keywords that are computed by mdisedrinfo along with a description for each one:
|Keyword||Description and Definitions|
|FILENAME||The name of the input file specified in the FROM parameter.|
|SOURCE_PRODUCT_ID||This keyword records all the SPICE kernels in use to compute the geometric parameters. Only the filenames are recorded - the paths to them are ISIS specific and are removed.|
|RA_DEC_REF_PIXEL||The RA_DEC_REF_PIXEL element (x,y) specifies the reference pixel to which the right_ascension and declination apply. The x value is here defined as the pixel value in the LINE_SAMPLE direction, and the y value is defined as the pixel value in the LINE direction. It is also the pixel coordinate used for computation of target geometry. It is synonymous with the boresight reference pixel.|
|RIGHT_ASCENSION||The right ascension of the camera boresight. The values are specified relative to the J2000 inertial reference frame.|
|DECLINATION||The declination of the camera boresight. The values are specified relative to the J2000 inertial reference frame.|
|TWIST_ANGLE||The angle of rotation about an optical axis relative to celestial coordinates. It is defined as (180- CELESTIAL_NORTH_CLOCK_ANGLE) mod 360. Where CELESTIAL_NORTH_CLOCK_ANGLE is the direction of celestial north at the center of an image. It is measured from the upward direction, clockwise to the direction toward celestial north (declination = +90 degrees), when the image is displayed left to right and top to bottom. The epoch of the celestial coordinate system is J2000.|
|RETICLE_POINT_RA||The right ascension of the principle points of the camera. Note: For MESSENGER the principle points are defined as the upper left pixel of the camera (line 1,sample 1), the upper right pixel(line 1, last sample), lower left (last line, sample 1), and lower right (last line, last sample).|
|RETICLE_POINT_DECLINATION||The declination of the principle points of the camera. For MESSENGER the principle points are defined as in RETICLE_POINT_RA.|
|SC_TARGET_POSITION_VECTOR||X, Y, Z components of the position vector from observer to target center expressed in J2000 coordinates, and corrected for light time and stellar aberration, evaluated at epoch at which the image was taken. Units are expressed in kilometers.|
|TARGET_CENTER_DISTANCE||Distance between the spacecraft and the center of the named target in kilometers.|
|SLANT_DISTANCE||Distance from spacecraft to the camera boresight intercept point on the surface in kilometers.|
|CENTER_LATITUDE||Latitude at the center of the full image frame.|
|CENTER_LONGITUDE||Longitude at the center of the full image frame.|
|HORIZONTAL_PIXEL_SCALE||The horizontal picture scale.|
|VERTICAL_PIXEL_SCALE||The vertical picture scale.|
|SMEAR_MAGNITUDE||Norm of velocity vector of camera boresight intercept point projected on the target, multiplied by the exposure duration with the scale of the image factored to obtain the smear in pixels. Spacecraft rotation is taken into account. (Units are in pixels.)|
|SMEAR_AZIMUTH||Azimuth of smear velocity vector. The reference line for the angle extends from the center of the image to the right edge of the image. The angle increases in the clock-wise direction. The angle is measured to the "image" of the smear velocity vector in the camera's focal plane. This image is computed by orthogonal projection of the smear vector onto the image plane and then applying transformations to orient the result properly with respect to the image. The specific transformations to be performed are given by the camera's I-kernel.|
|NORTH_AZIMUTH||Analogs to smear azimuth, but applies to the target north pole direction vector.|
|RETICLE_POINT_LATITUDE||Latitudes of the surface intercept points of the principle points of the camera. (see RETICLE_POINT_RA for definition of the reticule points for MESSENGER). The units are expressed in degrees.|
|RETICLE_POINT_LONGITUDE||Longitudes of the surface intercept points of the principle points of the camera. (see RETICLE_POINT_RA for definition of the reticule points for MESSENGER). The units are expressed in degrees.|
|SUB_SPACECRAFT_LATITUDE||Planetocentric latitude of spacecraft-to-body-center surface intercept vector. These parameters and the SPACECRAFT_ALTITUDE, SUB_SPACECRAFT_AZIMUTH parameters described below are relative to the central body for which the spacecraft is orbiting and not the target of the observation.|
|SUB_SPACECRAFT_LONGITUDE||Planetocentric longitude of spacecraft-to-body-center surface intercept vector. These parameters and the SPACECRAFT_ALTITUDE, SUB_SPACECRAFT_AZIMUTH parameters described below are relative to the central body for which the spacecraft is orbiting and not the target of the observation.|
|SPACECRAFT_ALTITUDE||Altitude of the spacecraft above a reference ellipsoid. Distance is measured to closest point on ellipsoid.|
|SUB_SPACECRAFT_AZIMUTH||Azimuth angle of sub-spacecraft point in image. Method of measurement is the same as for SMEAR_AZIMUTH.|
|SPACECRAFT_SOLAR_DISTANCE||Analogous to TARGET_CENTER_DISTANCE but Sun replaces target body in computation.|
|SC_SUN_POSITION_VECTOR||X ,Y ,Z components of the position vector from observer to sun, center expressed in J2000 coordinates and corrected for light time and stellar aberration, evaluated at epoch at which image was taken. Units are kilometers.|
|SC_SUN_VELOCITY_VECTOR||x-, y-, and z- components of velocity vector of sun relative to the observer, expressed in J2000 coordinates, and corrected for light time, evaluated at epoch at which image was taken. Units are kilometers per second.|
|SOLAR_DISTANCE||Distance from target body center to Sun. The Sun position used is that described above.|
|SUB_SOLAR_AZIMUTH||Azimuth of the apparent sub-solar point, as seen by the spacecraft. This point is the surface intercept of the target-center-to-Sun vector, evaluated at the camera epoch minus one-way light time from target to spacecraft at that epoch spacecraft at that epoch. Azimuth is measured as described above. Target body position relative to the spacecraft is corrected for light-time and stellar aberration. Target body orientation is corrected for light-time.|
|SUB_SOLAR_LATITUDE||Planetocentric latitude of the apparent sub-solar point.|
|SUB_SOLAR_LONGITUDE||Planetocentric longitude of the apparent sub-solar point.|
|INCIDENCE_ANGLE||Provides a measure of the lighting condition at the intercept point. Incidence angle is the angle between the local vertical at the intercept point (surface) and a vector from the intercept point to the sun. The incidence_angle varies from 0 degrees when the intercept point coincides with the sub_solar point to 90 degrees when the intercept point is at the terminator (i.e., in the shadowed or dark portion of the target body). Thus, higher values of incidence_angle indicate the existence of a greater number of surface shadows.|
|PHASE_ANGLE||Provides a measure of the relationship between the instrument viewing position and incident illumination (such as solar light). Phase_angle is measured at the target; it is the angle between a vector to the illumination source and a vector to the instrument. If not specified, the target is assumed to be at the center of the instrument field of view. If illumination is from behind the instrument, phase_angle will be small.|
|EMISSION_ANGLE||Provides the value of the angle between the surface normal vector at the intercept point and a vector from the intercept point to the spacecraft. The emission_angle varies from 0 degrees when the spacecraft is viewing the subspacecraft point (nadir viewing) to 90 degrees when the intercept is tangent to the surface of the target body. Thus, higher values of emission_angle indicate more oblique viewing of the target.|
|LOCAL_HOUR_ANGLE||Angle from the negative of the target-body-to-Sun vector to the projection of the negative of the spacecraft-to-target vector onto the target's instantaneous orbital plane. Both vectors are computed as in the sub-spacecraft point computation. The angle is measured in a counterclockwise direction when viewed from North of the ecliptic plane.|
|FROM||Input PDS EDR or ISIS cube to compute geometric values for|
|KEYLIST||File containing a row of keywords to extract after processing|
|TO||File where semi-colon delineated keyword values are written|
|PVL||File where Pvl-formatted keywords and values are written|
This from file can be either a raw MESSENGER/MDIS EDR image (ending in with a .IMG file extension) or an ISIS cube file that has been properly initialize with SPICE kernel information.
MDIS PDS EDRs are converted to ISIS format using mdis2isis and intialized with SPICE kernels using spiceinit. This is the minimum expected processing for an ISIS cube provided as input to mdiserdinfo. If and only if the input is an MDIS PDS EDR, the temporary ISIS file created from it is deleted when the program terminates (normally or abnormally).
|Filter||*.IMG *.IMA *.cub|
This file contains at least one row that has a list of semi-colon delimited keywords as specified in the EDR header. This row must be the first row in the file. All other contents of the file are ignored. This application computes all keyword values and places them in a table. This table is then used to match the names from this single row of keyword names and the keyword values are formatted in the same fashion as the list - a semi-colon delineated list of values. This single row of values is then appended to the TO file.
Note that this parameter is optional. If the TO file does not exist, it is created and the row containing the keyword list is written to it. After which all keyword values are appended to it. By this definition, the TO file can provide the keyword list and the KEYLIST parameter is not longer required. It is only really necessary when the TO file does not exist and it seeds the TO file with the keyword list.
Below is an example of how this line may look:
This parameter provides the name of the file where keyword values are written. The list of keyword names can be provided in the KEYLIST parameter or, if the TO file already exists, it may have the list of keywords in the first line of this file. See the KEYLIST parameter for further details. To use the TO file as the source of the keyword list, do not provided the KEYLIST parameter. Run this way implies the keyword list is in the TO file provided here.
If the TO file does not exist, the list of keywords must be provided in the KEYLIST parameter to seed the creation of the TO file for subsequent use in this application. When mdisedrinfo creates the TO file it writes the semi-colon delineated list of keword names as the first line of the file. The resulting values for those keywords are appended to the contents of the TO after it is created or if it already exists.
Each single run of mdisedrinfo results in a single row of keyword values. This single row is appended to the TO file. Each value is formatted according to PDS guidelines and delineated by a semi-colon, following the same format as the keyword name list supplied in KEYLIST.
TO is an optional output parameter as this program offers serveral options for presentation of the resulting values. Below is an example of an output line generated from the values as specified in the KEYLIST example:
EW0031509051D.IMG;58.94599 <DEG>;23.52788 <DEG>;(-98852166.98839 <KM>,105701815.82312 <KM>,45826277.13516 <KM>);("N/A","N/A","N/A","N/A")
The name of a file where the keywords generated by this application are written in PVL form. This is an optional file and not generally used but does provide a more user-friendly view of the output data created by mdisedrinfo. If KEYLIST or TO is entered, the keywords listed in this source will also be the keywords written, otherwise only the keywords that are changed are reported.
Below is an example of the expected output for the PVL format:
FILENAME = EW0031509051D.IMG SOURCE_PRODUCT_ID = (msgr_20040803_20120401_od094sc.bsp, msgr_v070.tf, 0089907251_mdis_atthist.bc, 0001425715_0090876143_mdis_pivot.bc, de405.bsp, pck00008.tpc, pck00008_MSGR.tpc, mdisAddendum003.ti, naif0008.tls, messenger_390.tsc) RA_DEC_REF_PIXEL = (256.00000, 256.00000) RIGHT_ASCENSION = 58.94599 <DEG> DECLINATION = 23.52788 <DEG> TWIST_ANGLE = -169.91467 <DEG> RETICLE_POINT_RA = (63.79144, 52.09774, 65.35154, 54.51029) <DEG> RETICLE_POINT_DECLINATION = (29.50223, 27.59525, 19.15652, 17.39244) <DEG> SC_TARGET_POSITION_VECTOR = (-63778.06349, 18245.88488, -27909.07737) <KM> TARGET_CENTER_DISTANCE = 71968.53685 <KM> SLANT_DISTANCE = 67948.17343 <KM> CENTER_LATITUDE = -7.41010 <DEG> CENTER_LONGITUDE = 256.79419 <DEG> HORIZONTAL_PIXEL_SCALE = 24404.16696 <M> VERTICAL_PIXEL_SCALE = 24404.16696 <M> SMEAR_MAGNITUDE = "N/A" SMEAR_AZIMUTH = "N/A" NORTH_AZIMUTH = 253.70430 <DEG> RETICLE_POINT_LATITUDE = ("N/A", "N/A", "N/A", "N/A") RETICLE_POINT_LONGITUDE = ("N/A", "N/A", "N/A", "N/A") SUB_SPACECRAFT_LATITUDE = -22.86533 <DEG> SUB_SPACECRAFT_LONGITUDE = 305.16796 <DEG> SPACECRAFT_ALTITUDE = 65593.64024 <KM> SUB_SPACECRAFT_AZIMUTH = 358.70848 <DEG> SPACECRAFT_SOLAR_DISTANCE = 151804718.18318 <KM> SC_SUN_POSITION_VECTOR = (-98852166.98839, 105701815.82312, 45826277.13516) <KM> SC_SUN_VELOCITY_VECTOR = (18.82124, 14.64880, 4.90060) <KM/S> SOLAR_DISTANCE = 151801349.19267 <KM> SUB_SOLAR_AZIMUTH = 182.12965 <DEG> SUB_SOLAR_LATITUDE = 17.54908 <DEG> SUB_SOLAR_LONGITUDE = 203.65223 <DEG> INCIDENCE_ANGLE = 58.11450 <DEG> PHASE_ANGLE = 111.06803 <DEG> EMISSION_ANGLE = 52.98043 <DEG> LOCAL_HOUR_ANGLE = 233.14196 <DEG> End
|Kris Becker||2007-08-21||Original version|
|Kris Becker||2007-09-10||Added ability to retain and reprocess the reticle keywords in each SUBFRAME_PARAMETERS. In addition the camera model now supports both subframe modes and jailbar images. This rounds out complete support for imaging modes in the camera model.|
|Kris Becker||2008-02-27||Modified the order in which the SPKs are loaded so that the planetary ephemeris SPK (typically de405.bsp) is loaded before the spacecraft SPK. The MESSENGER mission has been known to augment/update planet ephemerides in its s/c SPK.|
|Kris Becker||2008-04-14||The SC_TARGET_POSITION_VECTOR and TARGET_CENTER_DISTANCE are defined for all valid targets (other than Sky) even if none of the corners or center reference pixels intersect the target. These keyword were previously being computed only when the center reference pixel intersected the target. It is now computed unconditionally for all valid targets except Sky, which are set to N/A.|
|Kris Becker||2008-09-22||Corrected formatting of some units in arrays where the first unit is undefined. This caused subsequent values with units to have the units ignored.|
|Kris Becker||2009-09-18||Corrected computation of SMEAR_MAGNITUDE and SMEAR_AZIMUTH.|