Package ucar.nc2.iosp.bufr
Class MessageUncompressedDataReader
- java.lang.Object
-
- ucar.nc2.iosp.bufr.MessageUncompressedDataReader
-
public class MessageUncompressedDataReader extends Object
Read data for uncompressed messages. Within one message there are n obs (datasets) and s fields in each dataset. For uncompressed datasets, storage order is data(obs, fld) (fld varying fastest) : R11, R12, R13, . . . R1s R21, R22, R23, . . . R2s .... Rn1, Rn2, Rn3, . . . Rns where Rij is the jth value of the ith data subset. the datasets each occupy an identical number of bits, unless delayed replication is used, and are not necessarily aligned on octet boundaries. A replicated field (structure) takes a group of fields and replicates them: Ri1, (Ri2, Ri3)*r, . . . Ris where r is set in the data descriptor, and is the same for all datasets. A delayed replicated field (sequence) takes a group of fields and replicates them, and adds the number of replications in the data : Ri1, dri, (Ri2, Ri3)*dri, . . . Ris where the width (nbits) of dr is set in the data descriptor. This dr can be different for each dataset in the message. It can be 0. When it has a bit width of 1, it indicates an optional set of fields. -------------------------- We use an ArrayStructureBB to hold the data, and fill it sequentially as we scan the message. Fixed length nested Structures are kept in the ArrayStructureBB. Variable length objects (Strings, Sequences) are added to the heap.
-
-
Constructor Summary
Constructors Constructor Description MessageUncompressedDataReader()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
readData(ArrayStructureBB abb, Message m, RandomAccessFile raf, Range r, boolean addTime, Formatter f)
Read some or all datasets from a single message
-
-
-
Method Detail
-
readData
public int readData(ArrayStructureBB abb, Message m, RandomAccessFile raf, Range r, boolean addTime, Formatter f) throws IOException
Read some or all datasets from a single message- Parameters:
abb
- place data into here in order (may be null)m
- read this messageraf
- from this filer
- which datasets, relative to this message. null == all.addTime
- add the time coordinatef
- output bit count debugging info (may be null)- Returns:
- number of datasets read
- Throws:
IOException
- on read error
-
-