Contains top level objects for interperating and accessing PDS data.

The top level class for reading any pds files is PdsVolume. Typically to read a product one calls PdsVolume.getProduct(). All PdsProducts, once parsed, have one or more PdsFile objects, as well as product level elements, such as PDS_VERSION_ID.

Note that you do not have to have an instantiated PdsVolume to read a product. Here is an example of reading an individual PDS product:

PdsProduct prod = new PdsProduct("file:///home/user/VGPW_1001/DATA/P7/V1P7_014/C2840541.LBL")
PdsFile file = prod.getFile(); //Works if only one file in product
PdsSeries series = (PdsSeries) file.getObject("TIME_SERIES");
PdsColumn col = series.getCol("WAVEFORM_SAMPLES");

// Tell me about this data:
String sDescription = col.getDescription();

// Read through the rows
for(int i; i < series.rows(); i++){

   Array<int> values = col.getIntAry(i);

   // Do something with values ...
}

Conformance Tracking Principles (Not Yet Implemented)

  1. Each obj takes an optional argument of type PdsStructRules in it's constructor, if not supplied uses the builtin version
  2. Volume keeps track of alternate PdsStructRules, passes them down as required?

    --or--

    PdsObj checks for alternate rules?
  3. Volume can be place in "auto-adjust" mode.
  4. Data Product Alternate rules tracked by DATA_SET_ID.
  5. The library offers a nice way to print a report of non-conformances.