return IospHelper.convertByteToChar( barray);
public long streamToByteChannel(ucar.nc2.Variable v2, Section section, WritableByteChannel channel) throws java.io.IOException, ucar.ma2.InvalidRangeException { Array data = readData(v2, section); return IospHelper.copyToByteChannel(data, channel); }
public long readToOutputStream(ucar.nc2.Variable v2, Section section, OutputStream out) throws java.io.IOException, ucar.ma2.InvalidRangeException { Array data = readData(v2, section); return IospHelper.copyToOutputStream(data, out); }
static public Object readDataFill(RandomAccessFile raf, Layout index, DataType dataType, Object fillValue, int byteOrder, boolean convertChar) throws java.io.IOException { Object arr = (fillValue == null) ? makePrimitiveArray((int) index.getTotalNelems(), dataType) : makePrimitiveArray((int) index.getTotalNelems(), dataType, fillValue); return readData(raf, index, dataType, arr, byteOrder, convertChar); }
Object arr = (vinfo.fillValue == null) ? IospHelper.makePrimitiveArray((int) section.computeSize(), dataType) : IospHelper.makePrimitiveArray((int) section.computeSize(), dataType, vinfo.fillValue); if (dataType == DataType.CHAR) arr = IospHelper.convertByteToChar((byte[]) arr); return Array.factory(dataType, section.getShape(), arr); if (!vinfo.isLinked && !vinfo.isChunked) { Layout layout = new LayoutRegular(vinfo.start, v.getElementSize(), v.getShape(), section); Object data = IospHelper.readDataFill(raf, layout, dataType, vinfo.fillValue, -1); return Array.factory(dataType, section.getShape(), data); Object data = IospHelper.readDataFill(raf, layout, dataType, vinfo.fillValue, -1); return Array.factory(dataType, section.getShape(), data); H4ChunkIterator chunkIterator = new H4ChunkIterator(vinfo); Layout layout = new LayoutTiled(chunkIterator, vinfo.chunkSize, v.getElementSize(), section); Object data = IospHelper.readDataFill(raf, layout, dataType, vinfo.fillValue, -1); return Array.factory(dataType, section.getShape(), data); InputStream is = getCompressedInputStream(vinfo); PositioningDataInputStream dataSource = new PositioningDataInputStream(is); Object data = IospHelper.readDataFill(dataSource, index, dataType, vinfo.fillValue); return Array.factory(dataType, section.getShape(), data); InputStream is = getLinkedCompressedInputStream(vinfo); PositioningDataInputStream dataSource = new PositioningDataInputStream(is); Object data = IospHelper.readDataFill(dataSource, index, dataType, vinfo.fillValue); return Array.factory(dataType, section.getShape(), data);
byte[] pa = IospHelper.convertCharToByte((char[]) values.get1DJavaArray(char.class)); for (int i = 0; i < pa.length; i++) stream.write(pa[i]);
static private void extractSection(ParsedSectionSpec child, ArrayStructure outerData, IndexIterator to) throws IOException, InvalidRangeException { long wantNelems = child.section.computeSize(); StructureMembers.Member m = outerData.findMember(child.v.getShortName()); for (int recno = 0; recno < outerData.getSize(); recno++) { Array innerData = outerData.getArray(recno, m); if (child.child == null) { // inner variable if (wantNelems != innerData.getSize()) innerData = innerData.section(child.section.getRanges()); MAMath.copy(child.v.getDataType(), innerData.getIndexIterator(), to); } else { // not an inner variable - must be an ArrayStructure if (innerData instanceof ArraySequence) extractSectionFromSequence(child.child, (ArraySequence) innerData, to); else { if (wantNelems != innerData.getSize()) innerData = sectionArrayStructure(child, (ArrayStructure) innerData, m); extractSection(child.child, (ArrayStructure) innerData, to); } } } }
/** * Read data subset from file for a variable, create primitive array. * @param index handles skipping around in the file. * @param dataType dataType of the variable * @return primitive array with data read in */ protected Object readData( Layout index, DataType dataType) throws java.io.IOException { return IospHelper.readDataFill(raf, index, dataType, null, -1); }
@Override public ucar.ma2.Array readSection(ParsedSectionSpec cer) throws IOException, InvalidRangeException { return IospHelper.readSection(cer); // IOSPs can optimize by overriding }
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; }
IospHelper.readData(raf, layout, DataType.STRUCTURE, result, -1, true); PositioningDataInputStream dataSource = new PositioningDataInputStream(is); Layout layout = new LayoutRegular(0, recsize, s.getShape(), section); IospHelper.readData(dataSource, layout, DataType.STRUCTURE, result); PositioningDataInputStream dataSource = new PositioningDataInputStream(is); Layout layout = new LayoutRegular(0, recsize, s.getShape(), section); IospHelper.readData(dataSource, layout, DataType.STRUCTURE, result); PositioningDataInputStream dataSource = new PositioningDataInputStream(is); Layout layout = new LayoutRegular(0, recsize, s.getShape(), section); IospHelper.readData(dataSource, layout, DataType.STRUCTURE, result);
Object arr = (vinfo.fillValue == null) ? IospHelper.makePrimitiveArray((int) section.computeSize(), dataType) : IospHelper.makePrimitiveArray((int) section.computeSize(), dataType, vinfo.fillValue); if (dataType == DataType.CHAR) arr = IospHelper.convertByteToChar((byte[]) arr); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), arr); if (!vinfo.isLinked && !vinfo.isChunked) { Layout layout = new LayoutRegular(vinfo.start, v.getElementSize(), v.getShape(), section); Object data = IospHelper.readDataFill(raf, layout, dataType, vinfo.fillValue, -1); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), data); Object data = IospHelper.readDataFill(raf, layout, dataType, vinfo.fillValue, -1); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), data); H4ChunkIterator chunkIterator = new H4ChunkIterator(vinfo); Layout layout = new LayoutTiled(chunkIterator, vinfo.chunkSize, v.getElementSize(), section); Object data = IospHelper.readDataFill(raf, layout, dataType, vinfo.fillValue, -1); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), data); InputStream is = getCompressedInputStream(vinfo); PositioningDataInputStream dataSource = new PositioningDataInputStream(is); Object data = IospHelper.readDataFill(dataSource, index, dataType, vinfo.fillValue); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), data); InputStream is = getLinkedCompressedInputStream(vinfo); PositioningDataInputStream dataSource = new PositioningDataInputStream(is); Object data = IospHelper.readDataFill(dataSource, index, dataType, vinfo.fillValue); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), data);
byte[] pa = IospHelper.convertCharToByte((char[]) values.get1DJavaArray(char.class)); for (int i = 0; i < pa.length; i++) stream.write(pa[i]);
static public Object readDataFill(RandomAccessFile raf, Layout index, DataType dataType, Object fillValue, int byteOrder, boolean convertChar) throws java.io.IOException { Object arr = (fillValue == null) ? makePrimitiveArray((int) index.getTotalNelems(), dataType) : makePrimitiveArray((int) index.getTotalNelems(), dataType, fillValue); return readData(raf, index, dataType, arr, byteOrder, convertChar); }
static private void extractSection(ParsedSectionSpec child, ArrayStructure outerData, IndexIterator to) throws IOException, InvalidRangeException { long wantNelems = child.section.computeSize(); StructureMembers.Member m = outerData.findMember(child.v.getShortName()); for (int recno = 0; recno < outerData.getSize(); recno++) { Array innerData = outerData.getArray(recno, m); if (child.child == null) { // inner variable if (wantNelems != innerData.getSize()) innerData = innerData.section(child.section.getRanges()); MAMath.copy(child.v.getDataType(), innerData.getIndexIterator(), to); } else { // not an inner variable - must be an ArrayStructure if (innerData instanceof ArraySequence) extractSectionFromSequence(child.child, (ArraySequence) innerData, to); else { if (wantNelems != innerData.getSize()) innerData = sectionArrayStructure(child, (ArrayStructure) innerData, m); extractSection(child.child, (ArrayStructure) innerData, to); } } } }
/** * Read data subset from file for a variable, create primitive array. * @param index handles skipping around in the file. * @param dataType dataType of the variable * @return primitive array with data read in */ protected Object readData( Layout index, DataType dataType) throws java.io.IOException { return IospHelper.readDataFill(raf, index, dataType, null, -1); }
@Override public ucar.ma2.Array readSection(ParsedSectionSpec cer) throws IOException, InvalidRangeException { return IospHelper.readSection(cer); // IOSPs can optimize by overriding }
static public ucar.ma2.Array readSection(ParsedSectionSpec cer) throws IOException, InvalidRangeException { Variable inner = null; List<Range> totalRanges = new ArrayList<Range>(); ParsedSectionSpec current = cer; while (current != null) { totalRanges.addAll(current.section.getRanges()); inner = current.v; current = current.child; } 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()); result.setUnsigned(cer.v.isUnsigned()); return result; }
IospHelper.readData(raf, layout, DataType.STRUCTURE, result, -1, true); PositioningDataInputStream dataSource = new PositioningDataInputStream(is); Layout layout = new LayoutRegular(0, recsize, s.getShape(), section); IospHelper.readData(dataSource, layout, DataType.STRUCTURE, result); PositioningDataInputStream dataSource = new PositioningDataInputStream(is); Layout layout = new LayoutRegular(0, recsize, s.getShape(), section); IospHelper.readData(dataSource, layout, DataType.STRUCTURE, result); PositioningDataInputStream dataSource = new PositioningDataInputStream(is); Layout layout = new LayoutRegular(0, recsize, s.getShape(), section); IospHelper.readData(dataSource, layout, DataType.STRUCTURE, result);
Object arr = (vinfo.fillValue == null) ? IospHelper.makePrimitiveArray((int) section.computeSize(), dataType) : IospHelper.makePrimitiveArray((int) section.computeSize(), dataType, vinfo.fillValue); if (dataType == DataType.CHAR) arr = IospHelper.convertByteToChar((byte[]) arr); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), arr); if (!vinfo.isLinked && !vinfo.isChunked) { Layout layout = new LayoutRegular(vinfo.start, v.getElementSize(), v.getShape(), section); Object data = IospHelper.readDataFill(raf, layout, dataType, vinfo.fillValue, -1); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), data); Object data = IospHelper.readDataFill(raf, layout, dataType, vinfo.fillValue, -1); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), data); H4ChunkIterator chunkIterator = new H4ChunkIterator(vinfo); Layout layout = new LayoutTiled(chunkIterator, vinfo.chunkSize, v.getElementSize(), section); Object data = IospHelper.readDataFill(raf, layout, dataType, vinfo.fillValue, -1); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), data); InputStream is = getCompressedInputStream(vinfo); PositioningDataInputStream dataSource = new PositioningDataInputStream(is); Object data = IospHelper.readDataFill(dataSource, index, dataType, vinfo.fillValue); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), data); InputStream is = getLinkedCompressedInputStream(vinfo); PositioningDataInputStream dataSource = new PositioningDataInputStream(is); Object data = IospHelper.readDataFill(dataSource, index, dataType, vinfo.fillValue); return Array.factory(dataType.getPrimitiveClassType(), section.getShape(), data);