attribute_files.txt


For data processed through NSSDC's Y2K-developed DIOnAS software, NSSDC 
provides directories for holding attribute files that are companions to the 
associated data files.  An 'attribute' (sometimes 'attrib') directory is 
provided in the same directory that contains a given set of data files.  
The files in the 'attribute' directory have the same names as the data 
files, but with a '.att' extension, so they can be easily paired with their 
data files.

An attribute file, together with its corresponding data file, constitutes 
an NSSDC Archival Information Package (AIP).  NSSDC AIPs facilitate the 
long term preservation of archived information and are independent of the 
underlying media types, including file structures.  This is achieved by 
incorporating a set of key attributes into the attribute file to support a 
number of functions.  These include identification of the type of attribute 
object and its version, a unique identifier of the AIP assigned under the 
auspices of the NSSDC archive, and a checksum over the remaining 
attributes.

The remaining attributes are broken into three groups referred to as 
"Original_Stream_Structure", "Canonical_Stream_Structure", and 
"Supporting_Attributes".  The Original_Stream Structure attributes provide 
a view of the data as received by NSSDC, or as originally held by NSSDC in 
its VMS based system called NDADS.  These attributes identify such things 
as whether the data contained binary values, the date they were created or 
stored on NDADS, the originating operating system, the file and record 
organization if it was known by the original file system (e.g., known by 
VMS),  the size of the original data file in bytes, the original file name, 
and a checksum over this original file.

The Canonical_Stream_Structure attributes provide a view of the data as it 
is now being archived by NSSDC.  These data, as a byte stream, may be 
identical to the original byte stream, or they may have undergone a re-
packaging such as would be needed to capture record boundary information 
formerly held by an underlying file system (e.g., some VMS files).  This 
resulting byte stream is referred to as the canonical stream and these data 
are found in the companion data file identified above.  These attributes 
identify such things as whether the canonical data file (stream) contains 
binary values, the type of record delimiter used (if any), the size of the 
stream in bytes, maximum record size (if available from the original file), 
a checksum over this stream, a recommended file name to use for this 
stream, the date and time of generation of this canonical stream, and an 
internationally unique identifier, registered with the NSSDC Control 
Authority Office, for a description of the format and content of this 
stream.

The Supporting_Attributes provide a few additional pieces of information 
thought to be useful when available.  These includes values associated with 
the storage of the original file in the NDADS system, where applicable, and 
a list of possible encoding that have been applied to the data, such as 
'gzip' and 'tar', as the data were put into canonical form.

An example attribute object (or file), which is implemented in the 
CCSDS/ISO standard known as Parameter Value Language  (or ISO 14961) is as 
follows:

BEGIN_OBJECT = NSSDC_ATTRIBUTE_OBJECT;
   OBJECT_TYPE_VERSION = "1";
   BEGIN_OBJECT = PACKAGE_IDENTIFICATION;
      ARCHIVAL_STORAGE_ID = "NSDC0000000036";
      PRIMARY_COLLECTION_ID = "73-078A-01M";
      CRC_TYPE = "NSSDC_A:V0";
      ATTRIBUTE_OBJECT_CRC = "65914f8c"; /* hex format, covers all 
following complete PVL objects */
   END_OBJECT = PACKAGE_IDENTIFICATION;

   BEGIN_OBJECT = STREAM_STRUCTURE;
      BEGIN_OBJECT = ORIGINAL_STREAM_STRUCTURE;
         STREAM_TYPE = "7-BIT ASCII";
         ORIGINATING_SYSTEM = "VMS: OpenVMS Alpha OS, Version V6.2-1H3";
         DATE_TIME_CREATED = "2000-08-21T13:20:00.62";
         DATE_TIME_LAST_MODIFIED = "2000-08-21T13:20:01.25";
         FILE_ORGANIZATION = "sequential";
         RECORD_FORMAT = "variable";
         RECORD_CONTROL = "carriage_control";
         STREAM_SIZE_BYTES = "616668";
         MAXIMUM_RECORD_LENGTH_BYTES = "0";
         FILE_NAME = "IMP8_770102.MAG15_ASCII";
         CRC_TYPE  = "NSSDC_A:V0";
         CRC = "3532541a"; /* hex format */
         DATE_TIME_OF_ATTRIBUTE_VALUE_CAPTURE = "2000-08-22T18:26:44";
      END_OBJECT = ORIGINAL_STREAM_STRUCTURE;
      BEGIN_OBJECT = CANONICAL_STREAM_STRUCTURE;
         STREAM_TYPE = "7-BIT ASCII";
         STREAM_RECORD_DELIMITER = "CR-LF";
         STREAM_SIZE_BYTES = "625872";
         MAXIMUM_RECORD_LENGTH_BYTES = "136";
         CRC_TYPE = "NSSDC_A:V0";
         CRC = "6358325b"; /* hex format */
         RECOMMENDED_FILE_NAME = "1977002_imp8_mag_15s.asc";
         PROCESSING_REPORT = "FGET_FN-P_VCA PASS: found carriage control 
with variable records";
         DATE_TIME_OF_GENERATION = "2000-08-22T18:26:44";
         FORMAT_IDENTIFIER = "NSSD0346";
      END_OBJECT = CANONICAL_STREAM_STRUCTURE;
   END_OBJECT = STREAM_STRUCTURE;

   BEGIN_OBJECT = SUPPORTING_ATTRIBUTES;
      ORDERED_APPLIED_ENCODINGS = "NONE"; /* example:  (base64, gzip) */
      NDADS_VMS_PROJECT_ID = "IMP8"; /* default is 'NONE' */
      NDADS_VMS_DATATYPE = "MAG15_ASCII";
      NDADS_VMS_ENTRY_ID = "19770102";
      NDADS_VMS_SUPER_ENTRY_ID = "";
      DATA_BEGIN_DATE_TIME = "1977-01-02T00:00:00.000";
      DATA_END_DATE_TIME = "n/a";
   END_OBJECT = SUPPORTING_ATTRIBUTES;
END_OBJECT = NSSDC_ATTRIBUTE_OBJECT;

A complete and formal definition of the attribute file structure and 
meaning is under development.