static public boolean readAndTest(InputStream is, byte[] test) throws IOException { byte[] b = new byte[test.length]; readFully(is, b); if (b.length != test.length) return false; for (int i = 0; i < b.length; i++) if (b[i] != test[i]) return false; return true; }
static public boolean readAndTest(InputStream is, byte[] test) throws IOException { byte[] b = new byte[test.length]; readFully(is, b); if (b.length != test.length) return false; for (int i = 0; i < b.length; i++) if (b[i] != test[i]) return false; return true; }
static public boolean readAndTest(InputStream is, byte[] test) throws IOException { byte[] b = new byte[test.length]; readFully(is, b); if (b.length != test.length) return false; for (int i = 0; i < b.length; i++) if (b[i] != test[i]) return false; return true; }
private boolean readAndTest(InputStream is, byte[] test) throws IOException { byte[] b = new byte[test.length]; NcStream.readFully(is, b); if (b.length != test.length) return false; for (int i = 0; i < b.length; i++) if (b[i] != test[i]) return false; return true; }
private boolean readAndTest(InputStream is, byte[] test) throws IOException { byte[] b = new byte[test.length]; NcStream.readFully(is, b); if (b.length != test.length) return false; for (int i = 0; i < b.length; i++) if (b[i] != test[i]) return false; return true; }
private void readNext() throws IOException { byte[] b = new byte[4]; NcStream.readFully(is, b); // starts with MAGIC_START, MAGIC_HEADER or just MAGIC_HEADER if (test(b, NcStream.MAGIC_VDATA)) { int dsize = NcStream.readVInt(is); byte[] datab = new byte[dsize]; NcStream.readFully(is, datab); curr = NcStream.decodeStructureData(members, datab); // System.out.printf("StreamDataIterator read sdata size= %d%n", dsize); } else if (test(b, NcStream.MAGIC_VEND)) { curr = null; } else { throw new IllegalStateException("bad stream"); } }
private void readNext() throws IOException { byte[] b = new byte[4]; NcStream.readFully(is, b); // starts with MAGIC_START, MAGIC_HEADER or just MAGIC_HEADER if (test(b, NcStream.MAGIC_VDATA)) { int dsize = NcStream.readVInt(is); byte[] datab = new byte[dsize]; NcStream.readFully(is, datab); curr = NcStream.decodeStructureData(members, datab); // System.out.printf("StreamDataIterator read sdata size= %d%n", dsize); } else if (test(b, NcStream.MAGIC_VEND)) { curr = null; } else { throw new IllegalStateException("bad stream"); } }
private void readIndex(String indexFilename) throws IOException { FileInputStream fin = new FileInputStream(indexFilename); if (!NcStream.readAndTest(fin, MAGIC_START.getBytes(CDM.utf8Charset))) throw new IllegalStateException("bad index file"); int version = fin.read(); if (version != 1) throw new IllegalStateException("Bad version = " + version); int count = NcStream.readVInt(fin); for (int i = 0; i < count; i++) { int size = NcStream.readVInt(fin); byte[] pb = new byte[size]; NcStream.readFully(fin, pb); StationIndex si = decodeStationIndex(pb); map.put(si.stnId, si); } fin.close(); System.out.println(" read index map size=" + map.values().size()); }
private void readIndex(String indexFilename) throws IOException { try (FileInputStream fin = new FileInputStream(indexFilename)) { if (!NcStream.readAndTest(fin, MAGIC_START_IDX.getBytes(CDM.utf8Charset))) throw new IllegalStateException("bad index file"); int version = fin.read(); if (version != 1) throw new IllegalStateException("Bad version = " + version); int count = NcStream.readVInt(fin); for (int i = 0; i < count; i++) { int size = NcStream.readVInt(fin); byte[] pb = new byte[size]; NcStream.readFully(fin, pb); StationIndex si = decodeStationIndex(pb); map.put(si.stnId, si); } } System.out.println(" read index map size=" + map.values().size()); }
private void readIndex(String indexFilename) throws IOException { try (FileInputStream fin = new FileInputStream(indexFilename)) { if (!NcStream.readAndTest(fin, MAGIC_START.getBytes(CDM.utf8Charset))) throw new IllegalStateException("bad index file"); int version = fin.read(); if (version != 1) throw new IllegalStateException("Bad version = " + version); int count = NcStream.readVInt(fin); for (int i = 0; i < count; i++) { int size = NcStream.readVInt(fin); byte[] pb = new byte[size]; NcStream.readFully(fin, pb); StationIndex si = decodeStationIndex(pb); map.put(si.stnId, si); } } System.out.println(" read index map size=" + map.values().size()); }
public GeoReferencedArray readData(CoverageDataResponse dataResponse, GeoArrayResponse arrayResponse, InputStream is) throws IOException { int sizeIn = NcStream.readVInt(is); // not used ? if (arrayResponse.deflate) { is = new InflaterInputStream(is); float ratio = (sizeIn == 0) ? 0.0f : ((float) arrayResponse.uncompressedSize) / sizeIn; if (showCompression) System.out.printf(" readData data message compress= %d decompress=%d compress=%f%n", sizeIn, arrayResponse.uncompressedSize, ratio); } byte[] datab = new byte[(int) arrayResponse.uncompressedSize]; NcStream.readFully(is, datab); Array data = Array.factory(arrayResponse.dataType, arrayResponse.shape, ByteBuffer.wrap(datab)); CoverageCoordSys csys = dataResponse.findCoordSys( arrayResponse.coordSysName); if (csys == null) throw new IOException("Misformed response - no coordsys"); return new GeoReferencedArray(arrayResponse.coverageName, arrayResponse.dataType, data, csys); }
private void readNext() throws IOException { byte[] b = new byte[4]; NcStream.readFully(is, b); // starts with MAGIC_START, MAGIC_HEADER or just MAGIC_HEADER if (NcStream.test(b, NcStream.MAGIC_VDATA)) { int dsize = NcStream.readVInt(is); byte[] datab = new byte[dsize]; NcStream.readFully(is, datab); // curr = NcStream.decodeStructureData(members, bo, datab); LOOK // System.out.printf("StreamDataIterator read sdata size= %d%n", dsize); } else if (NcStream.test(b, NcStream.MAGIC_VEND)) { curr = null; close(); } else { throw new IllegalStateException("bad stream"); } }
/** * Read the result of a data request. Only one variable at a time. * * @param is read from input stream * @param ncfile need the metadata from here to interpret structure data * @return DataResult * @throws IOException on read error */ public DataResult readData(InputStream is, NetcdfFile ncfile, String location) throws IOException { byte[] b = new byte[4]; int bytesRead = NcStream.readFully(is, b); if (bytesRead < b.length) throw new EOFException(location); if (NcStream.test(b,NcStream.MAGIC_DATA)) return readData1(is, ncfile); if (NcStream.test(b,NcStream.MAGIC_DATA2)) return readData2(is); throw new IOException("Data transfer corrupted on " + location); }
private DataResult readData2(InputStream is) throws IOException { int psize = NcStream.readVInt(is); if (debug) System.out.println(" readData data message len= " + psize); byte[] dp = new byte[psize]; NcStream.readFully(is, dp); NcStreamProto.DataCol dproto = NcStreamProto.DataCol.parseFrom(dp); // NcStreamProto.Data2 dproto = NcStreamProto.Data2.parseDelimitedFrom(is); NcStreamDataCol decoder = new NcStreamDataCol(); Array data = decoder.decode(dproto, null); return new DataResult(dproto.getName(), data); }
public StructureDataIterator getStructureIterator(InputStream is, NetcdfFile ncfile) throws IOException { if (!readAndTest(is, NcStream.MAGIC_DATA)) throw new IOException("Data transfer corrupted on "+ncfile.getLocation()); int psize = NcStream.readVInt(is); if (debug) System.out.println(" readData data message len= " + psize); byte[] dp = new byte[psize]; NcStream.readFully(is, dp); NcStreamProto.Data dproto = NcStreamProto.Data.parseFrom(dp); // if (debug) System.out.println(" readData proto = " + dproto); Structure s = (Structure) ncfile.findVariable(dproto.getVarName()); StructureMembers members = s.makeStructureMembers(); ArrayStructureBB.setOffsets(members); return new StreamDataIterator(is, members); }
public StructureDataIterator getStructureIterator(InputStream is, NetcdfFile ncfile) throws IOException { if (!readAndTest(is, NcStream.MAGIC_DATA)) throw new IOException("Data transfer corrupted on "+ncfile.getLocation()); int psize = NcStream.readVInt(is); if (debug) System.out.println(" readData data message len= " + psize); byte[] dp = new byte[psize]; NcStream.readFully(is, dp); NcStreamProto.Data dproto = NcStreamProto.Data.parseFrom(dp); // if (debug) System.out.println(" readData proto = " + dproto); Structure s = (Structure) ncfile.findVariable(dproto.getVarName()); StructureMembers members = s.makeStructureMembers(); ArrayStructureBB.setOffsets(members); return new StreamDataIterator(is, members); }
public StructureDataIterator getStructureIterator(InputStream is, NetcdfFile ncfile) throws IOException { if (!NcStream.readAndTest(is, NcStream.MAGIC_DATA)) throw new IOException("Data transfer corrupted on " + ncfile.getLocation()); int psize = NcStream.readVInt(is); if (debug) System.out.println(" readData data message len= " + psize); byte[] dp = new byte[psize]; NcStream.readFully(is, dp); NcStreamProto.Data dproto = NcStreamProto.Data.parseFrom(dp); // if (debug) System.out.println(" readData proto = " + dproto); Structure s = (Structure) ncfile.findVariable(dproto.getVarName()); StructureMembers members = s.makeStructureMembers(); ArrayStructureBB.setOffsets(members); ByteOrder bo = NcStream.decodeDataByteOrder(dproto); return new StreamDataIterator(is, members, bo); }
static public MessageType readMagic(InputStream is) throws IOException { byte[] b = new byte[4]; int done = NcStream.readFully(is, b); if (done != 4) return MessageType.Eos; if (test(b, MAGIC_PointFeature)) return MessageType.PointFeature; if (test(b, MAGIC_PointFeatureCollection)) return MessageType.PointFeatureCollection; if (test(b, MAGIC_StationList)) return MessageType.StationList; if (test(b, NcStream.MAGIC_START)) return MessageType.Start; if (test(b, NcStream.MAGIC_HEADER)) return MessageType.Header; if (test(b, NcStream.MAGIC_DATA)) return MessageType.Data; if (test(b, NcStream.MAGIC_END)) return MessageType.End; if (test(b, NcStream.MAGIC_ERR)) return MessageType.Error; return null; }
static public MessageType readMagic(InputStream is) throws IOException { byte[] b = new byte[4]; int done = NcStream.readFully(is, b); if (done != 4) return MessageType.Eos; if (test(b, MAGIC_PointFeature)) return MessageType.PointFeature; if (test(b, MAGIC_PointFeatureCollection)) return MessageType.PointFeatureCollection; if (test(b, MAGIC_StationList)) return MessageType.StationList; if (test(b, NcStream.MAGIC_START)) return MessageType.Start; if (test(b, NcStream.MAGIC_HEADER)) return MessageType.Header; if (test(b, NcStream.MAGIC_DATA)) return MessageType.Data; if (test(b, NcStream.MAGIC_END)) return MessageType.End; if (test(b, NcStream.MAGIC_ERR)) return MessageType.Error; return null; }
static public MessageType readMagic(InputStream is) throws IOException { byte[] b = new byte[4]; int done = NcStream.readFully(is, b); if (done != 4) return MessageType.Eos; if (test(b, MAGIC_PointFeature)) return MessageType.PointFeature; if (test(b, MAGIC_PointFeatureCollection)) return MessageType.PointFeatureCollection; if (test(b, MAGIC_StationList)) return MessageType.StationList; if (test(b, NcStream.MAGIC_START)) return MessageType.Start; if (test(b, NcStream.MAGIC_HEADER)) return MessageType.Header; if (test(b, NcStream.MAGIC_DATA)) return MessageType.Data; if (test(b, NcStream.MAGIC_END)) return MessageType.End; if (test(b, NcStream.MAGIC_ERR)) return MessageType.Error; return null; }