@Override public Array readData(Variable v2, Section section) throws IOException, InvalidRangeException { //return new ArraySequence(obsStructure.makeStructureMembers(), getStructureIterator(null, -1), nelems); return new ArraySequence(obsStructure.makeStructureMembers(), new SeqIter(), nelems); }
public Array readData(Variable v2, Section section) throws IOException, InvalidRangeException { Structure s = construct.recordStructure; return new ArraySequence(s.makeStructureMembers(), new SeqIter(), nelems); }
private Array readStructureData(Structure v, Section section, DataStorage dataStorage) throws IOException, InvalidRangeException { ByteBuffer bb = dataStorage.sdata.getData().asReadOnlyByteBuffer(); bb.order(dataStorage.bo); StructureMembers sm = v.makeStructureMembers(); ArrayStructureBB.setOffsets(sm); // StructureMembers members, int[] shape, ByteBuffer bbuffer, int offset ArrayStructureBB all = new ArrayStructureBB(sm, v.getShape(), bb, 0); return ArrayStructureBBsection.factory(all, section); }
CatIterator(Entry[] entries, Structure useStructure) { this.entries = entries; members = useStructure.makeStructureMembers(); for (Variable v2 : useStructure.getVariables()) { Vinfo vinfo = (Vinfo) v2.getSPobject(); StructureMembers.Member m = members.findMember(v2.getShortName()); m.setDataParam(vinfo.offset); } }
CatIterator(Entry[] entries, Structure useStructure) { this.entries = entries; members = useStructure.makeStructureMembers(); for (Variable v2 : useStructure.getVariables()) { Vinfo vinfo = (Vinfo) v2.getSPobject(); StructureMembers.Member m = members.findMember(v2.getShortName()); m.setDataParam(vinfo.offset); } }
CatIterator(Entry[] entries, Structure useStructure) { this.entries = entries; members = useStructure.makeStructureMembers(); for (Variable v2 : useStructure.getVariables()) { Vinfo vinfo = (Vinfo) v2.getSPobject(); StructureMembers.Member m = members.findMember(v2.getShortName()); m.setDataParam(vinfo.offset); } }
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); }
/** * Make deep copy to an ArrayStructureBB whose data is contained in a ByteBuffer. * Use the order of the members in the given Structure; skip copying any not in the Structure * @param s list of structure members come from here; must be compatible with ArrayStructure's data * @param as original ArrayStructure * @param bo what byte order to use ? (null for default) * @return ArrayStructureBB with all data self contained */ static public ArrayStructureBB copyToArrayBB(Structure s, ArrayStructure as, ByteOrder bo) throws IOException { StructureMembers sm = s.makeStructureMembers(); ArrayStructureBB abb = new ArrayStructureBB(sm, as.getShape()); ArrayStructureBB.setOffsets(sm); if (bo != null) { ByteBuffer bb = abb.getByteBuffer(); bb.order(bo); } try (StructureDataIterator iter = as.getStructureDataIterator()) { while (iter.hasNext()) copyToArrayBB(iter.next(), abb); } return abb; }
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); }
public Array readReport(Variable v, Section section) throws IOException, InvalidRangeException { //coverity[FB.BC_UNCONFIRMED_CAST] Structure s = (Structure) v; StructureMembers members = s.makeStructureMembers(); for (Variable v2 : s.getVariables()) { Vinfo vinfo = (Vinfo) v2.getSPobject(); StructureMembers.Member m = members.findMember(v2.getShortName()); m.setDataParam(vinfo.offset); } int size = (int) section.computeSize(); ArrayStructureBB abb = new ArrayStructureBB(members, new int[]{size}); ByteBuffer bb = abb.getByteBuffer(); Range range = section.getRange(0); for (int idx : range) { Report report = reports.get(idx); report.loadStructureData(abb, bb); } return abb; }
public Array readReportIndex(Variable v, Section section) throws IOException, InvalidRangeException { //coverity[FB.BC_UNCONFIRMED_CAST] Structure s = (Structure) v; StructureMembers members = s.makeStructureMembers(); for (Variable v2 : s.getVariables()) { Vinfo vinfo = (Vinfo) v2.getSPobject(); StructureMembers.Member m = members.findMember(v2.getShortName()); m.setDataParam(vinfo.offset); } int size = (int) section.computeSize(); ArrayStructureBB abb = new ArrayStructureBB(members, new int[]{size}); ByteBuffer bb = abb.getByteBuffer(); Range range = section.getRange(0); for (int idx : range) { Report report = reports.get(idx); report.loadIndexData(bb); } return abb; }
public Array readReportIndex(Variable v, Section section) throws IOException, InvalidRangeException { Structure s = (Structure) v; StructureMembers members = s.makeStructureMembers(); for (Variable v2 : s.getVariables()) { Vinfo vinfo = (Vinfo) v2.getSPobject(); StructureMembers.Member m = members.findMember(v2.getShortName()); m.setDataParam(vinfo.offset); } int size = (int) section.computeSize(); ArrayStructureBB abb = new ArrayStructureBB(members, new int[]{size}); ByteBuffer bb = abb.getByteBuffer(); Range r = section.getRange(0); for (int i = r.first(); i <= r.last(); i += r.stride()) { Report report = reports.get(i); report.loadIndexData(bb); } return abb; }
public Array readReport(Variable v, Section section) throws IOException, InvalidRangeException { Structure s = (Structure) v; StructureMembers members = s.makeStructureMembers(); for (Variable v2 : s.getVariables()) { Vinfo vinfo = (Vinfo) v2.getSPobject(); StructureMembers.Member m = members.findMember(v2.getShortName()); m.setDataParam(vinfo.offset); } int size = (int) section.computeSize(); ArrayStructureBB abb = new ArrayStructureBB(members, new int[]{size}); ByteBuffer bb = abb.getByteBuffer(); Range r = section.getRange(0); for (int i = r.first(); i <= r.last(); i += r.stride()) { Report report = reports.get(i); report.loadStructureData(abb, bb); } return abb; }
public Array readReportIndex(Variable v, Section section) throws IOException, InvalidRangeException { //coverity[FB.BC_UNCONFIRMED_CAST] Structure s = (Structure) v; StructureMembers members = s.makeStructureMembers(); for (Variable v2 : s.getVariables()) { Vinfo vinfo = (Vinfo) v2.getSPobject(); StructureMembers.Member m = members.findMember(v2.getShortName()); m.setDataParam(vinfo.offset); } int size = (int) section.computeSize(); ArrayStructureBB abb = new ArrayStructureBB(members, new int[]{size}); ByteBuffer bb = abb.getByteBuffer(); Range r = section.getRange(0); for (int i = r.first(); i <= r.last(); i += r.stride()) { Report report = reports.get(i); report.loadIndexData(bb); } return abb; }
public Array readReport(Variable v, Section section) throws IOException, InvalidRangeException { //coverity[FB.BC_UNCONFIRMED_CAST] Structure s = (Structure) v; StructureMembers members = s.makeStructureMembers(); for (Variable v2 : s.getVariables()) { Vinfo vinfo = (Vinfo) v2.getSPobject(); StructureMembers.Member m = members.findMember(v2.getShortName()); m.setDataParam(vinfo.offset); } int size = (int) section.computeSize(); ArrayStructureBB abb = new ArrayStructureBB(members, new int[]{size}); ByteBuffer bb = abb.getByteBuffer(); Range r = section.getRange(0); for (int i = r.first(); i <= r.last(); i += r.stride()) { Report report = reports.get(i); report.loadStructureData(abb, bb); } return abb; }
/** * Create a StructureMembers object that describes this Structure. * CAUTION: Do not use for iterating over a StructureData or ArrayStructure - get the StructureMembers object * directly from the StructureData or ArrayStructure. * * @return a StructureMembers object that describes this Structure. */ public StructureMembers makeStructureMembers() { StructureMembers smembers = new StructureMembers( getShortName()); for (Variable v2 : getVariables()) { StructureMembers.Member m = smembers.addMember( v2.getShortName(), v2.getDescription(), v2.getUnitsString(), v2.getDataType(), v2.getShape()); if (v2 instanceof Structure) m.setStructureMembers( ((Structure)v2).makeStructureMembers()); } return smembers; } //protected StructureMembers smembers = null;
/** * Create a StructureMembers object that describes this Structure. * CAUTION: Do not use for iterating over a StructureData or ArrayStructure - get the StructureMembers object * directly from the StructureData or ArrayStructure. * * @return a StructureMembers object that describes this Structure. */ public StructureMembers makeStructureMembers() { StructureMembers smembers = new StructureMembers( getShortName()); for (Variable v2 : getVariables()) { StructureMembers.Member m = smembers.addMember( v2.getShortName(), v2.getDescription(), v2.getUnitsString(), v2.getDataType(), v2.getShape()); if (v2 instanceof Structure) m.setStructureMembers( ((Structure)v2).makeStructureMembers()); } return smembers; } //protected StructureMembers smembers = null;
/** * Create a StructureMembers object that describes this Structure. * CAUTION: Do not use for iterating over a StructureData or ArrayStructure - get the StructureMembers object * directly from the StructureData or ArrayStructure. * * @return a StructureMembers object that describes this Structure. */ public StructureMembers makeStructureMembers() { StructureMembers smembers = new StructureMembers( getShortName()); for (Variable v2 : getVariables()) { StructureMembers.Member m = smembers.addMember( v2.getShortName(), v2.getDescription(), v2.getUnitsString(), v2.getDataType(), v2.getShape()); if (v2 instanceof Structure) m.setStructureMembers( ((Structure)v2).makeStructureMembers()); } return smembers; } //protected StructureMembers smembers = null;
private boolean convertStructure(Structure s, StructureMembers sm ) { boolean hasHeap = false; for (StructureMembers.Member m : sm.getMembers()) { Variable v2 = s.findVariable(m.getName()); assert v2 != null; H5header.Vinfo vm = (H5header.Vinfo) v2.getSPobject(); // apparently each member may have seperate byte order (!!!??) if (vm.typeInfo.endian >= 0) m.setDataObject(vm.typeInfo.endian == RandomAccessFile.LITTLE_ENDIAN ? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); // vm.dataPos : offset since start of Structure m.setDataParam((int) vm.dataPos); // track if there is a heap if (v2.getDataType() == DataType.STRING || v2.isVariableLength()) hasHeap = true; // recurse if (v2 instanceof Structure) { Structure nested = (Structure) v2; StructureMembers nestSm = nested.makeStructureMembers(); m.setStructureMembers(nestSm); hasHeap |= convertStructure(nested, nestSm); } } return hasHeap; }