private ucar.ma2.Array readNestedData(ucar.nc2.Variable v2, Section section) throws java.io.IOException, ucar.ma2.InvalidRangeException { N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject(); DataType dataType = v2.getDataType(); // construct the full shape for use by RegularIndexer int[] fullShape = new int[v2.getRank() + 1]; fullShape[0] = header.numrecs; // the first dimension System.arraycopy(v2.getShape(), 0, fullShape, 1, v2.getRank()); // the remaining dimensions Layout layout = new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, fullShape, section); Object dataObject = readData(layout, dataType); return Array.factory(dataType, section.getShape(), dataObject); }
private ucar.ma2.Array readNestedData(ucar.nc2.Variable v2, Section section) throws java.io.IOException, ucar.ma2.InvalidRangeException { N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject(); DataType dataType = v2.getDataType(); // construct the full shape for use by RegularIndexer int[] fullShape = new int[v2.getRank() + 1]; fullShape[0] = header.numrecs; // the first dimension System.arraycopy(v2.getShape(), 0, fullShape, 1, v2.getRank()); // the remaining dimensions Layout layout = new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, fullShape, section); Object dataObject = readData(layout, dataType); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), dataObject); }
public ucar.ma2.Array readNestedData(ucar.nc2.Variable v2, Section section) throws java.io.IOException, ucar.ma2.InvalidRangeException { N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject(); DataType dataType = v2.getDataType(); // construct the full shape for use by RegularIndexer int[] fullShape = new int[v2.getRank() + 1]; fullShape[0] = header.numrecs; // the first dimension System.arraycopy(v2.getShape(), 0, fullShape, 1, v2.getRank()); // the remaining dimensions Layout layout = new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, fullShape, section); Object dataObject = readData(layout, dataType); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), dataObject); }
@Override public void writeData(Variable v2, Section section, Array values) throws java.io.IOException, InvalidRangeException { N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject(); DataType dataType = v2.getDataType(); if (v2.isUnlimited()) { Range firstRange = section.getRange(0); setNumrecs(firstRange.last() + 1); } if (v2 instanceof Structure) { if (!(values instanceof ArrayStructure)) throw new IllegalArgumentException("writeData for Structure: data must be ArrayStructure"); if (v2.getRank() == 0) throw new IllegalArgumentException("writeData for Structure: must have rank > 0"); Dimension d = v2.getDimension(0); if (!d.isUnlimited()) throw new IllegalArgumentException("writeData for Structure: must have unlimited dimension"); writeRecordData((Structure) v2, section, (ArrayStructure) values); } else { Layout layout = (!v2.isUnlimited()) ? new LayoutRegular(vinfo.begin, v2.getElementSize(), v2.getShape(), section) : new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, v2.getShape(), section); writeData(values, layout, dataType); } }
@Override public long readToByteChannel(ucar.nc2.Variable v2, Section section, WritableByteChannel channel) throws java.io.IOException, ucar.ma2.InvalidRangeException { if (v2 instanceof Structure) return readRecordData((Structure) v2, section, channel); N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject(); DataType dataType = v2.getDataType(); Layout layout = (!v2.isUnlimited()) ? new LayoutRegular(vinfo.begin, v2.getElementSize(), v2.getShape(), section) : new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, v2.getShape(), section); return readData(layout, dataType, channel); }
public long readToByteChannel(ucar.nc2.Variable v2, Section section, WritableByteChannel channel) throws java.io.IOException, ucar.ma2.InvalidRangeException { if (v2 instanceof Structure) return readRecordData((Structure) v2, section, channel); N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject(); DataType dataType = v2.getDataType(); Layout layout = (!v2.isUnlimited()) ? new LayoutRegular(vinfo.begin, v2.getElementSize(), v2.getShape(), section) : new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, v2.getShape(), section); return readData(layout, dataType, channel); }
@Override public long readToByteChannel(ucar.nc2.Variable v2, Section section, WritableByteChannel channel) throws java.io.IOException, ucar.ma2.InvalidRangeException { if (v2 instanceof Structure) return readRecordData((Structure) v2, section, channel); N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject(); DataType dataType = v2.getDataType(); Layout layout = (!v2.isUnlimited()) ? new LayoutRegular(vinfo.begin, v2.getElementSize(), v2.getShape(), section) : new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, v2.getShape(), section); return readData(layout, dataType, channel); }
public Array readData(ucar.nc2.Variable v2, Section section) throws IOException, InvalidRangeException { if (debugRead) { System.out.printf("debugRead %s %s%n", v2.toStringDebug(), section); if (v2.getShortName().equals("cref")) System.out.println("HEY"); } if (v2 instanceof Structure) return readRecordData((Structure) v2, section); N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject(); DataType dataType = v2.getDataType(); Layout layout = (!v2.isUnlimited()) ? new LayoutRegular(vinfo.begin, v2.getElementSize(), v2.getShape(), section) : new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, v2.getShape(), section); if (layout.getTotalNelems() == 0) { return Array.factory(dataType.getPrimitiveClassType(), section.getShape()); } Object data = readData(layout, dataType); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), data); }
@Override public void writeData(Variable v2, Section section, Array values) throws java.io.IOException, InvalidRangeException { N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject(); DataType dataType = v2.getDataType(); if (v2.isUnlimited()) { Range firstRange = section.getRange(0); setNumrecs(firstRange.last() + 1); } if (v2 instanceof Structure) { if (!(values instanceof ArrayStructure)) throw new IllegalArgumentException("writeData for Structure: data must be ArrayStructure"); if (v2.getRank() == 0) throw new IllegalArgumentException("writeData for Structure: must have rank > 0"); Dimension d = v2.getDimension(0); if (!d.isUnlimited()) throw new IllegalArgumentException("writeData for Structure: must have unlimited dimension"); writeRecordData((Structure) v2, section, (ArrayStructure) values); } else { Layout layout = (!v2.isUnlimited()) ? new LayoutRegular(vinfo.begin, v2.getElementSize(), v2.getShape(), section) : new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, v2.getShape(), section); writeData(values, layout, dataType); } }
public void writeData(Variable v2, Section section, Array values) throws java.io.IOException, InvalidRangeException { N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject(); DataType dataType = v2.getDataType(); if (v2.isUnlimited()) { Range firstRange = section.getRange(0); setNumrecs(firstRange.last() + 1); } if (v2 instanceof Structure) { writeRecordData((Structure) v2, section, values); } else { Layout layout = (!v2.isUnlimited()) ? new LayoutRegular(vinfo.begin, v2.getElementSize(), v2.getShape(), section) : new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, v2.getShape(), section); writeData(values, layout, dataType); } }
@Override public Array readData(ucar.nc2.Variable v2, Section section) throws IOException, InvalidRangeException { /* if (debugRead) { System.out.printf("debugRead %s %s%n", v2.toStringDebug(), section); if (v2.getShortName().equals("cref")) System.out.println("HEY"); } */ if (v2 instanceof Structure) return readRecordData((Structure) v2, section); N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject(); DataType dataType = v2.getDataType(); Layout layout = (!v2.isUnlimited()) ? new LayoutRegular(vinfo.begin, v2.getElementSize(), v2.getShape(), section) : new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, v2.getShape(), section); if (layout.getTotalNelems() == 0) { return Array.factory(dataType, section.getShape()); } Object data = readData(layout, dataType); return Array.factory(dataType, section.getShape(), data); }
@Override public Array readData(ucar.nc2.Variable v2, Section section) throws IOException, InvalidRangeException { /* if (debugRead) { System.out.printf("debugRead %s %s%n", v2.toStringDebug(), section); if (v2.getShortName().equals("cref")) System.out.println("HEY"); } */ if (v2 instanceof Structure) return readRecordData((Structure) v2, section); N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject(); DataType dataType = v2.getDataType(); Layout layout = (!v2.isUnlimited()) ? new LayoutRegular(vinfo.begin, v2.getElementSize(), v2.getShape(), section) : new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, v2.getShape(), section); if (layout.getTotalNelems() == 0) { return Array.factory(dataType.getPrimitiveClassType(), section.getShape()); } Object data = readData(layout, dataType); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), data); }