PDS_VERSION_ID = PDS3 RECORD_TYPE = STREAM SPACECRAFT_NAME = MAGELLAN TARGET_NAME = VENUS OBJECT = TEXT PUBLICATION_DATE = 1997-08-01 NOTE = "Software Interface Specification V1.0.2" END_OBJECT = TEXT END SOFTWARE INTERFACE SPECIFICATION RADIO SCIENCE DIGITAL MAP (RSDMAP) PRODUCTS prepared by Richard A. Simpson Durand Bldg - Room 232 Stanford University Stanford, CA 94305-4055 Version 1.0.2 31 January 1995 Acronyms and Abbreviations ANSI American National Standards Institute ARCDR Altimetry and Radiometry Composite Data Record ASCII American Standard Code for Information Interchange CCSDS Consultative Committee for Space Data Systems CNES Centre National d'Etudes Spatiales dB Decibel DEC Digital Equipment Corporation DSN Deep Space Network FEA Front End Assembly GSFC Goddard Space Flight Center IEEE Institute of Electrical and Electronic Engineers IAU International Astronomical Union JPL Jet Propulsion Laboratory J2000 IAU Official Time Epoch K Degrees Kelvin kB kilobytes km Kilometers LVO Label-Value Object RSDMAP Radio Science Digital Map (product) MGS Mars Global Surveyor MO Mars Observer NAIF Navigation and Ancillary Information Facility NASA National Aeronautics and Space Administration NAV Navigation Subsystem/Team ODL Object Definition Language (PDS) PDB Project Data Base PDS Planetary Data System RS Radio Science SCET Space Craft Event Time SFDU Standard Formatted Data Unit SHADR Spherical Harmonic ASCII Data Record SHBDR Spherical Harmonic Binary Data Record SHM Spherical Harmonic Model SIS Software Interface Specification SOPC Science Operations Planning Computer SPARC Sun Scaleable Processor Architecture SPK Spacecraft and Planet Kernel Format, from NAIF TBD To Be Determined TDB Temps Dynamique Barycentrique - IAU Standard Ephemeris Time 1. General Description 1.1. Overview This Software Interface Specification (SIS) describes Radio Science Digital Map (RSDMAP) files. The RSDMAP product is intended to be general and may contain values for geoid, isostatic anomaly, Bouguer anomaly, or other digital maps derived primarily from Radio Science data [1]. 1.2. Scope The format and content specifications in this SIS apply to all phases of the project for which RSDMAP products are produced. The RSDMAP product has been defined initially for free air gravity maps derived from Magellan (MGN) and Mars Global Surveyor (MGS) radio tracking data, but the format is more generally useful. The Magellan and Mars Global Surveyor Missions are managed by the Jet Propulsion Laboratory (JPL) for the National Aeronautics and Space Administration. 1.3. Applicable Documents [1] Tyler, G.L., G. Balmino, D.P. Hinson, W.L. Sjogren, D.E. Smith, R. Woo, S.W. Asmar, M.J. Connally, C.L. Hamilton, and R.A. Simpson, Radio Science Investigations with Mars Observer, J. Geophys. Res., 97, 7759-7779, 1992. [2] MGN 630-7, Rev. D, Magellan Planetary Constants and Models, D.T. Lyons, Mission Design, Jet Propulsion Laboratory, 9 January 1991. [3] MO 642-321, Mars Observer Planetary Constants and Models, JPL D-3444, November 1990. [4] JJPLP0006P01P00, JPL SFDU Description and Usage. Issue 5, March 7 1988. [5] D-7116, Rev. C, Planetary Science Data Dictionary Document, Jet Propulsion Laboratory, 20 November 1992. [6] D-7669 Part 2, Planetary Data System Standards Reference, PDS Version 3.0, Jet Propulsion Laboratory, 20 November 1992. 1.4. System Siting 1.4.1. Interface Location and Medium RSDMAP files are created at the institution conducting the science analysis. RSDMAP files are electronic files. 1.4.2. Data Sources, Transfer Methods, and Destinations RSDMAP files are created from radio tracking, vertical sounding, in situ, and/or other measurements at the institution conducting the scientific data analysis. They are transferred to and deposited in a data system specified by the managing institution. Magellan files will be deposited in a Magellan Science Workstation; Mars Global Surveyor files will be delivered to the Mars Global Surveyor Project. 1.4.3. Generation Method and Frequency Radio Science RSDMAP files are developed separately at each institution conducting scientific analyses on raw data. Each digital map meets criteria specified by the investigators conducting the analysis. Each digital map requires data from a large number of latitudes and longitudes, so that RSDMAP files will be issued infrequently and on schedules which cannot be predicted at this time. 1.5. Assumptions and Constraints 1.5.1. Usage Constraints None. 1.5.2. Priority Phasing Constraints None. 1.5.3. Explicit and Derived Constraints None. 1.5.4. Documentation Conventions 1.5.4.1. Data Format Descriptions The reference data unit is the byte. Data may be stored in fields with various sizes and formats, viz. one-, two-, and four-byte binary integers, four- and eight-byte binary floating-point numbers, and character strings. Data are identified throughout this document as char 8 bits character uchar 8 bits integer short 16 bits integer long 32 bits integer float 32 bits floating point (sign, exponent, and mantissa) double 64 bits floating point (sign, exponent, and mantissa) u (prefix) unsigned (as with ulong for unsigned 32-bit integer) other special data structures such as time, date, etc. which are described within this document The detailed formats of the numeric fields are defined in Appendix A. If a field is described as containing n bytes of ASCII character string data, this implies that the leftmost (lowest numbered) byte contains the first character, the next lowest byte contains the second character, and so forth. An array of n elements is written as array[n]; the first element is array[0], and the last is array[nP1]. Array[n][m] describes an n by m element array, with first element array[0][0], second element array[0][1], and so forth. 1.5.4.2. Time Standards RSDMAP files use the January 1.5, 2000 epoch as the standard time. Within the data files, all times are reported in Universal Coordinated Time (UTC) as strings of 23 ASCII characters. The time format is "YYYY-MM-DDThh:mm:ss.fff", where "P", "T", ":", and "." are fixed delimiters; "YYYY" is the year "19nn" or "20nn"; "MM" is a two- digit month of year; "DD" is a two-digit day of month; "T" separates the date and time segments of the string; "hh" is hour of day; "mm" is the minutes of hour (00P59); "ss" is the seconds of hour (00P59); and "fff" is in milliseconds. The date format is "YYYY-MM-DD", where the components are defined as above. 1.5.4.3. Coordinate Systems The RSDMAP product uses the appropriate planetocentric coordinate system [2, 3]. 1.5.4.4. Limits of This Document This document applies only to RSDMAP data files. 1.5.4.5. Typographic Conventions This document has been formatted for simple electronic file transfer and display. Line lengths are limited to 80 ASCII characters, including line delimiters. No special fonts or structures are included within the file. Constant width characters are assumed for display. 2. Interface Characteristics 2.1. Hardware Characteristics and Limitations 2.1.1. Special Equipment and Device Interfaces Users of the RSDMAP product must have access to the data system (or to backup media) on which RSDMAP files are stored. 2.1.2. Special Setup Requirements None. 2.2. Volume and Size RSDMAP products have variable length depending on the resolution of the map, the number of quantities represented in the image, and the format of the individual data points. A rectangular map of resolution 1 degree in both latitude and longitude with a single parameter given as a double precision floating point number requires about 550kB total. Including the corresponding map of uncertainty values would double the file size. 2.3. Labeling and Identification Each file has a name which describes its contents. The name includes the following structure which uniquely identifies it among RSDMAP products: DMTGnnnn.fvv where "DM" denotes that this is a file of Radio Science Digital Map values, "T" indicates the type of data represented "G" for free air gravity field "O" for geoid "B" for Bouguer anomaly "I" for isostatic anomaly "T" for topography "M" for magnetic field "G" denotes the generating institution "J" for the Jet Propulsion Laboratory "G" for Goddard Space Flight Center "C" for Centre National d'Etudes Spatiales "S" for Stanford University "nnnn" is a 4-character (or fewer) modifier specified by the data producer "f" is a file name modifier specified by the data producer, and "vv" is a decimal version number which is initialized at "01" for each product and is incremented by 1 for each subsequent iteration of that product. For test products, "vv" consists of the single character "T" followed by a decimal number which is initialized at "1" for each test product and is incremented by 1 for each subsequent iteration of that product. 2.4. Interface Medium Characteristics RSDMAP products are electronic files. 2.5. Failure Protection, Detection, and Recovery Procedures None. 2.6. End-of-File Conventions End of file labeling complies with SFDU standards (see Section 4) and with standards of the data system on which they are initially deposited. 3. Access 3.1. Programs Using the Interface Data contained in RSDMAP files will be accessed by programs at the home institutions of science investigators. Those programs cannot be identified here. 3.2. Synchronization Considerations 3.2.1. Timing and Sequencing Considerations N/A 3.2.2. Effective Duration N/A 3.2.3. Priority Interrupts None. 3.3. Input/Output Protocols, Calling Sequences None. 4. Detailed Interface Specifications 4.1. Structure and Organization Overview The RSDMAP is a file generated by software at the institution conducting scientific data analysis. It uses Standard Format Data Unit structures (SFDU) as defined in Applicable Documents [4,6]. The overall format is illustrated in Figure 4P1. For purposes of discussion here, the structure from the first CCSDS Header through the I-Label and its associated length field will be called "The Label"; the remainder of the file is made up of the "Header Object" and a "Image Object." Examples of a complete Label and image object are given in Appendix B. |====================================================================| | | | Figure 4-1. RSDMAP File - Block Format | | | |====================================================================| |T| |CCSD3ZF00001 |CCSDS Label| CCSDS | |-+-+-------------------------------------------+------------| | |L| |00000001 |Length Field| Header| |-+-+-------------------------------------------+------------+-------| |V|T|NJPL3KS0PDSX | K-Label | | | |-+-------------------------------------------+------------| | | |L|##mark## |Start Marker| | | |-+-------------------------------------------+------------| | | |V|PDS_VERSION_ID=PDS3 | Standard | | | | |FILE_NAME="DMTGnnnn.fvv" | Keywords |Keyword| | | | ... | and | and | | | |SOURCE_FILE_NAME="cccccccc" | Values | Value | | | |-------------------------------------------+------------| SFDU | | | |OBJECT=IMAGE | | | | | | LINES=nnn | Data | | | | | LINE_SAMPLES=nnn | Object | | | | | SAMPLE_BITS=nnn | Definitions| | | | | ... | | | |-+-+-------------------------------------------+------------+-------| |T| |CCSD$$MARKER | CCSDS Label| CCSDS | |-+-+-------------------------------------------+------------| | |L| |##mark## | End Marker | Header| |-+-+-------------------------------------------+------------+-------| |V|T|NJPL3IF0xxxx | I-Label | | | |-+-------------------------------------------+------------| | | |L|00000001 |Length Field| | | |-+-------------------------------------------+------------| Data | | |V| | | SFDU | | | | Data Fields: Digital Map(s) | Data | | | | | | | | |=|=|===========================================|============|=======| Label Components CCSDS Label "CCSD3ZF00001", the CCSDS primary SFDU label. The "3" indicates that the contents of the file are delimited by unique start and end markers and that the Length Field is not used. Length Field Eight bytes, ASCII (not used in this SFDU format; set to default value "00000001"). Keyword and Value SFDU Contains standard keyword-value entries and object definitions which follow (see Section 4.2) CCSDS Label "CCSD$$MARKER", a CCSDS primary SFDU label. Length Field Eight bytes ASCII "##mark##", denoting the end of The Label after the next 20 bytes. I-Label "NJPL3IF00040" denotes beginning of the data object. "0040" is a four-character identifier uniquely assigned to this data type by the JPL SFDU Control Authority as the "Radio Science Digital Map File." Length Field Eight bytes, ASCII (not used in this SFDU format; set to default value "00000001"). Data Components Image See Section 4.2.1.2.1 (and Section 4.2.2.1) 4.2. Substructure Definition and Format Substructure of the RSDMAP includes the Keyword and Value SFDU (which identifies and defines the data product) and the Data SFDU (made up of the digital map object). 4.2.1. Keyword and Value SFDU The Keyword and Value SFDU includes two components: a section of Standard Keyword and Value entries and the Data Object Definition. The general structure is shown in Figure 4-2. |====================================================================| | | | Figure 4-2. Keyword-Value SFDU Block Structure | | | |====================================================================| | T | NJPL3KS0PSDX | K-Label | |---+-------------------------------------------------+--------------| | L | ##mark## | Start Marker | |---+-------------------------------------------------+--------------| | V | PDS_VERSION_ID=PDS3 | | | | FILE_NAME="DMTGnnnn.fvv" | Standard | | | RECORD_TYPE=FIXED_LENGTH | Keywords | | | RECORD_BYTES=nnn | and | | | FILE_RECORDS=nnn | Labels | | | ... | | | | SOURCE_FILE_NAME="ccccc" | | | | | | | | OBJECT=IMAGE | Data | | | ... | Object | | | END_OBJECT=IMAGE_MAP_PROJECTION | Definition | | | | | |===|=================================================|==============| Object Definitions are series of statement groups of the form OBJECT=OBJECT_NAME ATTRIBUTE_1=ATTRIBUTE_1_VALUE ATTRIBUTE_2=ATTRIBUTE_2_VALUE ... ATTRIBUTE_N=ATTRIBUTE_N_VALUE END_OBJECT=OBJECT_NAME Each indented line specifies an attribute of the object (size, line length, etc.). Attributes can themselves be object definitions, allowing nesting within the definition statement. For example, a primary Object Definition may specify a table; nested Object Definitions are used to specify each of the columns within the table. Required data objects within the RSDMAP include only the Digital Map (Image) Object. Although not shown here and in the following subsections, each line in the Standard Keyword and Value section and each line in the Object Definition section is terminated by both the ASCII carriage return (hex 0D) and the ASCII line feed (hex 0A) characters. Further, if the total length of the Standard Keyword and Value section and the Object Definition section is not an even number of bytes, a single ASCII blank (hex 20) is added at the end (before the final ). 4.2.1.1. Standard Keywords and Values Keyword-value pairs are shown in Figure 4-3 and defined in the text which follows (see also [5,6]). Note that an entry beginning with "^" is a pointer to a data object which follows the Keyword and Value SFDU. Each line in Figure 4-3 ends with an ASCII carriage- return line-feed pair, which is not shown. |====================================================================| | | | Figure 4-3. Standard Keyword and Value Pairs | | | |====================================================================| | | | | PDS_VERSION_ID=PDS3 | | | FILE_NAME="DMTGnnnn.fvv" | | | RECORD_TYPE=FIXED_LENGTH | | | RECORD_BYTES=nnn | | | FILE_RECORDS=nnn | | | LABEL_RECORDS=nnn | | | ^IMAGE=nnn | | | SPACECRAFT_NAME="ccccccccccc" | | | TARGET_NAME="cccccc" | Standard | | INSTRUMENT_NAME="cccccccccccccc | Keywords | | DATA_SET_ID="cccccccccc" | and | | OBSERVATION_TYPE="ccccccccc" | Values | | PRODUCT_ID="RS-DMTGnnnnn.fvv" | | | PRODUCT_RELEASE_DATE=YYYY-MM-DD | | | DESCRIPTION="cccccccccccccccccc" | | | START_ORBIT_NUMBER=nnn | | | STOP_ORBIT_NUMBER=nnn | | | PRODUCT_CREATION_TIME=YYYY-MM-DDThh:mm:ss.fff | | | PRODUCER_FULL_NAME="cccccccccccccccccc" | | | PRODUCER_INSTITUTION_NAME="cccccccccccccccccc" | | | PRODUCT_VERSION_TYPE="cccccccccccccccccc" | | | PRODUCER_ID="cccccccc" | | | SOFTWARE_NAME="ccccccc;Vn.m" | | | SOURCE_FILE_NAME="ccccccccccc" | | | | | |=========================================================|==========| Each definition below includes a Mars Global Surveyor (MGS) "policy value," which indicates handling of the keyword by the MGS data base. Handling is as follows: |====================================================================| | | | Table 4-1. MGS PDB Policy Values | | | |====================================================================| | Policy Value | MGS Handling | |--------------+-----------------------------------------------------| | A |Keyword is required, but value is not cataloged | |--------------+-----------------------------------------------------| | B |Keyword is required; value must be valid and will be | | |cataloged. | |--------------+-----------------------------------------------------| | C |Keyword is optional; if present, the value will be | | |cataloged. | |--------------+-----------------------------------------------------| | D |Keyword is optional; value is ignored. | |==============|=====================================================| PDS_VERSION_ID= The version of the Planetary Data System for which these data have been prepared (for Magellan and Mars Global Surveyor, set to PDS3 by agreement with PDS). MGS policy value A. FILE_NAME= The file name in the format "DMTGnnnn.fvv" where the components are defined in Section 2.3. MGS policy value C. RECORD_TYPE= The type of record. Set to "FIXED_LENGTH" to indicate that all logical records have the same length. MGS policy value A. RECORD_BYTES= The number of bytes per (fixed-length) record. The number of bytes in an RSDMAP row is an integral multiple of RECORD_BYTES. RECORD_BYTES must be an even number (multiple of 2). MGS policy value A. FILE_RECORDS= The number of records in the RSDMAP file; instance dependent. MGS policy value A. LABEL_RECORDS= The number of records in the RSDMAP label; instance dependent. MGS policy value A. ^IMAGE= Record number at which IMAGE begins. Record counting begins with 1; instance dependent. MGS has no policy values for pointers; pointers are ignored. SPACECRAFT_NAME= Name of the spacecraft. Standard values include "MAGELLAN" and "MARS GLOBAL SURVEYOR". MGS policy value A. TARGET_NAME= Name of the target body for the observations. Standard values include "VENUS" and "MARS". MGS policy value B. INSTRUMENT_NAME= Name of the instrument. Standard values include "RADIO SCIENCE SUBSYSTEM". MGS policy value B. DATA_SET_ID= Identifier for the data set of which this RSDMAP product is a member. Standard values include "MGN-V-RSS-5-GRAVITY-L2-Vn.m" Magellan gravity map from JPL "MGS-M-RSS-5-RSDMAP-L2-Vn.m" Mars Global Surveyor digital maps "Vn.m" indicates the version number of the data set, starting from "V1.0". MGS policy value B. OBSERVATION_TYPE= The general type of the observation and measurement units. Limited to 30 characters. Standard values include "FREE AIR GRAVITY IN MILLIGALS" "TOPOGRAPHY IN KM". MGS policy value D. PRODUCT_ID= A unique identifier for the product within a NASA Flight Project collection of data sets. For Radio Science data, constructed by prepending the characters "RS-" to the FILE_NAME. MGS policy value B. PRODUCT_RELEASE_DATE= The date at which the product may be released by the NASA flight project to the Planetary Data System; entered in the format "YYYY-MM-DD", where components are defined in Section 1.5.4.2. MGS policy value B. DESCRIPTION= A short description of the RSDMAP product. MGS policy value A. START_ORBIT_NUMBER= The lowest orbit number for which data are included in this RSDMAP file. MGS policy value D. STOP_ORBIT_NUMBER= The highest orbit number for which data are included in this RSDMAP file. MGS policy value D. PRODUCT_CREATION_TIME= The time at which this RSDMAP was created; expressed in the format "YYYY-MM- DDThh:mm:ss.fff" where the components are defined in Section 1.5.4.2. MGS policy value B. PRODUCER_FULL_NAME= The name of the person primarily responsible for production of this RSDMAP file. Expressed as a character string, for example "LESLIE R. JONES". MGS policy value D. PRODUCER_INSTITUTION_NAME= The name of the institution primarily responsible for production of this RSDMAP. Standard values include "STANFORD UNIVERSITY" "GODDARD SPACE FLIGHT CENTER" "JET PROPULSION LABORATORY" "CENTRE NATIONAL D'ETUDES SPATIALES" MGS policy value D. PRODUCT_VERSION_TYPE= The version of this RSDMAP. Standard values include "PREDICT", "PRELIMINARY", and "FINAL". MGS policy value D. PRODUCER_ID= The entity responsible for creation of the RSDMAP product. Standard values include "MGS RS TEAM" "MGN GRAVSCI TEAM" MGS policy value B. SOFTWARE_NAME= The name and version number of the program creating this RSDMAP product, represented in the form "ccccccc;Vn.m" where "ccccccc" is the program name and "Vn.m" indicates the version. MGS policy value B. SOURCE_FILE_NAME= The file or files from which this RSDMAP was primarily derived. Expressed in the form "FILE_1" for a single file or "(FILE_1,FILE_2,...)" for several files. MGS policy value D. 4.2.1.2 Data Object Definitions Data Objects in an RSDMAP file are completely specified by the Data Object Definitions which accompany the file. Outlines below illustrate the general structure. Entries "*" are provided by the label generating program based on information supplied elsewhere. Although not shown, each line in the definitions below ends with an ASCII carriage-return (hex 0D) and an ASCII line-feed (hex 0A). 4.2.1.2.1 Image Object Definition The Image Object Definition which accompanies each file completely defines the Digital Map. The Image Object is required in each RSDMAP product. OBJECT = IMAGE LINES = * LINE_SAMPLES = * SAMPLE_TYPE = * SAMPLE_BITS = * BANDS = * BAND_STORAGE_TYPE = * OFFSET = * SCALING_FACTOR = * DESCRIPTION = "The Digital Map contains values of OBSERVATION_TYPE. The values can be obtained by multiplying the sample in the map by SCALING_FACTOR and then adding OFFSET. When BANDS is an even number, the even numbered maps (second, fourth, ...) will be the error maps (one-sigma uncertainty) for the immediately preceding odd-numbered maps (first, third, ...). The uncertainty value can be obtained by multiplying the sample in the error map by SCALING_FACTOR; the OFFSET is not used in these cases." END_OBJECT = IMAGE Keywords are defined in [5]. There is no requirement within this document that there be any relationship among RECORD_BYTES, LINE_SAMPLES, and SAMPLE_BITS other than that the number of bytes in an image line be an integral multiple of RECORD_BYTES (Section 4.2.1.1). It is strongly encouraged, however, that producers of RSDMAP files make the line lengths identically equal to RECORD_BYTES to ensure maximum compatibility with existing image processing software. For compatibility, producers are also encouraged to use 8- or 16-bit integer pixels rather than longer formats. If BANDS is an even number, it is assumed that the even numbered images are error maps (one-sigma uncertainties) for the odd numbered maps. Application of SCALING_FACTOR and OFFSET to the odd- and even-numbered maps differs, as noted in DESCRIPTION. If BANDS is an odd number, it is assumed that error maps have not been included and that the different maps represent different components of a vector quantity (or a scalar if BANDS=1). Multiple images may be interleaved by pixel, line, or image according to BAND_STORAGE_TYPE [6]. 4.2.1.2.2. Image Map Projection Object Definition The Image Map Projection Object Definition specifies the projection for maps in the RSDMAP product. It is used for interpretation of the RSDMAP data; it is not required for understanding the structure of the file. OBJECT = IMAGE_MAP_PROJECTION ^DATA_SET_MAP_PROJECTION = "DSMP.CAT" COORDINATE_SYSTEM_NAME = PLANETOCENTRIC COORDINATE_SYSTEM_TYPE = BODY_FIXED_ROTATING MAP_PROJECTION_TYPE = * A_AXIS_RADIUS = * B_AXIS_RADIUS = * C_AXIS_RADIUS = * FIRST_STANDARD_PARALLEL = * SECOND_STANDARD_PARALLEL = * POSITIVE_LONGITUDE_DIRECTION = * CENTER_LATITUDE = * CENTER_LONGITUDE = * REFERENCE_LATITUDE = * REFERENCE_LONGITUDE = * LINE_FIRST_PIXEL = * LINE_LAST_PIXEL = * SAMPLE_FIRST_PIXEL = * SAMPLE_LAST_PIXEL = * MAP_PROJECTION_ROTATION = * MAP_RESOLUTION = * MAP_SCALE = * MAXIMUM_LATITUDE = * MINIMUM_LATITUDE = * EASTERNMOST_LONGITUDE = * WESTERNMOST_LONGITUDE = * LINE_PROJECTION_OFFSET = * SAMPLE_PROJECTION_OFFSET = * END_OBJECT = IMAGE_MAP_PROJECTION Keywords are defined, and standard values are given, in [5]. 4.2.2. Data SFDU The Data SFDU consists of two parts: the I-label and its associated Length Field and the Data Object itself. The I-label and its Length Field have been defined in Section 4.1; they are considered part of The Label for the RSDMAP and will not be discussed further here. The Data Object is the Image Object, defined in 4.2.1.2.1 and presumed to contain the digital map and its uncertainty (BANDS=2). Each map comprises LINES rows of LINE_SAMPLES pixels; each pixel occupies SAMPLE_BITS bits. Appendix A. Binary Data Format A.1. IEEE Integer Fields 0 7 1-byte (char; uchar) --------- | [0] | --------- 0 15 2-byte (short; ushort) --------- --------- | [0] | [1] | --------- --------- 0 31 4-byte (long; ulong) --------- --------- --------- --------- | [0] | [1] | [2] | [3] | --------- --------- --------- --------- IEEE binary integers are stored in one, two, or four consecutive 8-bit bytes. Unsigned integers uchar, ushort, ulong, which always represent positive values, contain 8, 16, or 32 binary bits, respectively. As illustrated above, the significance increases from the rightmost bit to the leftmost (bit 0). Signed integers (char, short, long) are stored in the same way, except that negative values are formed by taking the corresponding positive value, complementing each bit, then adding unity -- known as "two's complement" format. As a consequence, a negative value always has bit 0 set "on". Integers are written externally in increasing byte-number order, i.e. [0], [1], etc., so that more significant bits always precede less significant ones. For example, the short value -2 is stored as a pair of bytes valued 0xff, 0xfe. A.2. IEEE Floating-Point Fields 0 1 8 9 31 4-byte (float) --------- --------- --------- --------- | | [0] | | [1] | [2] | [3] | --------- --------- --------- --------- 0 1 8 9 31 8-byte (double) --------- --------- --------- --------- | | [0] | | [1] | [2] | [3] | --------- --------- --------- --------- 32 63 --------- --------- --------- --------- | [4] | [5] | [6] | [7] | --------- --------- --------- --------- IEEE single- (double-) precision floating point numbers (known to IEEE enthusiasts as E-type floating-point formats, respectively) are stored in four (eight) consecutive bytes. Bit number 0 contains a sign indicator, S. Bits 1 through 8 (11) contain a binary exponent, E. The significance increases from bit 8 (11) through bit 1. Bits 9 (12) through 31 (63) contain a mantissa M, a 23-bit (52-bit) binary fraction whose binary point lies immediately to the left of bit 9 (12). The significance increases from bit 31 (63) through bit 9 (11). The value of the single-precision field is given by S E-127 (-1) *2 *(1+M) The value of the double-precision field is given by S E-1023 (-1) *2 *(1+M) The numbers are stored externally in increasing byte-number order, i.e. [0], [1], etc. For example, the maximum single-precision float value +3.40282347E+38 is stored as four bytes valued 0x7f, 0x7f, 0xff, 0xff. Special single-precision float values are represented as +Infinity (0x7f800000), -Infinity (0xff800000), quiet NaN (not a number) (0xffffffff), and signaling NaN (0x7f800001). A.3. VAX Integer Fields 0 7 1-byte (char; uchar) --------- | [0] | --------- 0 15 2-byte (short; ushort) --------- --------- | [1] | [0] | --------- --------- 0 31 4-byte (long; ulong) --------- --------- --------- --------- | [3] | [2] | [1] | [0] | --------- --------- --------- --------- VAX binary integers are stored in one, two, or four consecutive 8-bit bytes. Unsigned integers uchar, ushort, and ulong (which always represent positive values) contain 8, 16, or 32 binary bits, respectively. As illustrated above, the significance increases from the rightmost bit to the leftmost (bit 0). Signed integers (char, short, long) are stored in the same way, except that negative values are formed by taking the corresponding positive value, complementing each bit, then adding unity -- known as "two's complement" format. As a consequence, a negative value always has bit 0 set or "on." Integers are written externally in increasing byte-number order, i.e. [0], [1], etc., so that less significant bits always precede more significant ones. For example, the short value -2 is stored as a pair of bytes valued 0xfe, 0xff. (This section has been adapted from a description by P.G. Ford in the Magellan ARCDR SIS). A.4. VAX Floating-Point Fields 0 1 8 9 31 4-byte (float) --------- --------- --------- --------- | | [1] | | [0] | [3] | [2] | --------- --------- --------- --------- 0 1 8 9 31 8-byte (double) --------- --------- --------- --------- | | [1] | | [0] | [3] | [2] | --------- --------- --------- --------- 32 63 --------- --------- --------- --------- | [5] | [4] | [7] | [6] | --------- --------- --------- --------- VAX single- (double-) precision floating point numbers (known to VAX enthusiasts as F-type and D-type floating-point formats, respectively) are stored in four (eight) consecutive bytes. Bit number 0 contains a sign indicator, S. Bits 1 through 8 contain a binary exponent, E. The significance increases from bit 8 through bit 1. Bits 9 through 31 (63) contain a mantissa M, a 23-bit (55-bit) binary fraction whose binary point lies immediately to the left of bit 9. The significance increases from bit 31 (63) through bit 9. The value of the field is given by S E-129 (-1) *2 *(1+M) The numbers are stored externally in increasing byte-number order, i.e. [0], [1], etc. For example, the float value +1.0 is stored as four bytes valued 0x80, 0x40, 0x00, 0x00. (This section has been adapted from a description by P.G. Ford in the Magellan ARCDR SIS). Appendix B. Example RSDMAP Label and Data Object B.1 Example Label The following is an example Label for a Radio Science Digital Map (RSDMAP) File. In the next section, an example data object is shown CCSD3ZF0000100000001NJPL3KS0PDSX##mark## /* File information */ PDS_VERSION_ID = PDS3 FILE_NAME = "DMOJV60I.B01" RECORD_TYPE = FIXED_LENGTH RECORD_BYTES = 2880 FILE_RECORDS = 362 LABEL_RECORDS = 2 ^IMAGE = 3 SPACECRAFT_NAME = "MAGELLAN" TARGET_NAME = "VENUS" INSTRUMENT_NAME = "RADIO SCIENCE SUBSYSTEM" DATA_SET_ID = "MGN-V-RSS-5-GRAVITY-L2-V1.0" OBSERVATION_TYPE = "GEOID IN METERS" PRODUCT_ID = "RS-DMOJV60I.B01" PRODUCT_RELEASE_DATE = 1993-11-15 DESCRIPTION = "This file contains a digital map of Venus geoid derived from radio tracking of the Magellan spacecraft. The map is produced by the Magellan Gravity Science Team at JPL under the direction of W.L. Sjogren." START_ORBIT_NUMBER = 5758 STOP_ORBIT_NUMBER = 7620 PRODUCT_CREATION_TIME = 1993-11-04T12:34:56.789 PRODUCER_FULL_NAME = "WILLIAM L. SJOGREN" PRODUCER_INSTITUTION_NAME = "JET PROPULSION LABORATORY" PRODUCT_VERSION_TYPE = "PRELIMINARY" PRODUCER_ID = "MGN GRAVSCI TEAM" SOFTWARE_NAME = "GRVMAP;V1.0" SOURCE_FILE_NAME = "SHGJV60I.A01" /* Structure Objects */ OBJECT = IMAGE LINES = 180 LINE_SAMPLES = 360 SAMPLE_TYPE = "IEEE REAL" SAMPLE_BITS = 64 BANDS = 2 BAND_STORAGE_TYPE = "BAND SEQUENTIAL" OFFSET = 0.0E+00 SCALING_FACTOR = 1.0E+00 DESCRIPTION = "The Digital Map contains values of OBSERVATION_TYPE. The values can be obtained by multiplying the sample in the map by SCALING_FACTOR and then adding OFFSET. When BANDS is an even number, the even numbered maps (second, fourth, ...) will be the error maps (one-sigma uncertainty) for the immediately preceding odd-numbered maps (first, third, ...). The uncertainty value can be obtained by multiplying the sample in the error map by SCALING_FACTOR; the OFFSET is not used in these cases." END_OBJECT = IMAGE OBJECT = IMAGE_MAP_PROJECTION ^DATA_SET_MAP_PROJECTION = "DSMP.CAT" COORDINATE_SYSTEM_NAME = PLANETOCENTRIC COORDINATE_SYSTEM_TYPE = BODY_FIXED_ROTATING MAP_PROJECTION_TYPE = "SIMPLE CYLINDRICAL" A_AXIS_RADIUS = 6051.0 B_AXIS_RADIUS = 6051.0 C_AXIS_RADIUS = 6051.0 FIRST_STANDARD_PARALLEL = "N/A" SECOND_STANDARD_PARALLEL = "N/A" POSITIVE_LONGITUDE_DIRECTION = "EAST" CENTER_LATITUDE = 0.0 CENTER_LONGITUDE = 59.5 REFERENCE_LATITUDE = 0.0 REFERENCE_LONGITUDE = 0.0 LINE_FIRST_PIXEL = 1 LINE_LAST_PIXEL = 180 SAMPLE_FIRST_PIXEL = 1 SAMPLE_LAST_PIXEL = 360 MAP_PROJECTION_ROTATION = 0.0 MAP_RESOLUTION = 1.0E+00 MAP_SCALE = "N/A" MAXIMUM_LATITUDE = 89.5 MINIMUM_LATITUDE = -89.5 EASTERNMOST_LONGITUDE = 239.0 WESTERNMOST_LONGITUDE = -120.0 LINE_PROJECTION_OFFSET = 89.5 SAMPLE_PROJECTION_OFFSET = 120.0 END_OBJECT = IMAGE_MAP_PROJECTION END CCSD$$MARKER##mark##NJPL3IF000 4000000001 B.2 Example Data Object The example below shows part of a data object (Digital Map and Digital Error Map) corresponding to The Label shown in B.1. The data object is shown in hexadecimal format. 0000000 c041 9333 3333 3333 c041 90a3 d70a 3d71 0000020 c041 8e14 7ae1 47ae c041 8b85 1eb8 51ec 0000040 c041 88f5 c28f 5c29 c041 87ae 147a e148 0000060 c041 851e b851 eb85 c041 828f 5c28 f5c3 0000100 c041 8000 0000 0000 c041 7eb8 51eb 851f 0000120 c041 7c28 f5c2 8f5c c041 7999 9999 999a 0000140 c041 7851 eb85 1eb8 c041 75c2 8f5c 28f6 0000160 c041 747a e147 ae14 c041 7333 3333 3333 0000200 c041 70a3 d70a 3d71 c041 6f5c 28f5 c28f . . . 3750440 4013 46a7 ef9d b22d 4013 46a7 ef9d b22d * 3750500 4013 46a7 ef9d b22d 4013 45a1 cac0 8312 3750520 4013 45a1 cac0 8312 4013 45a1 cac0 8312 * 3750560 4013 45a1 cac0 8312 4013 449b a5e3 53f8 3750600 4013 449b a5e3 53f8 4013 449b a5e3 53f8 * 3750660 4013 4395 8106 24dd 4013 4395 8106 24dd * 3751000