protected void replaceDataVars(StructureMembers sm) { for (StructureMembers.Member m : sm.getMembers()) { VariableSimpleIF curr = this.cols.get(m.getName()); this.cols.put(m.getName(), VariableSimpleImpl.changeShape(curr, Dimension.makeDimensionsAnon(m.getShape()))); } }
StructureData makeMissing(StructureMembers.Member seqm, ArraySequence seq) { StructureData result = missingData.get(seqm.getName()); if (result != null) return result; StructureMembers sm = new StructureMembers(seq.getStructureMembers()); StructureDataW resultW = new StructureDataW(sm); for (StructureMembers.Member m : sm.getMembers()) { VariableDS var = vars.get(m.getName()); Array missingData = var.getMissingDataArray(m.getShape()); resultW.setMemberData(m, missingData); } missingData.put(seqm.getName(), resultW); return resultW; }
protected void replaceDataVars(StructureMembers sm) { for (StructureMembers.Member m : sm.getMembers()) { VariableSimpleIF org = this.cols.get(m.getName()); int rank = org.getRank(); List<Dimension> orgDims = org.getDimensions(); // only keep the last n int n = m.getShape().length; List<Dimension> dims = orgDims.subList(rank-n, rank); VariableSimpleImpl result = new VariableSimpleImpl(org.getShortName(), org.getDescription(), org.getUnitsString(), org.getDataType(), dims); for (Attribute att : org.getAttributes()) result.add(att); this.cols.put(m.getName(), result); } }
/** * Get member data of type array of Structure. * * @param recnum get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize(); * @param m get data from this StructureMembers.Member. Must be of type Structure. * @return nested ArrayStructure. */ public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m) { if ((m.getDataType() != DataType.STRUCTURE) && (m.getDataType() != DataType.SEQUENCE)) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure or Sequence"); if (m.getDataType() == DataType.SEQUENCE) return getArraySequence(recnum, m); ArrayStructure array = (ArrayStructure) m.getDataArray(); int count = m.getSize(); StructureData[] this_sdata = new StructureData[count]; for (int i = 0; i < count; i++) this_sdata[i] = array.getStructureData(recnum * count + i); // make a copy of the members, but remove the data arrays, since the structureData must be used instead StructureMembers membersw = new StructureMembers(array.getStructureMembers()); return new ArrayStructureW(membersw, m.getShape(), this_sdata); }
/** * Get member data of type array of Structure. * * @param recnum get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize(); * @param m get data from this StructureMembers.Member. Must be of type Structure. * @return nested ArrayStructure. */ public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m) { if ((m.getDataType() != DataType.STRUCTURE) && (m.getDataType() != DataType.SEQUENCE)) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure or Sequence"); if (m.getDataType() == DataType.SEQUENCE) return getArraySequence(recnum, m); ArrayStructure array = (ArrayStructure) m.getDataArray(); int count = m.getSize(); StructureData[] this_sdata = new StructureData[count]; for (int i = 0; i < count; i++) this_sdata[i] = array.getStructureData(recnum * count + i); // make a copy of the members, but remove the data arrays, since the structureData must be used instead StructureMembers membersw = new StructureMembers(array.getStructureMembers()); return new ArrayStructureW(membersw, m.getShape(), this_sdata); }
static public PointStreamProto.PointFeatureCollection encodePointFeatureCollection(String name, String timeUnitString, PointFeature pf) throws IOException { PointStreamProto.PointFeatureCollection.Builder builder = PointStreamProto.PointFeatureCollection.newBuilder(); if (name == null) System.out.printf("HEY null pointstream name%n"); builder.setName(name); builder.setTimeUnit(timeUnitString); StructureData sdata = pf.getData(); StructureMembers sm = sdata.getStructureMembers(); for (StructureMembers.Member m : sm.getMembers()) { PointStreamProto.Member.Builder mbuilder = PointStreamProto.Member.newBuilder(); mbuilder.setName(m.getName()); if (null != m.getDescription()) mbuilder.setDesc(m.getDescription()); if (null != m.getUnitsString()) mbuilder.setUnits(m.getUnitsString()); mbuilder.setDataType(NcStream.encodeDataType(m.getDataType())); mbuilder.setSection(NcStream.encodeSection(new ucar.ma2.Section(m.getShape()))); builder.addMembers(mbuilder); } return builder.build(); }
/** * Get member data of type array of Structure. * * @param recnum get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize(); * @param m get data from this StructureMembers.Member. Must be of type Structure. * @return nested ArrayStructure. */ public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m) { if ((m.getDataType() != DataType.STRUCTURE) && (m.getDataType() != DataType.SEQUENCE)) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure or Sequence"); if (m.getDataType() == DataType.SEQUENCE) return getArraySequence(recnum, m); ArrayStructure array = (ArrayStructure) m.getDataArray(); int count = m.getSize(); StructureData[] this_sdata = new StructureData[count]; for (int i = 0; i < count; i++) this_sdata[i] = array.getStructureData(recnum * count + i); // make a copy of the members, but remove the data arrays, since the structureData must be used instead StructureMembers membersw = new StructureMembers(array.getStructureMembers()); return new ArrayStructureW(membersw, m.getShape(), this_sdata); }
static public PointStreamProto.PointFeatureCollection encodePointFeatureCollection(String name, PointFeature pf) throws IOException { PointStreamProto.PointFeatureCollection.Builder builder = PointStreamProto.PointFeatureCollection.newBuilder(); if (name == null) System.out.printf("HEY null pointstream name%n"); builder.setName(name); builder.setTimeUnit(pf.getTimeUnit().getUnitsString()); StructureData sdata = pf.getData(); StructureMembers sm = sdata.getStructureMembers(); for (StructureMembers.Member m : sm.getMembers()) { PointStreamProto.Member.Builder mbuilder = PointStreamProto.Member.newBuilder(); mbuilder.setName(m.getName()); if (null != m.getDescription()) mbuilder.setDesc(m.getDescription()); if (null != m.getUnitsString()) mbuilder.setUnits(m.getUnitsString()); mbuilder.setDataType(NcStream.encodeDataType(m.getDataType())); mbuilder.setSection(NcStream.encodeSection(new ucar.ma2.Section(m.getShape()))); builder.addMembers(mbuilder); } return builder.build(); }
public int[] getShape() { return m.getShape(); } public List<Dimension> getDimensions() {
public int getRank() { return m.getShape().length; } public int[] getShape() { return m.getShape(); }
public int[] getShape() { return m.getShape(); } public List<Dimension> getDimensions() {
public int getRank() { return m.getShape().length; } public int[] getShape() { return m.getShape(); }
public int[] getShape() { return m.getShape(); } public List<Dimension> getDimensions() {
public int getRank() { return m.getShape().length; } public int[] getShape() { return m.getShape(); }
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"); }
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"); }
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 ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m) { if (m.getDataType() != DataType.STRUCTURE) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure"); if (m.getDataArray() != null) return super.getArrayStructure(recnum, m); int offset = calcOffsetSetOrder(recnum, m); ArrayStructureBB result = new ArrayStructureBB(m.getStructureMembers(), m.getShape(), this.bbuffer, offset); result.heap = this.heap; // share the heap return result; }
@Override public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m) { if (m.getDataType() != DataType.STRUCTURE) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure"); if (m.getDataArray() != null) return super.getArrayStructure(recnum, m); int offset = calcOffsetSetOrder(recnum, m); ArrayStructureBB result = new ArrayStructureBB(m.getStructureMembers(), m.getShape(), this.bbuffer, offset); result.heap = this.heap; // share the heap return result; }
@Override public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m) { if (m.getDataType() != DataType.STRUCTURE) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be Structure"); if (m.getDataArray() != null) return super.getArrayStructure(recnum, m); int offset = calcOffsetSetOrder(recnum, m); ArrayStructureBB result = new ArrayStructureBB(m.getStructureMembers(), m.getShape(), this.bbuffer, offset); result.heap = this.heap; // share the heap return result; }