public StructureDataIterator getStructureIterator(int bufferSize) throws java.io.IOException { return new StructureDataConverter(this, orgSeq.getStructureIterator(bufferSize)); }
public StructureDataIterator getStructureIterator(int bufferSize) throws java.io.IOException { return new StructureDataConverter(this, orgSeq.getStructureIterator(bufferSize)); }
public StructureDataIterator getStructureIterator(int bufferSize) throws java.io.IOException { return new StructureDataConverter(this, orgSeq.getStructureIterator(bufferSize)); }
static private void stnDuplicates(String filename, Set<Integer> stns, boolean wantDups) throws IOException { System.out.printf("%s%n", filename); int count = 0; int countDups = 0; NetcdfFile ncfile = open(filename); Sequence seq = (Sequence) ncfile.findVariable(STNS); try (StructureDataIterator iter = seq.getStructureIterator(-1)) { while (iter.hasNext()) { count++; StructureData sdata = iter.next(); StructureMembers.Member m = sdata.findMember(STNID); int stnid = sdata.getScalarInt(m); if (stns.contains(stnid)) { countDups++; if (!wantDups) System.out.printf(" dup %d%n", stnid); } else { stns.add(stnid); if (wantDups) System.out.printf(" dup %d%n", stnid); } } } System.out.printf(" counts=%d dups=%d%n", count, countDups); }
static private void readData(String filename) throws IOException { long start = System.currentTimeMillis(); System.out.printf("%s%n", filename); int balony = 0; try (NetcdfFile ncfile = open(filename)) { Sequence seq = (Sequence) ncfile.findVariable(RECORD); try (StructureDataIterator iter = seq.getStructureIterator(-1)) { while (iter.hasNext()) { StructureData sdata = iter.next(); StructureMembers.Member m = sdata.findMember(YEAR); balony += sdata.getScalarInt(m); /* StructureMembers sm = sdata.getStructureMembers(); for (StructureMembers.Member m : sm.getMembers()) { Array data = sdata.getArray(m); balony += data.getSize(); } */ } } } long took = System.currentTimeMillis() - start; System.out.printf("DONE %d == %d msecs%n", balony, took); }
static private void stnDuplicates(String filename, Set<Integer> stns, boolean wantDups) throws IOException { System.out.printf("%s%n", filename); int count = 0; int countDups = 0; NetcdfFile ncfile = open(filename); Sequence seq = (Sequence) ncfile.findVariable(STNS); StructureDataIterator iter = seq.getStructureIterator(-1); try { while (iter.hasNext()) { count++; StructureData sdata = iter.next(); StructureMembers.Member m = sdata.findMember(STNID); int stnid = sdata.getScalarInt(m); if (stns.contains(stnid)) { countDups++; if (!wantDups) System.out.printf(" dup %d%n", stnid); } else { stns.add(stnid); if (wantDups) System.out.printf(" dup %d%n", stnid); } } } finally { iter.finish(); } System.out.printf(" counts=%d dups=%d%n", count, countDups); }
static private void stnDuplicates(String filename, Set<Integer> stns, boolean wantDups) throws IOException { System.out.printf("%s%n", filename); int count = 0; int countDups = 0; NetcdfFile ncfile = open(filename); Sequence seq = (Sequence) ncfile.findVariable(STNS); StructureDataIterator iter = seq.getStructureIterator(-1); try { while (iter.hasNext()) { count++; StructureData sdata = iter.next(); StructureMembers.Member m = sdata.findMember(STNID); int stnid = sdata.getScalarInt(m); if (stns.contains(stnid)) { countDups++; if (!wantDups) System.out.printf(" dup %d%n", stnid); } else { stns.add(stnid); if (wantDups) System.out.printf(" dup %d%n", stnid); } } } finally { iter.finish(); } System.out.printf(" counts=%d dups=%d%n", count, countDups); }
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, 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); }
static private void readData(String filename) throws IOException { long start = System.currentTimeMillis(); System.out.printf("%s%n", filename); int balony = 0; NetcdfFile ncfile = open(filename); Sequence seq = (Sequence) ncfile.findVariable(RECORD); StructureDataIterator iter = seq.getStructureIterator(-1); try { while (iter.hasNext()) { StructureData sdata = iter.next(); StructureMembers.Member m = sdata.findMember(YEAR); balony += sdata.getScalarInt(m); /* StructureMembers sm = sdata.getStructureMembers(); for (StructureMembers.Member m : sm.getMembers()) { Array data = sdata.getArray(m); balony += data.getSize(); } */ } } finally { iter.finish(); } long took = System.currentTimeMillis() - start; System.out.printf("DONE %d == %d msecs%n", balony, took); }
static private void readData(String filename) throws IOException { long start = System.currentTimeMillis(); System.out.printf("%s%n", filename); int balony = 0; try (NetcdfFile ncfile = open(filename)) { Sequence seq = (Sequence) ncfile.findVariable(RECORD); StructureDataIterator iter = seq.getStructureIterator(-1); try { while (iter.hasNext()) { StructureData sdata = iter.next(); StructureMembers.Member m = sdata.findMember(YEAR); balony += sdata.getScalarInt(m); /* StructureMembers sm = sdata.getStructureMembers(); for (StructureMembers.Member m : sm.getMembers()) { Array data = sdata.getArray(m); balony += data.getSize(); } */ } } finally { iter.finish(); } } long took = System.currentTimeMillis() - start; System.out.printf("DONE %d == %d msecs%n", balony, took); }
private void scanBufrFile(RandomAccessFile raf) throws Exception { NetcdfFile ncd = null; countObs = 0; try { MessageScanner scanner = new MessageScanner(raf); Message protoMessage = scanner.getFirstDataMessage(); if (protoMessage == null) throw new IOException("No message found!"); messHash = protoMessage.hashCode(); standardFields = StandardFields.extract(protoMessage); rootConverter = new FieldConverter(protoMessage.ids.getCenterId(), protoMessage.getRootDataDescriptor()); if (standardFields.hasStation()) { hasStations = true; map = new HashMap<>(1000); } featureType = guessFeatureType(standardFields); hasDate = standardFields.hasTime(); //ncd = NetcdfDataset.openDataset(raf.getLocation(), BufrIosp2.enhance, -1, null, null); // LOOK opening another raf ncd = NetcdfFile.open(raf.getLocation()); // LOOK opening another raf Attribute centerAtt = ncd.findGlobalAttribute(BufrIosp2.centerId); int center = (centerAtt == null) ? 0 : centerAtt.getNumericValue().intValue(); Sequence seq = (Sequence) ncd.findVariable(null, BufrIosp2.obsRecord); extract = new StandardFields.StandardFieldsFromStructure(center, seq); StructureDataIterator iter = seq.getStructureIterator(); processSeq( iter, rootConverter, true); setStandardActions(rootConverter); } finally { if (ncd != null) ncd.close(); } System.out.printf("nobs = %d%n", countObs); }
@Test @Category(NeedsCdmUnitTest.class) public void testRead() throws IOException { try (NetcdfFile ncfile = NetcdfFile.open(TestDir.cdmUnitTestDir + "ft/point/200929100.ingest")) { Sequence record = (Sequence) ncfile.findVariable("record"); List<String> expectedMemberNames = Arrays.asList("tsec", "nsec", "lat", "lon", "sgnl", "mult", "fill", "majorAxis", "eccent", "ellipseAngle", "chisqr"); Assert.assertEquals(Sets.newHashSet(expectedMemberNames), Sets.newHashSet(record.getVariableNames())); try (StructureDataIterator iter = record.getStructureIterator()) { int recordCount = 0; while (iter.hasNext()) { StructureData data = iter.next(); // Assert that a single value from the first record equals an expected value. // Kinda lazy, but checking all values would be impractical. if (recordCount++ == 0) { Assert.assertEquals(-700, data.getScalarShort("sgnl")); } } Assert.assertEquals(1165, recordCount); } } }
@Ignore("cant deal with BUFR at the moment") @Test public void testNestedTable() throws IOException, InvalidRangeException { String filename = TestDir.cdmLocalTestDataDir + "dataset/nestedTable.bufr"; try (NetcdfFile ncfile = ucar.nc2.dataset.NetcdfDataset.openFile(filename, null)) { logger.debug("Open {}", ncfile.getLocation()); Sequence outer = (Sequence) 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 data.getScalarShort("Latitude_coarse_accuracy") == 32767; ArrayStructure as = data.getArrayStructure("Geopotential"); assert as != null; assert as.getScalarShort(0, as.findMember("Wind_speed")) == 61; } } }