Package ucar.ma2
Class ArrayStructure
java.lang.Object
ucar.ma2.Array
ucar.ma2.ArrayStructure
- All Implemented Interfaces:
Iterable<StructureData>
- Direct Known Subclasses:
ArraySequence,ArraySequenceNested,ArrayStructureBB,ArrayStructureComposite,ArrayStructureMA,ArrayStructureW
Superclass for implementations of Array of StructureData.
The general way to access data in an ArrayStructure is to use
StructureData getStructureData(Index index).For 1D arrays (or by calculating your own recnum for nD arrays), you can also use:
StructureData getStructureData(int recnum).Once you have a StructureData object, you can access data in a general way by using:
Array StructureData.getArray(Member m)When dealing with large arrays of Structures, there can be significant overhead in using the generic interfaces. A number of convenience routines may be able to avoid extra Object creation, and so are recommended for efficiency. The following may avoid the overhead of creating the StructureData object:
Array getArray(int recno, StructureMembers.Member m)The following can be convenient for accessing all the data in the ArrayStructure for one member, but its efficiency depends on the implementation:
Array getMemberArray(StructureMembers.Member m)These require that you know the data types of the member data, but they are the most efficent:
getScalarXXX(int recnum, Member m) getJavaArrayXXX(int recnum, Member m)where XXX is Byte, Char, Double, Float, Int, Long, Short, or String. For members that are themselves Structures, the equivilent is:
StructureData getScalarStructure(int recnum, Member m) ArrayStructure getArrayStructure(int recnum, Member m)These will return any compatible type as a double or float, but will have extra overhead when the types dont match:
convertScalarXXX(int recnum, Member m) convertJavaArrayXXX(int recnum, Member m)where XXX is Double or Float
- See Also:
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptiondoubleconvertScalarDouble(int recnum, StructureMembers.Member m) Get scalar value as a double, with conversion as needed.floatconvertScalarFloat(int recnum, StructureMembers.Member m) Get scalar value as a float, with conversion as needed.intconvertScalarInt(int recnum, StructureMembers.Member m) Get scalar value as an int, with conversion as needed.longconvertScalarLong(int recnum, StructureMembers.Member m) copy()DO NOT USE, throws UnsupportedOperationExceptioncreateView(Index index) Extract data for one member, over all structures.findMember(String memberName) Find a member by its name.getArray(int recno, StructureMembers.Member m) Get member data of any type for a specific record as an Array.getArrayObject(int recnum, StructureMembers.Member m) Get member data of type ArrayObjectgetArraySequence(int recnum, StructureMembers.Member m) Get member data of type ArraySequencegetArrayStructure(int recnum, StructureMembers.Member m) Get member data of type array of Structure.booleangetBoolean(int index) booleangetBoolean(Index i) DO NOT USE, throw ForbiddenConversionExceptionbytegetByte(int index) byteDO NOT USE, throw ForbiddenConversionExceptionchargetChar(int index) charDO NOT USE, throw ForbiddenConversionExceptiondoublegetDouble(int index) doubleDO NOT USE, throw ForbiddenConversionExceptionGet the element class type of this ArrayfloatgetFloat(int index) floatDO NOT USE, throw ForbiddenConversionExceptionintgetInt(int index) intDO NOT USE, throw ForbiddenConversionExceptionbyte[]getJavaArrayByte(int recnum, StructureMembers.Member m) Get member data of type byte as a 1D array.char[]getJavaArrayChar(int recnum, StructureMembers.Member m) Get member data of type char as a 1D array.double[]getJavaArrayDouble(int recnum, StructureMembers.Member m) Get member data of type double as a 1D array.float[]getJavaArrayFloat(int recnum, StructureMembers.Member m) Get member data of type float as a 1D array.int[]getJavaArrayInt(int recnum, StructureMembers.Member m) Get member data of type int as a 1D array.long[]getJavaArrayLong(int recnum, StructureMembers.Member m) Get member data of type long as a 1D array.short[]getJavaArrayShort(int recnum, StructureMembers.Member m) Get member data of type short as a 1D array.String[]getJavaArrayString(int recnum, StructureMembers.Member m) Get member data of type String as a 1D array.longgetLong(int index) longDO NOT USE, throw ForbiddenConversionExceptionGet a list of structure members.getObject(int index) Get the index-th StructureData of this ArrayStructure.Get the index-th StructureData of this ArrayStructure.bytegetScalarByte(int recnum, StructureMembers.Member m) Get scalar member data of type byte.chargetScalarChar(int recnum, StructureMembers.Member m) Get scalar member data of type char.doublegetScalarDouble(int recnum, StructureMembers.Member m) Get scalar member data of type double.floatgetScalarFloat(int recnum, StructureMembers.Member m) Get scalar member data of type float.intgetScalarInt(int recnum, StructureMembers.Member m) Get scalar member data of type int.longgetScalarLong(int recnum, StructureMembers.Member m) Get scalar member data of type long.getScalarObject(int recno, StructureMembers.Member m) Get member data array of any type as an Object, eg, Float, Double, String, StructureData etc.shortgetScalarShort(int recnum, StructureMembers.Member m) Get scalar member data of type short.getScalarString(int recnum, StructureMembers.Member m) Get member data of type String or char.getScalarStructure(int recnum, StructureMembers.Member m) Get member data of type Structure.shortgetShort(int index) shortDO NOT USE, throw ForbiddenConversionExceptionlongGet the total number of bytes in the array.Get underlying primitive array storage.getStructureData(int index) Get the index-th StructureData of this ArrayStructure.Get the index-th StructureData of this ArrayStructure.Get a list structure member names.Get the StructureMembers object.intGet the size of each StructureData object in bytes.iterator()sectionNoReduce(List<Range> ranges) Create a new Array as a subsection of this Array, without rank reduction.voidsetBoolean(int index, boolean value) voidsetBoolean(Index i, boolean value) DO NOT USE, throw ForbiddenConversionExceptionvoidsetByte(int index, byte value) voidDO NOT USE, throw ForbiddenConversionExceptionvoidsetChar(int index, char value) voidDO NOT USE, throw ForbiddenConversionExceptionvoidsetDouble(int index, double value) voidDO NOT USE, throw ForbiddenConversionExceptionvoidsetFloat(int index, float value) voidDO NOT USE, throw ForbiddenConversionExceptionvoidsetInt(int index, int value) voidDO NOT USE, throw ForbiddenConversionExceptionvoidsetLong(int index, long value) voidDO NOT USE, throw ForbiddenConversionExceptionvoidsetMemberArray(StructureMembers.Member m, Array memberArray) Set data for one member, over all structures.voidSet the index-th StructureData of this ArrayStructure.voidSet one of the StructureData of this ArrayStructure.voidsetShort(int index, short value) voidDO NOT USE, throw ForbiddenConversionExceptionvoidshowInternal(Formatter f, Indent indent) voidshowInternalMembers(Formatter f, Indent indent) Methods inherited from class ucar.ma2.Array
arraycopy, copyTo1DJavaArray, copyToNDJavaArray, factory, factory, factory, factory, factoryConstant, factoryCopy, flip, get1DJavaArray, get1DJavaArray, getDataAsByteBuffer, getDataAsByteBuffer, getDataAsByteBuffer, getDataType, getIndex, getIndexIterator, getRangeIterator, getRank, getShape, getSize, hasNext, isConstant, isUnsigned, isVlen, makeArray, makeArray, makeArray, makeArrayRankPlusOne, makeFromJavaArray, makeFromJavaArray, makeObjectArray, makeVlenArray, next, nextBoolean, nextByte, nextChar, nextDouble, nextFloat, nextInt, nextLong, nextShort, permute, reduce, reduce, resetLocalIterator, reshape, reshapeNoCopy, section, section, section, sectionNoReduce, shapeToString, slice, toString, transposeMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Method Details
-
getElementType
Description copied from class:ArrayGet the element class type of this Array- Specified by:
getElementTypein classArray- Returns:
- the class of the element
-
getStructureMembers
Get the StructureMembers object.- Returns:
- the StructureMembers object.
-
getMembers
Get a list of structure members.- Returns:
- the structure members.
-
getStructureMemberNames
Get a list structure member names.- Returns:
- the structure members.
-
findMember
Find a member by its name.- Parameters:
memberName- find member with this name- Returns:
- StructureMembers.Member matching the name, or null if not found
-
getSizeBytes
public long getSizeBytes()Description copied from class:ArrayGet the total number of bytes in the array.- Overrides:
getSizeBytesin classArray- Returns:
- total number of bytes in the array
-
getObject
Get the index-th StructureData of this ArrayStructure. -
setObject
Set one of the StructureData of this ArrayStructure. -
getObject
Get the index-th StructureData of this ArrayStructure. -
setObject
Set the index-th StructureData of this ArrayStructure. -
getStructureData
Get the index-th StructureData of this ArrayStructure.- Parameters:
i- which one to get, specified by an Index.- Returns:
- object of type StructureData.
-
getStructureData
Get the index-th StructureData of this ArrayStructure.- Parameters:
index- which one to get, specified by an integer.- Returns:
- object of type StructureData.
-
getStorage
Description copied from class:ArrayGet underlying primitive array storage. Exposed for efficiency, use at your own risk.- Specified by:
getStoragein classArray- Returns:
- underlying primitive array storage
-
getStructureSize
public int getStructureSize()Get the size of each StructureData object in bytes.- Returns:
- the size of each StructureData object in bytes.
-
iterator
- Specified by:
iteratorin interfaceIterable<StructureData>
-
getStructureDataIterator
-
getArray
Get member data of any type for a specific record as an Array. This may avoid the overhead of creating the StructureData object, but is equivilent to getStructure(recno).getArray( Member m).- Parameters:
recno- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member.- Returns:
- Array values.
-
setMemberArray
Set data for one member, over all structures. This is used by VariableDS to do scale/offset.- Parameters:
m- set data for this StructureMembers.Member.memberArray- Array values.
-
extractMemberArray
Extract data for one member, over all structures.- Parameters:
m- get data from this StructureMembers.Member.- Returns:
- Array values.
- Throws:
IOException- on read error (only happens for Sequences, otherwise data is already read)
-
getScalarObject
Get member data array of any type as an Object, eg, Float, Double, String, StructureData etc.- Parameters:
recno- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member.- Returns:
- value as Float, Double, etc..
-
convertScalarFloat
Get scalar value as a float, with conversion as needed. Underlying type must be convertible to float.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- member Variable.- Returns:
- scalar float value
- Throws:
ForbiddenConversionException- if not convertible to float.
-
convertScalarDouble
Get scalar value as a double, with conversion as needed. Underlying type must be convertible to double.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- member Variable.- Returns:
- scalar double value
- Throws:
ForbiddenConversionException- if not convertible to double.
-
convertScalarInt
Get scalar value as an int, with conversion as needed. Underlying type must be convertible to int.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- member Variable.- Returns:
- scalar double value
- Throws:
ForbiddenConversionException- if not convertible to double.
-
convertScalarLong
-
getScalarDouble
Get scalar member data of type double.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type double.- Returns:
- scalar double value
-
getJavaArrayDouble
Get member data of type double as a 1D array. The member data may be any rank.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type double.- Returns:
- double[]
-
getScalarFloat
Get scalar member data of type float.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type float.- Returns:
- scalar double value
-
getJavaArrayFloat
Get member data of type float as a 1D array.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type float.- Returns:
- float[]
-
getScalarByte
Get scalar member data of type byte.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type byte.- Returns:
- scalar double value
-
getJavaArrayByte
Get member data of type byte as a 1D array.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type byte.- Returns:
- byte[]
-
getScalarShort
Get scalar member data of type short.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type short.- Returns:
- scalar double value
-
getJavaArrayShort
Get member data of type short as a 1D array.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type float.- Returns:
- short[]
-
getScalarInt
Get scalar member data of type int.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type int.- Returns:
- scalar double value
-
getJavaArrayInt
Get member data of type int as a 1D array.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type int.- Returns:
- int[]
-
getScalarLong
Get scalar member data of type long.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type long.- Returns:
- scalar double value
-
getJavaArrayLong
Get member data of type long as a 1D array.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type long.- Returns:
- long[]
-
getScalarChar
Get scalar member data of type char.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type char.- Returns:
- scalar double value
-
getJavaArrayChar
Get member data of type char as a 1D array.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type char.- Returns:
- char[]
-
getScalarString
Get member data of type String or char.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type String or char.- Returns:
- scalar String value
-
getJavaArrayString
Get member data of type String as a 1D array.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type String.- Returns:
- String[]
-
getScalarStructure
Get member data of type Structure.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type Structure.- Returns:
- scalar StructureData
-
getArrayStructure
Get member data of type array of Structure.- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type Structure.- Returns:
- nested ArrayStructure.
-
getArraySequence
Get member data of type ArraySequence- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type Structure.- Returns:
- nested ArrayStructure.
-
getArrayObject
Get member data of type ArrayObject- Parameters:
recnum- get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m- get data from this StructureMembers.Member. Must be of type Structure.- Returns:
- ArrayObject.
-
showInternal
-
showInternalMembers
-
createView
-
sectionNoReduce
Description copied from class:ArrayCreate a new Array as a subsection of this Array, without rank reduction. No data is moved, so the new Array references the same backing store as the original. Vlen is transferred over unchanged.- Overrides:
sectionNoReducein classArray- Parameters:
ranges- list of Ranges that specify the array subset. Must be same rank as original Array. A particular Range: 1) may be a subset, or 2) may be null, meaning use entire Range.- Returns:
- the new Array
-
copy
DO NOT USE, throws UnsupportedOperationException -
getDouble
DO NOT USE, throw ForbiddenConversionException -
setDouble
DO NOT USE, throw ForbiddenConversionException -
getFloat
DO NOT USE, throw ForbiddenConversionException -
setFloat
DO NOT USE, throw ForbiddenConversionException -
getLong
DO NOT USE, throw ForbiddenConversionException -
setLong
DO NOT USE, throw ForbiddenConversionException -
getInt
DO NOT USE, throw ForbiddenConversionException -
setInt
DO NOT USE, throw ForbiddenConversionException -
getShort
DO NOT USE, throw ForbiddenConversionException -
setShort
DO NOT USE, throw ForbiddenConversionException -
getByte
DO NOT USE, throw ForbiddenConversionException -
setByte
DO NOT USE, throw ForbiddenConversionException -
getBoolean
DO NOT USE, throw ForbiddenConversionException- Specified by:
getBooleanin classArray- Parameters:
i- Index with current element set- Returns:
- value at
indexcast to boolean if necessary.
-
setBoolean
DO NOT USE, throw ForbiddenConversionException- Specified by:
setBooleanin classArray- Parameters:
i- Index with current element setvalue- the new value; cast to underlying data type if necessary.
-
getChar
DO NOT USE, throw ForbiddenConversionException -
setChar
DO NOT USE, throw ForbiddenConversionException -
getDouble
public double getDouble(int index) -
setDouble
public void setDouble(int index, double value) -
getFloat
public float getFloat(int index) -
setFloat
public void setFloat(int index, float value) -
getLong
public long getLong(int index) -
setLong
public void setLong(int index, long value) -
getInt
public int getInt(int index) -
setInt
public void setInt(int index, int value) -
getShort
public short getShort(int index) -
setShort
public void setShort(int index, short value) -
getByte
public byte getByte(int index) -
setByte
public void setByte(int index, byte value) -
getChar
public char getChar(int index) -
setChar
public void setChar(int index, char value) -
getBoolean
public boolean getBoolean(int index) - Specified by:
getBooleanin classArray
-
setBoolean
public void setBoolean(int index, boolean value) - Specified by:
setBooleanin classArray
-