Package nom.tam.fits

Class RandomGroupsData

java.lang.Object
nom.tam.fits.Data
nom.tam.fits.RandomGroupsData
All Implemented Interfaces:
FitsElement

public class RandomGroupsData extends Data
Random Groups data. The use of random groups is discouraged, even by the FITS standard. Some old radio data may be packaged in this format. Thus apart from provided limited support for reading such data, users should not create random groups anew. BinaryTable offers a much more flexible and capable way for storing an ensemble of parameters, arrays, and more.

Random groups are instantiated as a two-dimensional array of objects. The first dimension of the array is the number of groups. The second dimension is 2. The first object in every row is a one dimensional parameter array. The second element is the n-dimensional data array.

See Also:
  • Constructor Details

    • RandomGroupsData

      public RandomGroupsData()
      Create the equivalent of a null data element.
    • RandomGroupsData

      public RandomGroupsData(Object[][] x) throws IllegalArgumentException
      Create a RandomGroupsData object using the specified object to initialize the data array.
      Parameters:
      x - The initial data array. This should a two-d array of objects as described above.
      Throws:
      IllegalArgumentException - if the second array dimension is specified and it is not 2, or if the parameter arrya is not 1-dimensional, or if the parameter and data types differ.
  • Method Details

    • getElementType

      public Class<?> getElementType()
      Returns the Java class of the the parameter and data array elements.
      Returns:
      The java class of the parameter and data elements.
      Since:
      1.18
    • getParameterCount

      public int getParameterCount()
      Returns the dimensions of the grouped parameters
      Returns:
      The dimensions of the parameters or -1 if not defined.
      Since:
      1.18
      See Also:
    • getDataDims

      public int[] getDataDims()
      Returns the dimensions of the grouped data
      Returns:
      The dimensions of the parameters, or null if not defined.
      Since:
      1.18
      See Also:
    • fillHeader

      protected void fillHeader(Header h) throws FitsException
      Description copied from class: Data
      Describe the structure of this data object in the supplied header.
      Specified by:
      fillHeader in class Data
      Parameters:
      h - header to fill with the data from the current data object
      Throws:
      FitsException - if the operation fails
    • getTrueSize

      protected long getTrueSize()
      Description copied from class: Data
      Returns the calculated byte size of the data, regardless of whether the data is currently in memory or not.
      Specified by:
      getTrueSize in class Data
      Returns:
      the calculated byte size for the data.
    • isEmpty

      public boolean isEmpty()
      Description copied from class: Data
      Checks if the data content is currently empty, i.e. no actual data is currently stored in memory.
      Overrides:
      isEmpty in class Data
      Returns:
      true if there is no actual data in memory, otherwise false
      See Also:
    • loadData

      protected void loadData(ArrayDataInput in) throws IOException
      Description copied from class: Data

      Load data from the current position of the input into memory. This may be triggered immediately when calling Data.read(ArrayDataInput) if called on a non random accessible input, or else later when data is accessed via Data.ensureData(), for example as a result of a Data.getData() call. This method will not be called unless there is actual data of non-zero size to be read.

      Implementations should create appropriate data structures and populate them from the specified input.

      Specified by:
      loadData in class Data
      Parameters:
      in - The input from which to load data
      Throws:
      IOException - if the data could not be loaded from the input.
      See Also:
    • getCurrentData

      protected Object[][] getCurrentData()
      Description copied from class: Data
      Returns the data content that is currently in memory. In case of a data object in deferred read state (that is its prescription has been parsed from the header, but no data content was loaded yet from a random accessible input), this call may return null or an object representing empty data.
      Specified by:
      getCurrentData in class Data
      Returns:
      The current data content in memory.
      See Also:
    • getData

      public Object[][] getData() throws FitsException
      Description copied from class: Data
      Returns the underlying Java representation of the data contained in this HDU's data segment. Typically it will return a Java array of some kind.
      Overrides:
      getData in class Data
      Returns:
      the underlying Java representation of the data core object, such as a multi-dimensional Java array.
      Throws:
      FitsException - if the data could not be gathered.
      See Also:
    • write

      public void write(ArrayDataOutput str) throws FitsException
      Description copied from interface: FitsElement
      Writes the contents of the element to a data sink, adding padding as necessary if the element (such as a header or data segment) is expected to complete the FITS block of 2880 bytes.
      Specified by:
      write in interface FitsElement
      Specified by:
      write in class Data
      Parameters:
      str - The data sink.
      Throws:
      FitsException - if the write was unsuccessful.
    • toHDU

      public RandomGroupsHDU toHDU() throws FitsException
      Description copied from class: Data
      Returns an approprotae HDU object that encapsulates this FITS data, and contains the minimal mandatory header description for that data.
      Specified by:
      toHDU in class Data
      Returns:
      a HDU object ocntaining the data and its minimal required header description
      Throws:
      FitsException - If the data cannot be converted to an HDU for some reason.
    • getImage

      public Object getImage(int group) throws ArrayIndexOutOfBoundsException, FitsException
      Returns the image component stored in the specified group.
      Parameters:
      group - The zero-based group index
      Returns:
      The image array for the specified group
      Throws:
      ArrayIndexOutOfBoundsException - if the group index is out of bounds
      FitsException - if the deferred data could not be loaded.
      Since:
      1.19
      See Also: