/** * /** Generate new Array with given type, shape, storage. * * @param dataType DataType, eg DataType.DOUBLE. * @param shape shape of the array. * @param storage primitive array of correct type * @return new Array<type> or Array<type>.D<rank> if 0 <= rank <= 7. */ static public Array factory(DataType dataType, int[] shape, Object storage) { return factory(dataType.getPrimitiveClassType(), shape, storage); }
public MAMath.MinMax getMinMaxData( float[] data) { int[] shape = new int[1]; shape[0] = data.length; Array a = Array.factory( DataType.FLOAT.getPrimitiveClassType(), shape, data); return MAMath.getMinMax( a); } int getGateDimsIndex(int cell, Dimension [] dList, int numSensor)
/** * Generate new Array with given type and shape and zeroed storage. * * @param dataType instance of DataType. * @param shape shape of the array. * @return new Array<type> or Array<type>.D<rank> if 0 <= rank <= 7. */ static public Array factory(DataType dataType, int[] shape) { Index index = Index.factory(shape); return factory(dataType.getPrimitiveClassType(), index); }
@Override public byte getScalarByte(int recnum, StructureMembers.Member m) { if (!(m.getDataType().getPrimitiveClassType() == byte.class)) throw new IllegalArgumentException("Type is "+m.getDataType()+", must be byte"); if (m.getDataArray() != null) return super.getScalarByte(recnum, m); int offset = calcOffsetSetOrder(recnum, m); return bbuffer.get(offset); }
@Override public long getScalarLong(int recnum, StructureMembers.Member m) { if (!(m.getDataType().getPrimitiveClassType() == long.class)) throw new IllegalArgumentException("Type is "+m.getDataType()+", must be long"); if (m.getDataArray() != null) return super.getScalarLong(recnum, m); int offset = calcOffsetSetOrder(recnum, m); return bbuffer.getLong(offset); }
@Override public short getScalarShort(int recnum, StructureMembers.Member m) { if (!(m.getDataType().getPrimitiveClassType() == short.class)) throw new IllegalArgumentException("Type is "+m.getDataType()+", must be short"); if (m.getDataArray() != null) return super.getScalarShort(recnum, m); int offset = calcOffsetSetOrder(recnum, m); return bbuffer.getShort(offset); }
@Override public short[] getJavaArrayShort(int recnum, StructureMembers.Member m) { if (!(m.getDataType().getPrimitiveClassType() == short.class)) throw new IllegalArgumentException("Type is "+m.getDataType()+", must be short"); if (m.getDataArray() != null) return super.getJavaArrayShort(recnum, m); int offset = calcOffsetSetOrder(recnum, m); int count = m.getSize(); short[] pa = new short[count]; for (int i = 0; i < count; i++) pa[i] = bbuffer.getShort(offset + i * 2); return pa; }
@Override public long[] getJavaArrayLong(int recnum, StructureMembers.Member m) { if (!(m.getDataType().getPrimitiveClassType() == long.class)) throw new IllegalArgumentException("Type is "+m.getDataType()+", must be long"); if (m.getDataArray() != null) return super.getJavaArrayLong(recnum, m); int offset = calcOffsetSetOrder(recnum, m); int count = m.getSize(); long[] pa = new long[count]; for (int i = 0; i < count; i++) pa[i] = bbuffer.getLong(offset + i * 8); return pa; }
public short getScalarShort(int recnum, StructureMembers.Member m) { if (!(m.getDataType().getPrimitiveClassType() == short.class)) throw new IllegalArgumentException("Type is "+m.getDataType()+", must be short"); Array data = m.getDataArray(); return data.getShort( recnum * m.getSize()); // gets first one in the array }
public byte[] getJavaArrayByte(int recnum, StructureMembers.Member m) { if (!(m.getDataType().getPrimitiveClassType() == byte.class)) throw new IllegalArgumentException("Type is "+m.getDataType()+", must be byte"); int count = m.getSize(); Array data = m.getDataArray(); byte[] pa = new byte[count]; for (int i=0; i<count; i++) pa[i] = data.getByte( recnum * count + i); return pa; }
public short[] getJavaArrayShort(int recnum, StructureMembers.Member m) { if (!(m.getDataType().getPrimitiveClassType() == short.class)) throw new IllegalArgumentException("Type is "+m.getDataType()+", must be short"); int count = m.getSize(); Array data = m.getDataArray(); short[] pa = new short[count]; for (int i=0; i<count; i++) pa[i] = data.getShort( recnum * count + i); return pa; }
public int getScalarInt(int recnum, StructureMembers.Member m) { if (!(m.getDataType().getPrimitiveClassType() == int.class)) throw new IllegalArgumentException("Type is "+m.getDataType()+", must be int"); Array data = m.getDataArray(); return data.getInt( recnum * m.getSize()); // gets first one in the array }
public long[] getJavaArrayLong(int recnum, StructureMembers.Member m) { if (!(m.getDataType().getPrimitiveClassType() == long.class)) throw new IllegalArgumentException("Type is "+m.getDataType()+", must be long"); int count = m.getSize(); Array data = m.getDataArray(); long[] pa = new long[count]; for (int i=0; i<count; i++) pa[i] = data.getLong( recnum * count + i); return pa; }
private void makeCoordinateData(Variable elev, Variable azim, DoradeSweep mySweep) { Object ele = (Object) mySweep.getElevations(); Object azi = (Object) mySweep.getAzimuths(); Array elevData = Array.factory( elev.getDataType().getPrimitiveClassType(), elev.getShape(), ele); Array aziData = Array.factory( azim.getDataType().getPrimitiveClassType(), azim.getShape(), azi); elev.setCachedData( elevData, false); azim.setCachedData( aziData, false); }
public Array readData2(Variable v2, Section section, double[] values) { Array data = Array.factory(v2.getDataType().getPrimitiveClassType(), section.getShape()); IndexIterator ii = data.getIndexIterator(); Range radialRange = section.getRange(0); for (int r = radialRange.first(); r <= radialRange.last(); r += radialRange.stride()) { ii.setDoubleNext(values[r]); } return data; }
public Array readData2(Variable v2, Section section, double[] values) { Array data = Array.factory(v2.getDataType().getPrimitiveClassType(), section.getShape()); IndexIterator ii = data.getIndexIterator(); Range radialRange = section.getRange(0); for (int r = radialRange.first(); r <= radialRange.last(); r += radialRange.stride()) { ii.setDoubleNext(values[r]); } return data; }
public Array readData1(Variable v2, Section section, float[] values) { Array data = Array.factory(v2.getDataType().getPrimitiveClassType(), section.getShape()); IndexIterator ii = data.getIndexIterator(); Range radialRange = section.getRange(0); // radial range can also be gate range for (int r = radialRange.first(); r <= radialRange.last(); r += radialRange.stride()) { ii.setFloatNext(values[r]); } return data; }
public Array readData(Variable v2, Section section) throws IOException, InvalidRangeException { Vgroup vgroup = (Vgroup) v2.getSPobject(); Range scanRange = section.getRange(0); Range radialRange = section.getRange(1); Range gateRange = section.getRange(2); Array data = Array.factory(v2.getDataType().getPrimitiveClassType(), section.getShape()); IndexIterator ii = data.getIndexIterator(); for (int i=scanRange.first(); i<=scanRange.last(); i+= scanRange.stride()) { Level2Record[] mapScan = vgroup.map[i]; readOneScan(mapScan, radialRange, gateRange, vgroup.datatype, ii); } return data; }
public Array readData(Variable v2, Section section) throws IOException, InvalidRangeException { Vgroup vgroup = (Vgroup) v2.getSPobject(); Range scanRange = section.getRange(0); Range radialRange = section.getRange(1); Range gateRange = section.getRange(2); Array data = Array.factory(v2.getDataType().getPrimitiveClassType(), section.getShape()); IndexIterator ii = data.getIndexIterator(); for (int i = scanRange.first(); i <= scanRange.last(); i += scanRange.stride()) { Ray[] mapScan = vgroup.map[i]; readOneScan(mapScan, radialRange, gateRange, vgroup.abbrev, ii); } return data; }
static public void testVarMatchesData( Variable v, boolean showStatus) throws IOException { Array data = v.read(); assert data.getSize() == v.getSize(); assert data.getElementType() == v.getDataType().getPrimitiveClassType(); assert data.getRank() == v.getRank(); int[] dataShape = data.getShape(); int[] varShape = v.getShape(); for (int i=0; i<data.getRank(); i++) assert dataShape[i] == varShape[i]; if (showStatus) logger.debug( "**** testReadData done on {}", v.getFullName()); } }