public NcsMess(long filePos, int len, Object what) { this.filePos = filePos; this.len = len; this.what = what; if (what instanceof NcStreamProto.Data) { NcStreamProto.Data dataMess = (NcStreamProto.Data) what; this.dataType = NcStream.convertDataType(dataMess.getDataType()); this.varName = dataMess.getVarName(); Section s = NcStream.decodeSection(dataMess.getSection()); if (s != null) this.nelems = (int) s.computeSize(); } else if (what instanceof DataStorage) this.nelems = ((DataStorage) what).nelems; }
DataStorage(int size, long filePos, NcStreamProto.Data dproto) { this.size = size; this.filePos = filePos; section = NcStream.decodeSection(dproto.getSection()); nelems = (int) section.computeSize(); bo = NcStream.decodeDataByteOrder(dproto); isVlen = dproto.getVdata(); isDeflate = dproto.getCompress() == NcStreamProto.Compress.DEFLATE; if (isDeflate) uncompressedLen = dproto.getUncompressedSize(); }
ProtobufPointFeatureMaker(PointStreamProto.PointFeatureCollection pfc) throws IOException { try { // LOOK No calendar dateUnit = CalendarDateUnit.of(null, pfc.getTimeUnit()); } catch (Exception e) { e.printStackTrace(); dateUnit = CalendarDateUnit.unixDateUnit; } sm = new StructureMembers(pfc.getName()); for (PointStreamProto.Member m : pfc.getMembersList()) { String name = m.getName(); String desc = m.getDesc().length() > 0 ? m.getDesc() : null; String units = m.getUnits().length() > 0 ? m.getUnits() : null; DataType dtype = NcStream.convertDataType(m.getDataType()); int[] shape = NcStream.decodeSection(m.getSection()).getShape(); sm.addMember(name, desc, units, dtype, shape); } ArrayStructureBB.setOffsets(sm); }
private Array decodeStructureData(NcStreamProto.DataCol dproto, Section parentSection) throws IOException { NcStreamProto.ArrayStructureCol structData = dproto.getStructdata(); Section section = NcStream.decodeSection(dproto.getSection()); int nelems = dproto.getNelems(); assert nelems == section.computeSize(); // accumulate parent sections parentSection = section.prepend(parentSection); StructureMembers members = new StructureMembers(dproto.getName()); for (NcStreamProto.DataCol memberData : structData.getMemberDataList()) { decodeMemberData(members, memberData, parentSection); } return new ArrayStructureMA(members, section.getShape()); }
ProtobufPointFeatureMaker(PointStreamProto.PointFeatureCollection pfc) throws IOException { try { dateUnit = new DateUnit(pfc.getTimeUnit()); } catch (Exception e) { e.printStackTrace(); dateUnit = DateUnit.getUnixDateUnit(); } sm = new StructureMembers(pfc.getName()); for (PointStreamProto.Member m : pfc.getMembersList()) { sm.addMember(m.getName(), m.getDesc(), m.getUnits(), NcStream.decodeDataType(m.getDataType()), NcStream.decodeSection(m.getSection()).getShape()); } ArrayStructureBB.setOffsets(sm); }
ProtobufPointFeatureMaker(PointStreamProto.PointFeatureCollection pfc) throws IOException { try { dateUnit = new DateUnit(pfc.getTimeUnit()); } catch (Exception e) { e.printStackTrace(); dateUnit = DateUnit.getUnixDateUnit(); } sm = new StructureMembers(pfc.getName()); for (PointStreamProto.Member m : pfc.getMembersList()) { sm.addMember(m.getName(), m.getDesc(), m.getUnits(), NcStream.decodeDataType(m.getDataType()), NcStream.decodeSection(m.getSection()).getShape()); } ArrayStructureBB.setOffsets(sm); }
dataStorage.size = dsize; dataStorage.filePos = raf.getFilePointer(); dataStorage.section = NcStream.decodeSection(dproto.getSection()); dataStorage.nelems = (int) dataStorage.section.computeSize(); dataStorage.isDeflate = dproto.getCompress() == NcStreamProto.Compress.DEFLATE; dataStorage.nelems = nelems; dataStorage.size = totalSize; dataStorage.section = NcStream.decodeSection(dproto.getSection()); if (ncm != null) ncm.add(new NcsMess(dataStorage.filePos, totalSize, dataStorage)); storage.add(dataStorage);
dataStorage.size = dsize; dataStorage.filePos = raf.getFilePointer(); dataStorage.section = NcStream.decodeSection(dproto.getSection()); dataStorage.nelems = (int) dataStorage.section.computeSize(); dataStorage.isDeflate = dproto.getCompress() == NcStreamProto.Compress.DEFLATE; dataStorage.nelems = nelems; dataStorage.size = totalSize; dataStorage.section = NcStream.decodeSection(dproto.getSection()); if (ncm != null) ncm.add(new NcsMess(dataStorage.filePos, totalSize, dataStorage)); storage.add(dataStorage);
private void decodeMemberData(StructureMembers members, NcStreamProto.DataCol memberData, Section parentSection) throws IOException { String name = memberData.getName(); DataType dataType = NcStream.convertDataType(memberData.getDataType()); Section section = NcStream.decodeSection(memberData.getSection()); if (!memberData.getIsVlen()) { assert memberData.getNelems() == section.computeSize(); } // the dproto section includes parents, remove them Section msection = section.removeFirst(parentSection); if (memberData.getIsVlen()) msection = msection.appendRange(Range.VLEN); StructureMembers.Member result = members.addMember(name, null, null, dataType, msection.getShape()); Array data = decode(memberData, parentSection); result.setDataArray(data); }
public Array decodeVlenData(NcStreamProto.DataCol dproto) throws IOException { DataType dataType = NcStream.convertDataType(dproto.getDataType()); ByteBuffer bb = dproto.getPrimdata().asReadOnlyByteBuffer(); ByteOrder bo = dproto.getBigend() ? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN; bb.order(bo); Array alldata = Array.factory(dataType, new int[]{dproto.getNelems()}, bb); // flat array IndexIterator all = alldata.getIndexIterator(); Section section = NcStream.decodeSection(dproto.getSection()); Array[] data = new Array[(int) section.computeSize()]; // divide the primitive data into variable length arrays int count = 0; for (int len : dproto.getVlensList()) { Array primdata = Array.factory(dataType, new int[]{len}); IndexIterator prim = primdata.getIndexIterator(); for (int i=0; i<len; i++) { prim.setObjectNext( all.getObjectNext()); // generic } data[count++] = primdata; } // return Array.makeObjectArray(dataType, data[0].getClass(), section.getShape(), data); return Array.makeVlenArray(section.getShape(), data); }
Section section = NcStream.decodeSection(dproto.getSection()); Section vsection = section.removeFirst(parentSection); int vsectionSize = (int) vsection.computeSize(); // the # of varlen Arrays at the inner structure
Section section = (dataType == DataType.SEQUENCE) ? new Section() : NcStream.decodeSection(dproto.getSection());
Section section = (dataType == DataType.SEQUENCE) ? new Section() : NcStream.decodeSection(dproto.getSection());
Section section = (dataType == DataType.SEQUENCE) ? new Section() : NcStream.decodeSection(dproto.getSection());
Section section = (dataType == DataType.SEQUENCE) ? new Section() : NcStream.decodeSection(dproto.getSection()); if (!dproto.getIsVlen()) { assert dproto.getNelems() == section.computeSize();