private int writeString(DataOutputStream stream, String s) throws IOException { byte[] b = s.getBytes(CDM.utf8Charset); if (null != stream) { stream.writeInt(b.length); stream.write(b); } int n = pad(stream, b.length, (byte) 0); return n + 4 + b.length; }
private int writeStringValues(DataOutputStream stream, Attribute att) throws IOException { int n = att.getLength(); if (n == 1) return writeString(stream, att.getStringValue()); else { StringBuilder values = new StringBuilder(); for (int i = 0; i < n; i++) values.append(att.getStringValue(i)); return writeString(stream, values.toString()); } }
Attribute att = atts.get(i); hsize += writeString(stream, N3iosp.makeValidNetcdfObjectName( att.getShortName())); int type = N3header.getType(att.getDataType()); if (null != stream) stream.writeInt(type); hsize += writeStringValues(stream, att); } else { int nelems = att.getLength(); nbytes += writeAttributeValue(stream, att.getNumericValue(j)); hsize += nbytes; hsize += pad(stream, nbytes, (byte) 0);
private Vinfo writeVar(DataOutputStream stream, Variable var, int offset) throws IOException { int hsize = 0; hsize += writeString(stream, N3iosp.makeValidNetcdfObjectName( var.getShortName())); // dimensions int vsize = var.getDataType().getSize(); List<Dimension> dims = var.getDimensions(); if (null != stream) stream.writeInt(dims.size()); hsize += 4; for (Dimension dim : dims) { int dimIndex = findDimensionIndex(dim); if (null != stream) stream.writeInt(dimIndex); hsize += 4; if (!dim.isUnlimited()) vsize *= dim.getLength(); } int pad = (usePadding) ? N3header.padding(vsize) : 0; vsize += pad; // variable attributes hsize += writeAtts(stream, var.getAttributes()); // data type, variable size, beginning file position int type = N3header.getType(var.getDataType()); if (null != stream) { stream.writeInt(type); stream.writeInt(vsize); stream.writeInt(offset); } hsize += 12; //if (debug) out.println(" name= "+name+" type="+type+" vsize="+vsize+" begin= "+begin+" isRecord="+isRecord+"\n"); return new Vinfo(var, hsize, vsize, offset, pad, var.isUnlimited()); }
count += writeString(stream, N3iosp.makeValidNetcdfObjectName( dim.getShortName())); stream.writeInt(dim.isUnlimited() ? 0 : dim.getLength()); count += 4; count += writeAtts(stream, ncfile.getGlobalAttributes()); Variable var = (Variable) vars.get(i); if (var instanceof Structure) continue; Vinfo vinfo = writeVar(null, var, 0); count += vinfo.hsize; Vinfo vinfo = writeVar(stream, var, offset); vinfoMap.put(var, vinfo); if (debugPos) Vinfo vinfo = writeVar(stream, var, offset); vinfoMap.put(var, vinfo);
Attribute att = atts.get(i); hsize += writeString(stream, N3iosp.makeValidNetcdfObjectName( att.getShortName())); int type = N3header.getType(att.getDataType()); if (null != stream) stream.writeInt(type); hsize += writeStringValues(stream, att); } else { int nelems = att.getLength(); nbytes += writeAttributeValue(stream, att.getNumericValue(j)); hsize += nbytes; hsize += pad(stream, nbytes, (byte) 0);
private Vinfo writeVar(DataOutputStream stream, Variable var, int offset) throws IOException { int hsize = 0; hsize += writeString(stream, N3iosp.makeValidNetcdfObjectName( var.getShortName())); // dimensions int vsize = var.getDataType().getSize(); List<Dimension> dims = var.getDimensions(); if (null != stream) stream.writeInt(dims.size()); hsize += 4; for (Dimension dim : dims) { int dimIndex = findDimensionIndex(dim); if (null != stream) stream.writeInt(dimIndex); hsize += 4; if (!dim.isUnlimited()) vsize *= dim.getLength(); } int pad = (usePadding) ? N3header.padding(vsize) : 0; vsize += pad; // variable attributes hsize += writeAtts(stream, var.getAttributes()); // data type, variable size, beginning file position int type = N3header.getType(var.getDataType()); if (null != stream) { stream.writeInt(type); stream.writeInt(vsize); stream.writeInt(offset); } hsize += 12; //if (debug) out.println(" name= "+name+" type="+type+" vsize="+vsize+" begin= "+begin+" isRecord="+isRecord+"\n"); return new Vinfo(var, hsize, vsize, offset, pad, var.isUnlimited()); }
count += writeString(stream, N3iosp.makeValidNetcdfObjectName( dim.getShortName())); stream.writeInt(dim.isUnlimited() ? 0 : dim.getLength()); count += 4; count += writeAtts(stream, ncfile.getGlobalAttributes()); Variable var = (Variable) vars.get(i); if (var instanceof Structure) continue; Vinfo vinfo = writeVar(null, var, 0); count += vinfo.hsize; Vinfo vinfo = writeVar(stream, var, offset); vinfoMap.put(var, vinfo); if (debugPos) Vinfo vinfo = writeVar(stream, var, offset); vinfoMap.put(var, vinfo);
Attribute att = atts.get(i); hsize += writeString(stream, N3iosp.makeValidNetcdfObjectName( att.getShortName())); int type = N3header.getType(att.getDataType()); if (null != stream) stream.writeInt(type); hsize += writeStringValues(stream, att); } else { int nelems = att.getLength(); nbytes += writeAttributeValue(stream, att.getNumericValue(j)); hsize += nbytes; hsize += pad(stream, nbytes, (byte) 0);
private Vinfo writeVar(DataOutputStream stream, Variable var, int offset) throws IOException { int hsize = 0; hsize += writeString(stream, N3iosp.makeValidNetcdfObjectName( var.getShortName())); // dimensions int vsize = var.getDataType().getSize(); List<Dimension> dims = var.getDimensions(); if (null != stream) stream.writeInt(dims.size()); hsize += 4; for (Dimension dim : dims) { int dimIndex = findDimensionIndex(dim); if (null != stream) stream.writeInt(dimIndex); hsize += 4; if (!dim.isUnlimited()) vsize *= dim.getLength(); } int pad = (usePadding) ? N3header.padding(vsize) : 0; vsize += pad; // variable attributes hsize += writeAtts(stream, var.getAttributes()); // data type, variable size, beginning file position int type = N3header.getType(var.getDataType()); if (null != stream) { stream.writeInt(type); stream.writeInt(vsize); stream.writeInt(offset); } hsize += 12; //if (debug) out.println(" name= "+name+" type="+type+" vsize="+vsize+" begin= "+begin+" isRecord="+isRecord+"\n"); return new Vinfo(var, hsize, vsize, offset, pad, var.isUnlimited()); }
count += writeString(stream, N3iosp.makeValidNetcdfObjectName( dim.getShortName())); stream.writeInt(dim.isUnlimited() ? 0 : dim.getLength()); count += 4; count += writeAtts(stream, ncfile.getGlobalAttributes()); Variable var = (Variable) vars.get(i); if (var instanceof Structure) continue; Vinfo vinfo = writeVar(null, var, 0); count += vinfo.hsize; Vinfo vinfo = writeVar(stream, var, offset); vinfoMap.put(var, vinfo); if (debugPos) Vinfo vinfo = writeVar(stream, var, offset); vinfoMap.put(var, vinfo);
private int writeString(DataOutputStream stream, String s) throws IOException { byte[] b = s.getBytes(CDM.utf8Charset); if (null != stream) { stream.writeInt(b.length); stream.write(b); } int n = pad(stream, b.length, (byte) 0); return n + 4 + b.length; }
private int writeStringValues(DataOutputStream stream, Attribute att) throws IOException { int n = att.getLength(); if (n == 1) return writeString(stream, att.getStringValue()); else { StringBuilder values = new StringBuilder(); for (int i = 0; i < n; i++) values.append(att.getStringValue(i)); return writeString(stream, values.toString()); } }
private int writeString(DataOutputStream stream, String s) throws IOException { byte[] b = s.getBytes(CDM.utf8Charset); if (null != stream) { stream.writeInt(b.length); stream.write(b); } int n = pad(stream, b.length, (byte) 0); return n + 4 + b.length; }
private int writeStringValues(DataOutputStream stream, Attribute att) throws IOException { int n = att.getLength(); if (n == 1) return writeString(stream, att.getStringValue()); else { StringBuilder values = new StringBuilder(); for (int i = 0; i < n; i++) values.append(att.getStringValue(i)); return writeString(stream, values.toString()); } }