/** * Flatten the Structures into a 1D array of Structures of length getTotalNumberOfStructures(). * @return Array of Structures */ public ArrayStructure flatten() { ArrayStructureW aw = new ArrayStructureW( getStructureMembers(), new int[] {total}); for (int i=0; i<total; i++) { StructureData sdata = new StructureDataA( this, i); aw.setStructureData(sdata, i); } return aw; }
@Override public double getScalarDouble(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getScalarDouble(recnum, m); StructureData sd = getStructureData(recnum); return sd.getScalarDouble( m.getName()); }
members.findMember("y_start"); ArrayStructureW asw = new ArrayStructureW(members, new int[] {vlen}); StructureDataW sdata = new StructureDataW(asw.getStructureMembers()); Iterator memberIter = sdata.getMembers().iterator(); sdata.setMemberData((StructureMembers.Member) memberIter.next(), sArray); asw.setStructureData(sdata, ii); ii++;
public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m) { if (m.getDataType() == DataType.STRUCTURE) { ArrayStructure data = (ArrayStructure) m.getDataArray(); // we need to subset this array structure to deal with just the subset for this recno // use "brute force" for now, see if we can finesse later int count = m.getSize(); StructureData[] sdata = new StructureData[count]; for (int i=0; i<count; i++) sdata[i] = data.getStructureData( recnum * count + i); return new ArrayStructureW( data.getStructureMembers(), m.getShape(), sdata); } throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure"); }
ArrayStructureW as = new ArrayStructureW(members, new int[]{4}, sdata); short[] f2data = as.getJavaArrayShort(1, f2); assert f2data[0] == 2; assert f2data[1] == 3; ArrayStructure nested1Data = as.getArrayStructure(2, nested1);
private StructureData readStructure(Structure s, ArrayStructureW asw, long dataPos) throws IOException, InvalidRangeException { StructureDataW sdata = new StructureDataW(asw.getStructureMembers()); if (debug) System.out.println(" readStructure " + s.getFullName() + " dataPos = " + dataPos); for (Variable v2 : s.getVariables()) { H5header.Vinfo vinfo = (H5header.Vinfo) v2.getSPobject(); if (debug) System.out.println(" readStructureMember " + v2.getFullName() + " vinfo = " + vinfo); Array dataArray = readData(v2, dataPos + vinfo.dataPos, v2.getShapeAsSection()); sdata.setMemberData(v2.getShortName(), dataArray); } return sdata; }
public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m) { if (m.getDataType() == DataType.STRUCTURE) { ArrayStructure data = (ArrayStructure) m.getDataArray(); // we need to subset this array structure to deal with just the subset for this recno // use "brute force" for now, see if we can finesse later int count = m.getSize(); StructureData[] sdata = new StructureData[count]; for (int i=0; i<count; i++) sdata[i] = data.getStructureData( recnum * count + i); return new ArrayStructureW( data.getStructureMembers(), m.getShape(), sdata); } throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure"); }
private StructureData readStructure(Structure s, ArrayStructureW asw, long dataPos) throws IOException, InvalidRangeException { StructureDataW sdata = new StructureDataW(asw.getStructureMembers()); if (debug) System.out.println(" readStructure " + s.getFullName() + " dataPos = " + dataPos); for (Variable v2 : s.getVariables()) { H5header.Vinfo vinfo = (H5header.Vinfo) v2.getSPobject(); if (debug) System.out.println(" readStructureMember " + v2.getFullName() + " vinfo = " + vinfo); Array dataArray = readData(v2, dataPos + vinfo.dataPos, v2.getShapeAsSection()); sdata.setMemberData(v2.getShortName(), dataArray); } return sdata; }
/** * Flatten the Structures into a 1D array of Structures of length getTotalNumberOfStructures(). * @return Array of Structures */ public ArrayStructure flatten() { ArrayStructureW aw = new ArrayStructureW( getStructureMembers(), new int[] {total}); for (int i=0; i<total; i++) { StructureData sdata = new StructureDataA( this, i); aw.setStructureData(sdata, i); } return aw; }
public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m) { if (m.getDataType() == DataType.STRUCTURE) { ArrayStructure data = (ArrayStructure) m.getDataArray(); // we need to subset this array structure to deal with just the subset for this recno // use "brute force" for now, see if we can finesse later int count = m.getSize(); StructureData[] sdata = new StructureData[count]; for (int i=0; i<count; i++) sdata[i] = data.getStructureData( recnum * count + i); return new ArrayStructureW( data.getStructureMembers(), m.getShape(), sdata); } throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure"); }
@Override public float[] getJavaArrayFloat(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getJavaArrayFloat(recnum, m); StructureData sd = getStructureData(recnum); return sd.getJavaArrayFloat( m.getName()); }
members.findMember("y_start"); ArrayStructureW asw = new ArrayStructureW(members, new int[] {vlen}); StructureDataW sdata = new StructureDataW(asw.getStructureMembers()); Iterator memberIter = sdata.getMembers().iterator(); sdata.setMemberData((StructureMembers.Member) memberIter.next(), sArray); asw.setStructureData(sdata, ii); ii++;
private StructureData readStructure(Structure s, ArrayStructureW asw, long dataPos) throws IOException, InvalidRangeException { StructureDataW sdata = new StructureDataW(asw.getStructureMembers()); if (debug) System.out.println(" readStructure " + s.getFullName() + " dataPos = " + dataPos); for (Variable v2 : s.getVariables()) { H5header.Vinfo vinfo = (H5header.Vinfo) v2.getSPobject(); if (debug) System.out.println(" readStructureMember " + v2.getFullName() + " vinfo = " + vinfo); Array dataArray = readData(v2, dataPos + vinfo.dataPos, v2.getShapeAsSection()); sdata.setMemberData(v2.getShortName(), dataArray); } return sdata; }
/** * Flatten the Structures into a 1D array of Structures of length getTotalNumberOfStructures(). * @return Array of Structures */ public ArrayStructure flatten() { ArrayStructureW aw = new ArrayStructureW( getStructureMembers(), new int[] {total}); for (int i=0; i<total; i++) { StructureData sdata = new StructureDataA( this, i); aw.setStructureData(sdata, i); } return aw; }
parentData[count++] = info.sdata; ArrayStructure as = new ArrayStructureW(struct.makeStructureMembers(), new int[] {n}, parentData);
@Override public int getScalarInt(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getScalarInt(recnum, m); StructureData sd = getStructureData(recnum); return sd.getScalarInt( m.getName()); }
@Override public Array sectionNoReduce(List<Range> ranges) throws InvalidRangeException { Section viewSection = new Section(ranges); ArrayStructureW result = new ArrayStructureW(this.members, viewSection.getShape()); int count = 0; Section.Iterator iter = viewSection.getIterator(getShape()); while (iter.hasNext()) { int recno = iter.next(null); StructureData sd = getStructureData(recno); result.setStructureData(sd, count++); } return result; }
parentData[count++] = info.sdata; ArrayStructure as = new ArrayStructureW(struct.makeStructureMembers(), new int[]{n}, parentData);
@Override public String getScalarString(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getScalarString(recnum, m); StructureData sd = getStructureData(recnum); return sd.getScalarString( m.getName()); }
@Override public Array sectionNoReduce(List<Range> ranges) throws InvalidRangeException { Section viewSection = new Section(ranges); ArrayStructureW result = new ArrayStructureW(this.members, viewSection.getShape()); int count = 0; Section.Iterator iter = viewSection.getIterator(getShape()); while (iter.hasNext()) { int recno = iter.next(null); StructureData sd = getStructureData(recno); result.setStructureData(sd, count++); } return result; }