Refine search
protected double getTime(Variable timeVar, StructureData sdata) throws ParseException { if (timeVar == null) return 0.0; if ((timeVar.getDataType() == DataType.CHAR) || (timeVar.getDataType() == DataType.STRING)) { String time = sdata.getScalarString(timeVar.getShortName()); if (null == formatter) formatter = new DateFormatter(); Date date = formatter.getISODate(time); return date.getTime() / 1000.0; } else { return sdata.convertScalarFloat(timeVar.getShortName()); } }
protected double getTime(Variable timeVar, StructureData sdata) throws ParseException { if (timeVar == null) return 0.0; if ((timeVar.getDataType() == DataType.CHAR) || (timeVar.getDataType() == DataType.STRING)) { String time = sdata.getScalarString(timeVar.getShortName()); if (null == formatter) formatter = new DateFormatter(); Date date = formatter.getISODate(time); return date.getTime() / 1000.0; } else { return sdata.convertScalarFloat(timeVar.getShortName()); } }
protected double getTime(Variable timeVar, StructureData sdata) throws ParseException { if (timeVar == null) return 0.0; if ((timeVar.getDataType() == DataType.CHAR) || (timeVar.getDataType() == DataType.STRING)) { String time = sdata.getScalarString(timeVar.getShortName()); if (null == formatter) formatter = new DateFormatter(); Date date = formatter.getISODate(time); return date.getTime() / 1000.0; } else { return sdata.convertScalarFloat(timeVar.getShortName()); } }
public void showCompress(Variable v, H5header.Vinfo vinfo, Size total, Formatter f) throws IOException { H5header.MessageDataspace mdt = vinfo.mds; long total_elems = 1; f.format("%8s %-40s(", v.getDataType(), v.getShortName()); for (int len : mdt.dimLength) { f.format("%d ", len); total_elems *= len; } boolean sizeOk = total_elems == v.getSize(); total_elems = v.getSize(); long nominalSize = total_elems * v.getElementSize(); Size size = new Size(nominalSize, 1); countStorageSize(vinfo, size); total.storage += size.storage; total.nominal += nominalSize; total.count += size.count; float ratio = (size.storage == 0) ? 0 : (float) nominalSize / size.storage; f.format(") == %d nelems %s == %d bytes storage = %d (%f) nchunks = %d%n", total_elems, sizeOk ? "" : "*", nominalSize, size.storage, ratio, size.count); }
private ByteBuffer makeBB(Structure s, StructureData sdata) { int size = s.getElementSize(); ByteBuffer bb = ByteBuffer.allocate(size); bb.order(ByteOrder.nativeOrder()); long offset = 0; for (Variable v : s.getVariables()) { if (v.getDataType() == DataType.STRING) continue; // LOOK embedded strings getting lost StructureMembers.Member m = sdata.findMember(v.getShortName()); if (m == null) { System.out.printf("WARN Nc4Iosp.makeBB() cant find %s%n", v.getShortName()); bb.position((int) (offset + v.getElementSize()*v.getSize())); // skip over it } else { copy(sdata, m, bb); } offset += v.getElementSize() * v.getSize(); } return bb; }
/** * Specify which variable will get written * * @param oldVar add this variable, and all parent groups * @return new Variable. */ public Variable addVariable(Variable oldVar) { List<Dimension> newDims = getNewDimensions(oldVar); Variable newVar; if ((oldVar.getDataType().equals(DataType.STRING)) && (!version.isNetdf4format())) { newVar = writer.addStringVariable(null, oldVar, newDims); } else { newVar = writer.addVariable(null, oldVar.getShortName(), oldVar.getDataType(), newDims); } varMap.put(oldVar, newVar); varList.add(oldVar); for (Attribute att : oldVar.getAttributes()) writer.addVariableAttribute(newVar, att); // atts are immutable return newVar; }
private ByteBuffer makeBB(Structure s, StructureData sdata) { int size = s.getElementSize(); ByteBuffer bb = ByteBuffer.allocate(size); bb.order(ByteOrder.nativeOrder()); long offset = 0; for (Variable v : s.getVariables()) { if (v.getDataType() == DataType.STRING) continue; // LOOK embedded strings getting lost StructureMembers.Member m = sdata.findMember(v.getShortName()); if (m == null) { System.out.printf("WARN Nc4Iosp.makeBB() cant find %s%n", v.getShortName()); bb.position((int) (offset + v.getElementSize() * v.getSize())); // skip over it } else { copy(sdata, m, bb); } offset += v.getElementSize() * v.getSize(); } return bb; }
public PointIteratorMultidim(String name, List<Variable> vars, int outerIndex, Filter filter) { this.vars = vars; this.outerIndex = outerIndex; this.filter = filter; Variable v = vars.get(0); npts = v.getDimension(1).getLength(); members = new StructureMembers(name); for (Variable var : vars) { int[] shape = var.getShape(); int[] newShape = new int[shape.length - 2]; System.arraycopy(shape, 2, newShape, 0, shape.length - 2); members.addMember(var.getShortName(), var.getDescription(), var.getUnitsString(), var.getDataType(), newShape); } }
public void hashCodeShow(Indent indent) { System.out.printf("%sVar hash = %d%n", indent, hashCode()); System.out.printf("%s shortName %s = %d%n", indent, getShortName(), getShortName().hashCode()); System.out.printf("%s isScalar %s%n", indent, isScalar()); System.out.printf("%s dataType %s%n", indent, getDataType()); System.out.printf("%s parentGroup %s = %d%n", indent, getParentGroup(), getParentGroup().hashCode()); System.out.printf("%s isVariableLength %s%n", indent, isVariableLength); System.out.printf("%s dimensions %d len=%d%n", indent, dimensions.hashCode(), dimensions.size()); indent.incr(); for (Dimension d : dimensions) { d.hashCodeShow(indent); } indent.decr(); if (getParentStructure() != null) { System.out.printf("%s parentStructure %d%n", indent, getParentStructure().hashCode()); getParentStructure().hashCodeShow(indent.incr()); indent.decr(); } }
public PointIteratorMultidim(String name, List<Variable> vars, int outerIndex, Filter filter) { this.vars = vars; this.outerIndex = outerIndex; this.filter = filter; Variable v = vars.get(0); npts = v.getDimension(1).getLength(); members = new StructureMembers(name); for (Variable var : vars) { int[] shape = var.getShape(); int[] newShape = new int[shape.length - 2]; System.arraycopy(shape, 2, newShape, 0, shape.length - 2); members.addMember(var.getShortName(), var.getDescription(), var.getUnitsString(), var.getDataType(), newShape); } }
public PointIteratorMultidim(String name, List<Variable> vars, int outerIndex, Filter filter) { this.vars = vars; this.outerIndex = outerIndex; this.filter = filter; Variable v = vars.get(0); npts = v.getDimension(1).getLength(); members = new StructureMembers(name); for (Variable var : vars) { int[] shape = var.getShape(); int[] newShape = new int[shape.length - 2]; System.arraycopy(shape, 2, newShape, 0, shape.length - 2); members.addMember(var.getShortName(), var.getDescription(), var.getUnitsString(), var.getDataType(), newShape); } }
/** * Override Object.hashCode() to implement equals. */ public int hashCode() { if(CDMNode.OBJECTHASH) return super.hashCode(); else { if (hashCode == 0) { int result = 17; result = 37 * result + getShortName().hashCode(); if (isScalar()) result++; result = 37 * result + getDataType().hashCode(); result = 37 * result + getParentGroup().hashCode(); if (getParentStructure() != null) result = 37 * result + getParentStructure().hashCode(); if (isVariableLength) result++; result = 37 * result + dimensions.hashCode(); hashCode = result; } return hashCode; } }
private void processVariable(Variable v, Array mdata, Counter count) throws IOException { String name = v.getShortName(); String units = v.getUnitsString(); Attribute bwAtt = v.findAttribute("BUFR:bitWidth"); int bitWidth = bwAtt == null ? 0 : bwAtt.getNumericValue().intValue(); if (showData) out.format("%svar='%s' units='%s' : ", indent, name, units); mdata.resetLocalIterator(); while (mdata.hasNext()) { count.nvals++; if (v.getDataType().isUnsigned()) { if (isMissingUnsigned(v, mdata, bitWidth)) count.nmiss++; } else { if (isMissing(v, mdata, bitWidth)) count.nmiss++; } } if (showData) out.format("%n"); }
/** * Override Object.hashCode() to implement equals. */ @Override public int hashCode() { if (hashCode == 0) { int result = 17; result = 37 * result + getShortName().hashCode(); if (isScalar()) result++; result = 37 * result + getDataType().hashCode(); result = 37 * result + getParentGroup().hashCode(); if (getParentStructure() != null) result = 37 * result + getParentStructure().hashCode(); if (isVariableLength) result++; result = 37 * result + dimensions.hashCode(); hashCode = result; } return hashCode; }
/** * Override Object.hashCode() to implement equals. */ @Override public int hashCode() { if (hashCode == 0) { int result = 17; result = 37 * result + getShortName().hashCode(); if (isScalar()) result++; result = 37 * result + getDataType().hashCode(); result = 37 * result + getParentGroup().hashCode(); if (getParentStructure() != null) result = 37 * result + getParentStructure().hashCode(); if (isVariableLength) result++; result = 37 * result + dimensions.hashCode(); hashCode = result; } return hashCode; }
/** * Instances which have same content are equal. */ public boolean equals(Object oo) { if (this == oo) return true; if (!(oo instanceof Variable)) return false; Variable o = (Variable) oo; if (!getShortName().equals(o.getShortName())) return false; if (isScalar() != o.isScalar()) return false; if (getDataType() != o.getDataType()) return false; if (!getParentGroup().equals(o.getParentGroup())) return false; if ((getParentStructure() != null) && !getParentStructure().equals(o.getParentStructure())) return false; if (isVariableLength() != o.isVariableLength()) return false; if (dimensions.size() != o.getDimensions().size()) return false; for (int i=0; i<dimensions.size(); i++) if (!getDimension(i).equals(o.getDimension(i))) return false; return true; }
/** * Instances which have same content are equal. */ public boolean equals(Object oo) { if (this == oo) return true; if (!(oo instanceof Variable)) return false; Variable o = (Variable) oo; if (!getShortName().equals(o.getShortName())) return false; if (isScalar() != o.isScalar()) return false; if (getDataType() != o.getDataType()) return false; if (!getParentGroup().equals(o.getParentGroup())) return false; if ((getParentStructure() != null) && !getParentStructure().equals(o.getParentStructure())) return false; if (isVariableLength() != o.isVariableLength()) return false; if (dimensions.size() != o.getDimensions().size()) return false; for (int i = 0; i < dimensions.size(); i++) if (!getDimension(i).equals(o.getDimension(i))) return false; return true; }
static public ucar.ma2.Array readSection(ParsedSectionSpec cer) throws IOException, InvalidRangeException { Variable inner = null; List<Range> totalRanges = new ArrayList<>(); ParsedSectionSpec current = cer; while (current != null) { totalRanges.addAll(current.section.getRanges()); inner = current.v; current = current.child; } assert inner != null; Section total = new Section(totalRanges); Array result = Array.factory(inner.getDataType(), total.getShape()); // must be a Structure Structure outer = (Structure) cer.v; Structure outerSubset = outer.select(cer.child.v.getShortName()); // allows IOSPs to optimize for this case ArrayStructure outerData = (ArrayStructure) outerSubset.read(cer.section); extractSection(cer.child, outerData, result.getIndexIterator()); return result; }
TableMultidimInnerPsuedo(NetcdfDataset ds, TableConfig config) { super(ds, config); assert config.outerName != null; assert config.innerName != null; this.inner = ds.findDimension(config.innerName); this.outer = ds.findDimension(config.outerName); sm = new StructureMembers(config.name); for (Variable v : struct.getVariables()) { int rank = v.getRank(); int[] shape = new int[rank - 1]; System.arraycopy(v.getShape(), 1, shape, 0, rank - 1); sm.addMember(v.getShortName(), v.getDescription(), v.getUnitsString(), v.getDataType(), shape); } }
TableMultidimInnerPsuedo(NetcdfDataset ds, TableConfig config) { super(ds, config); assert config.outerName != null; assert config.innerName != null; this.inner = ds.findDimension(config.innerName); this.outer = ds.findDimension(config.outerName); sm = new StructureMembers(config.name); for (Variable v : struct.getVariables()) { int rank = v.getRank(); int[] shape = new int[rank - 1]; System.arraycopy(v.getShape(), 1, shape, 0, rank - 1); sm.addMember(v.getShortName(), v.getDescription(), v.getUnitsString(), v.getDataType(), shape); } replaceDataVars(sm); }