static public void main( String args[]) throws IOException { BitReader bu = new BitReader(new byte[] {-1,2,4,8}); bu.bits2UInt(7); bu.bits2UInt(1); } }
BitReader reader = new BitReader(raf, startPos+5); if (bitmap == null) { for (int i = 0; i < totalNPoints; i++) {
BitReader reader = new BitReader(raf, startPos+5); if (bitmap == null) { for (int i = 0; i < totalNPoints; i++) {
throw new IllegalStateException("Bitmap section length!= grid length"); BitReader reader = new BitReader(raf, startPos + 11); values = new float[nPts]; for (int i = 0; i < nPts; i++) { values = new float[nPts]; BitReader reader = new BitReader(raf, startPos + 11); for (int i = 0; i < values.length; i++) { values[i] = ref + scale * reader.bits2UInt(info.numberOfBits);
reader = new BitReader(raf, startPos+5); int[] groupWidth = new int[gdrs.p1]; for (int i = 0; i < gdrs.p1; i++) { reader = new BitReader(raf, raf.getFilePointer()); int[] groupLength = new int[gdrs.p1]; for (int i = 0; i < gdrs.p1; i++) { reader = new BitReader(raf, raf.getFilePointer()); int[] firstOrderValues = new int[gdrs.p1]; for (int i = 0; i < gdrs.p1; i++) { reader = new BitReader(raf, raf.getFilePointer()); int cnt = gdrs.orderOfSPD; int[] data = new int[totalNPoints];
reader = new BitReader(raf, startPos+5); int[] groupWidth = new int[gdrs.p1]; for (int i = 0; i < gdrs.p1; i++) { reader = new BitReader(raf, raf.getFilePointer()); int[] groupLength = new int[gdrs.p1]; for (int i = 0; i < gdrs.p1; i++) { reader = new BitReader(raf, raf.getFilePointer()); int[] firstOrderValues = new int[gdrs.p1]; for (int i = 0; i < gdrs.p1; i++) { reader = new BitReader(raf, raf.getFilePointer()); int cnt = gdrs.orderOfSPD; int[] data = new int[totalNPoints];
private int readData(Message m, RandomAccessFile raf, Formatter f, Request req) throws IOException { BitReader reader = new BitReader(raf, m.dataSection.getDataPos() + 4); DataDescriptor root = m.getRootDataDescriptor(); if (root.isBad) return 0; DebugOut out = (f == null) ? null : new DebugOut(f); BitCounterCompressed[] counterFlds = new BitCounterCompressed[root.subKeys.size()]; // one for each field LOOK why not m.counterFlds ? readData(out, reader, counterFlds, root, 0, m.getNumberDatasets(), req); m.msg_nbits = 0; for (BitCounterCompressed counter : counterFlds) if (counter != null) m.msg_nbits += counter.getTotalBits(); return m.msg_nbits; }
int[] getDataRaw(RandomAccessFile raf, byte[] bitmap) throws IOException { raf.seek(startPos); // go to the data section int msgLength = GribNumbers.uint3(raf); // octet 4, 1st half (packing flag) int unusedbits = raf.read(); if ((unusedbits & 192) != 0) { logger.error("Grib1BinaryDataSection: (octet 4, 1st half) not grid point data and simple packing for {} len={}", raf.getLocation(), msgLength); throw new IllegalStateException("Grib1BinaryDataSection: (octet 4, 1st half) not grid point data and simple packing "); } GribNumbers.int2(raf); // octets 5-6 (binary scale factor) GribNumbers.float4(raf); // octets 7-10 (reference point = minimum value) // octet 11 (number of bits per value) int numbits = raf.read(); // boolean isConstant = (numbits == 0); // *** read int values ******************************************************* BitReader reader = new BitReader(raf, startPos + 11); int[] ivals = new int[nPts]; for (int i = 0; i < nPts; i++) { ivals[i] = (int) reader.bits2UInt(numbits); } return ivals; }
@Test public void testSignedPositive() throws IOException { BitReader bu = new BitReader(new byte[] {32,0,0,0}); assertEquals(2, (int) bu.bits2SInt(4)); }
@Test public void testSignedNegative() throws IOException { BitReader bu = new BitReader(new byte[] {(byte)160,0,0,0}); int binary = (int) bu.bits2SInt(4); assertEquals(-2, binary); }
BitReader reader = new BitReader(raf, m.dataSection.getDataPos() + 4); DataDescriptor root = m.getRootDataDescriptor(); if (root.isBad) return 0;
raf.skipBytes(skipBytes); BitReader reader = new BitReader(raf, raf.getFilePointer()); int[] groupWidth = new int[NG]; for (int group = 0; group < NG; group++) {
BitReader reader = new BitReader(raf, startPos+5);
BitReader reader = new BitReader(raf, startPos+5);
BitReader reader = new BitReader(raf, raf.getFilePointer());
@Test public void testUcar() throws IOException { BitReader bu = new BitReader(new byte[] {-1,2,4,8}); assertEquals(127, bu.bits2UInt(7)); assertEquals(1, bu.bits2UInt(1)); }
@Test public void testSignedNegative2() throws IOException { BitReader bu = new BitReader(new byte[] {(byte)71,(byte)200,(byte)235,(byte)216,(byte)128,(byte)0}); assertEquals(574, (int) bu.bits2UInt(11)); assertEquals(570, (int) bu.bits2UInt(11)); assertEquals(-945, (int) bu.bits2SInt(11)); }
@Test @Ignore("why is this failing?") public void testSignedNegative3() throws IOException { BitReader bu = new BitReader(new byte[] {(byte)199,(byte)242,(byte)0,(byte)0,(byte)6,(byte)6}); assertEquals(799, (int) bu.bits2UInt(10)); assertEquals(800, (int) bu.bits2UInt(10)); assertEquals(-344, (int) bu.bits2SInt(10)); }
BitReader reader = new BitReader(raf, startPos+5);
this.widthOfSPD = raf.read(); this.spd = new int[orderOfSPD+1]; BitReader bitReader = new BitReader(raf, raf.getFilePointer()); for (int i = 0; i < orderOfSPD; i++) {