@Override public PointFeatureIterator getPointFeatureIterator() throws IOException { return new BufrStationIterator(obs.getStructureIterator(), null); }
@Override public PointFeatureIterator getPointFeatureIterator() throws IOException { return new BufrRecordIterator(obs.getStructureIterator(), filter); }
StructureDataIterator sdataIter = obs.getStructureIterator(-1);
StructureDataIterator sdataIter = obs.getStructureIterator(-1);
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()); }
@Ignore("cant deal with BUFR at the moment") @Test public void testNestedTableEnhanced() throws IOException, InvalidRangeException { String filename = TestDir.cdmLocalTestDataDir + "dataset/nestedTable.bufr"; try (NetcdfFile ncfile = ucar.nc2.dataset.NetcdfDataset.openDataset(filename)) { logger.debug("Open {}", ncfile.getLocation()); SequenceDS outer = (SequenceDS) ncfile.findVariable(BufrIosp2.obsRecord); assert outer != null; try (StructureDataIterator iter = outer.getStructureIterator()) { StructureData data = null; if (iter.hasNext()) data = iter.next(); assert data != null; assert Double.isNaN(data.getScalarFloat("Latitude_coarse_accuracy")); ArrayStructure as = data.getArrayStructure("Geopotential"); assert as != null; Assert2.assertNearlyEquals(as.getScalarFloat(0, as.findMember("Wind_speed")), 6.1); } } } }