private StructureDataIterator readNextMessage() throws IOException { if (!messIter.hasNext()) return null; Message m = messIter.next(); ArrayStructure as; if (m.dds.isCompressed()) { MessageCompressedDataReader reader = new MessageCompressedDataReader(); as = reader.readEntireMessage(construct.recordStructure, protoMessage, m, raf, null); } else { MessageUncompressedDataReader reader = new MessageUncompressedDataReader(); as = reader.readEntireMessage(construct.recordStructure, protoMessage, m, raf, null); } if (addTime) addTime(as); return as.getStructureDataIterator(); }
public void readAll(boolean dump) throws IOException, InvalidRangeException { Formatter f = new Formatter(System.out); for (Message m : msgs) { Array data; if (!m.dds.isCompressed()) { MessageUncompressedDataReader reader = new MessageUncompressedDataReader(); data = reader.readEntireMessage(construct.recordStructure, protoMessage, m, raf, null); } else { MessageCompressedDataReader reader = new MessageCompressedDataReader(); data = reader.readEntireMessage(construct.recordStructure, protoMessage, m, raf, null); } if (dump) NCdumpW.printArray(data, "test", new PrintWriter(System.out), null); } }
private ArrayStructure readMessage(Message m) throws IOException { ArrayStructure as; if (m.dds.isCompressed()) { MessageCompressedDataReader reader = new MessageCompressedDataReader(); as = reader.readEntireMessage(obsStructure, protoMessage, m, raf, null); } else { MessageUncompressedDataReader reader = new MessageUncompressedDataReader(); as = reader.readEntireMessage(obsStructure, protoMessage, m, raf, null); } return as; }
public int calcTotalBits(Formatter out) { try { if (!dds.isCompressed()) { MessageUncompressedDataReader reader = new MessageUncompressedDataReader(); reader.readData(null, this, raf, null, false, out); } else { MessageCompressedDataReader reader = new MessageCompressedDataReader(); reader.readData(null, this, raf, null, out); } } catch (IOException ioe) { return 0; } return msg_nbits; }
private StructureDataIterator readProtoMessage() throws IOException { Message m = protoMessage; ArrayStructure as; if (m.dds.isCompressed()) { MessageCompressedDataReader reader = new MessageCompressedDataReader(); as = reader.readEntireMessage(obsStructure, protoMessage, m, raf, null); } else { MessageUncompressedDataReader reader = new MessageUncompressedDataReader(); as = reader.readEntireMessage(obsStructure, protoMessage, m, raf, null); } return as.getStructureDataIterator(); }
public int calcTotalBits(Formatter out) { try { if (!dds.isCompressed()) { MessageUncompressedDataReader reader = new MessageUncompressedDataReader(); reader.readData(null, this, raf, null, false, out); } else { MessageCompressedDataReader reader = new MessageCompressedDataReader(); reader.readData(null, this, raf, null, out); } } catch (IOException ioe) { return 0; } return msg_nbits; /* boolean compressed = dds.isCompressed(); try { getRootDataDescriptor(); // make sure root has been done if (compressed) return countBitsCompressed(out); // compressed else return countBitsUncompressed(out); // varLength } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e.getMessage()); } */ }
public void compare(Structure obs) throws IOException, InvalidRangeException { int start = 0; for (Message m : msgs) { Array data1; if (!m.isTablesComplete()) continue; if (!m.dds.isCompressed()) { MessageUncompressedDataReader reader = new MessageUncompressedDataReader(); data1 = reader.readEntireMessage(construct.recordStructure, protoMessage, m, raf, null); } else { MessageCompressedDataReader reader = new MessageCompressedDataReader(); data1 = reader.readEntireMessage(construct.recordStructure, protoMessage, m, raf, null); } int n = m.getNumberDatasets(); m.calcTotalBits(null); Array data2 = obs.read(new Section().appendRange(start, start + n - 1)); CompareNetcdf2 cn = new CompareNetcdf2( new Formatter(System.out), true, true, true); cn.compareData("all", data1, data2, true); start += n; } }
private void read2() throws IOException { Message proto = messages.get(0); BufrConfig config = BufrConfig.openFromMessage(raf, proto, null); Construct2 construct = new Construct2(proto, config, new NetcdfFileSubclass()); Sequence obs = construct.getObsStructure(); seq2 = (Structure) obs.findVariable("seq2"); seq3 = (Structure) obs.findVariable("seq3"); seq4 = (Structure) seq3.findVariable("seq4"); // read all the messages ArrayStructure data; for (Message m : messages) { if (!m.dds.isCompressed()) { MessageUncompressedDataReader reader = new MessageUncompressedDataReader(); data = reader.readEntireMessage(obs, proto, m, raf, null); } else { MessageCompressedDataReader reader = new MessageCompressedDataReader(); data = reader.readEntireMessage(obs, proto, m, raf, null); } while ( data.hasNext()) { StructureData sdata = (StructureData) data.next(); add(sdata); } } }
static void scanReader(String filein) throws IOException { Formatter f = new Formatter(System.out); try (RandomAccessFile raf = new RandomAccessFile(filein, "r")) { MessageScanner scan = new MessageScanner(raf); while (scan.hasNext()) { Message m = scan.next(); m.dumpHeader(out); if (!m.dds.isCompressed()) { MessageUncompressedDataReader reader = new MessageUncompressedDataReader(); reader.readData(null, m, raf, null, false, null); } else { MessageCompressedDataReader reader = new MessageCompressedDataReader(); reader.readData(null, m, raf, null, f); } int nbitsGiven = 8 * (m.dataSection.getDataLength() - 4); System.out.printf("nbits counted = %d expected=%d %n", m.msg_nbits, nbitsGiven); System.out.printf("nbytes counted = %d expected=%d %n", m.getCountedDataBytes(), m.dataSection.getDataLength()); if (m.isTablesComplete() && !m.isBitCountOk()) System.out.printf("BAD BIT COUNT %n%n"); } } }