/* /* This is a sample PDS label file, with running commentary. /* /* Syntax remarks: /* o Comments begin with '/*' and run until the end of the line /* o It is not required that the '=' align; that was done for /* readability /* o There can be only one assignment statement on a line, but a /* single assignment can run over more than one line. /* o The entire label is written in ODL (Object Definition Language), /* which is case-insensitive (except within double-quoted strings). /* Note, however, that PDS requires labels and catalog files to be /* all in upper-case, except for description fields within double /* quotes. /* /* This file has also been padded out to 80-byte fixed-length records with /* carriage-return + linefeed record delimiters. /* /* /* First, the standards identifiers. The required PDS_VERSION_ID indicates /* which major version of the PDS standards was used to create the label /* and data files. /* PDS_VERSION_ID = PDS3 /* /* Next come the file characteristics. RECORD_FORMAT is optional. /* RECORD_TYPE = FIXED_LENGTH RECORD_BYTES = 108 FILE_RECORDS = 6259 RECORD_FORMAT = "(I5,1X,A16,1X,A10,3X,I5,1X,A16,1X,A10,3X,I5,1X,A16,1X,A10)" /* /* Now the pointer to the actual data, which is not contained in this /* file. It is also possible to point into the middle of a data file. /* This is useful when there is some other attached header on the data /* which is not to be incorporated into the official PDS file set (an /* attached FITS header, for example). /* /* In this case there is only one pointer because only one data structure /* is being described. Sometimes one label will point to several objects /* and contain an equal number of OBJECT definitions. There might. for /* example, be both an image and a flat field in the same data file. /* ^TABLE = "ASTNAMES.TAB" /* /* Identification keywords. The first is the DATA_SET_ID which is used to /* tie together various files from the same mission. The format for the /* DATA_SET_ID value is described in the "PDS Standard Reference", Chapter 6. /* DATA_SET_ID = "EAR-A-5-DDR-ASTNAMES-V3.0" TARGET_ID = ASTEROID PRODUCT_CREATION_TIME = 1995-03-31 START_TIME = 1801-01-01 STOP_TIME = 1995-02-15 /* /* Next would come observational parameters germane to only this file. /* However, this is the only file in the dataset, so we go straight on /* to the data structure definition: /* OBJECT = TABLE ROWS = 6259 ROW_BYTES = 108 INTERCHANGE_FORMAT = ASCII COLUMNS = 9 /* These keywords indicate that the file contains an ASCII table with /* 6,200+ rows of 108 bytes each (which includes the 2-byte record /* delimiter). There are 9 fields in each row. The DESCRIPTION field /* following contains information about the table itself. DESCRIPTION = " Asteroid names and principle provisional designations. For purposes of sorting alphabetically, the ASCII collating sequence was used. Space characters (example: The NORC) and punctuation (example: A'Hearn) were regarded as significant during the sort procedure. Case was not regarded as significant. For purposes of sorting by designation, chronological order was used; that is, 1929 RO precedes 1929 RB1. Palomar-Leiden and Trojan survey designations are grouped separately. Old style designations (pre-1925) are not included in the list. Due to the limitations of the ASCII character set, diacritical marks are lost in this machine-readable form. This version of the file contains the names and/or designations for all asteroids numbered as of the 1995 Feb 15 batch of Minor Planet Circulars and includes 6259 entries. David J. Tholen 1995 February 20 " /* A TABLE is viewed as being composed of a series of COLUMNs. So, /* the TABLE object definition contains a series of COLUMN object /* definitions, one for each field. /* /* Note that each COLUMN definition also includes structural /* information like START_BYTE (which is 1-based) as well as /* logical definitions (in the NAME and DESCRIPTION fields). OBJECT = COLUMN NAME = "ASTEROID_ID_NUM_SORT" COLUMN_NUMBER = 1 DESCRIPTION = "Asteroid number, sorted by this field" DATA_TYPE = ASCII_INTEGER START_BYTE = 1 BYTES = 5 FORMAT = I5 END_OBJECT = COLUMN OBJECT = COLUMN NAME = "ASTEROID_NAME_NUM_SORT" COLUMN_NUMBER = 2 DESCRIPTION = "Asteroid name corresponding to sorted number" DATA_TYPE = CHARACTER START_BYTE = 7 BYTES = 16 FORMAT = A16 END_OBJECT = COLUMN OBJECT = COLUMN NAME = "ASTEROID_PROV_DESIGNATION_NUM_SORT" COLUMN_NUMBER = 3 DESCRIPTION = "Provisional designation corresponding to sorted number" DATA_TYPE = CHARACTER START_BYTE = 24 BYTES = 10 FORMAT = A10 END_OBJECT = COLUMN OBJECT = COLUMN NAME = "ASTEROID_ID_ALPHA_SORT" COLUMN_NUMBER = 4 DESCRIPTION = "Asteroid number corresponding to sorted name" DATA_TYPE = ASCII_INTEGER START_BYTE = 37 BYTES = 5 FORMAT = I5 END_OBJECT = COLUMN OBJECT = COLUMN NAME = "ASTEROID_NAME_ALPHA_SORT" COLUMN_NUMBER = 5 DESCRIPTION = "Asteroid name, sorted on this field" DATA_TYPE = CHARACTER START_BYTE = 43 BYTES = 16 FORMAT = A16 END_OBJECT = COLUMN OBJECT = COLUMN NAME = "ASTEROID_PROV_DESIGNATION_ALPHA_SORT" COLUMN_NUMBER = 6 DESCRIPTION = "Provisional designation corresponding to sorted name" DATA_TYPE = CHARACTER START_BYTE = 60 BYTES = 10 FORMAT = A10 END_OBJECT = COLUMN OBJECT = COLUMN NAME = "ASTEROID_ID_DESIG_SORT" COLUMN_NUMBER = 7 DESCRIPTION = "Ast. number corresponding to sorted prov. designation" DATA_TYPE = ASCII_INTEGER START_BYTE = 73 BYTES = 5 FORMAT = I5 END_OBJECT = COLUMN OBJECT = COLUMN NAME = "ASTEROID_NAME_DESIG_SORT" COLUMN_NUMBER = 8 DESCRIPTION = "Asteroid name corresponding to sorted prov. designation" DATA_TYPE = CHARACTER START_BYTE = 79 BYTES = 16 FORMAT = A16 END_OBJECT = COLUMN OBJECT = COLUMN NAME = "ASTEROID_PROV_DESIGNATION_DESIG_SORT" COLUMN_NUMBER = 9 DESCRIPTION = "provisional designation, sorted on this field" DATA_TYPE = CHARACTER START_BYTE = 96 BYTES = 10 FORMAT = A10 END_OBJECT = COLUMN END_OBJECT = TABLE END