private void processBufrMessageAsDataset(MessageScanner scan, Message m, Counter counter) throws Exception { byte[] mbytes = scan.getMessageBytes(m); NetcdfFile ncfile = NetcdfFile.openInMemory("test", mbytes, "ucar.nc2.iosp.bufr.BufrIosp"); Sequence obs = (Sequence) ncfile.findVariable(BufrIosp2.obsRecord); StructureDataIterator sdataIter = obs.getStructureIterator(-1); processSequence(obs, sdataIter, counter); }
private void processBufrMessageAsDataset(MessageScanner scan, Message m, Counter counter) throws Exception { byte[] mbytes = scan.getMessageBytes(m); NetcdfFile ncfile = NetcdfFile.openInMemory("test", mbytes, "ucar.nc2.iosp.bufr.BufrIosp"); Sequence obs = (Sequence) ncfile.findVariable(BufrIosp.obsRecord); StructureDataIterator sdataIter = obs.getStructureIterator(-1); processSequence(obs, sdataIter, counter); }
private void processBufrMessageAsDataset(MessageScanner scan, Message m) throws Exception { byte[] mbytes = scan.getMessageBytes(m); NetcdfFile ncfile = NetcdfFile.openInMemory("test", mbytes, "ucar.nc2.iosp.bufr.BufrIosp"); NetcdfDataset ncd = new NetcdfDataset(ncfile); SequenceDS obs = (SequenceDS) ncd.findVariable(BufrIosp.obsRecord); StructureDataIterator sdataIter = obs.getStructureIterator(-1); //writeSequence(obs, sdataIter); extractFirst(sdataIter, new Extract()); }
public void execute(String filename) throws IOException { try (RandomAccessFile mraf = new RandomAccessFile(filename, "r")) { MessageScanner scanner = new MessageScanner(mraf); while (scanner.hasNext()) { Message m = scanner.next(); if (m == null) continue; total_msgs++; if (m.getNumberDatasets() == 0) continue; // LOOK check on tables complete etc ?? m.setRawBytes(scanner.getMessageBytes(m)); // decide what to do with the message dispatcher.dispatch(m); } dispatcher.resetBufrTableMessages(); } }
private boolean scanBufrFile(String filename) throws IOException, IllegalAccessException, InstantiationException, ClassNotFoundException { int count = 0; try (RandomAccessFile raf = new RandomAccessFile(filename, "r")) { MessageScanner scan = new MessageScanner(raf); while (scan.hasNext()) { Message m = scan.next(); if (m == null) continue; byte[] mbytes = scan.getMessageBytes(m); try( NetcdfFile ncfile = NetcdfFile.openInMemory("test", mbytes, "ucar.nc2.iosp.bufr.BufrIosp2")) { NetcdfDataset ncd = new NetcdfDataset(ncfile); } } } return true; }