Package ucar.nc2.iosp

Class LayoutRegular

java.lang.Object
ucar.nc2.iosp.LayoutRegular
All Implemented Interfaces:
Layout

public class LayoutRegular extends Object implements Layout
Indexer into data that has a "regular" layout, like netcdf-3 and hdf5 compact and contiguous storage. The data is contiguous, with outer dimension varying fastest. Given a Section, this calculates the set of contiguous "chunks" of the wanted data into the stored data. The wanted section is always a subset of the data section (see RegularSectionLayout where thats not the case).
Since:
Jan 3, 2008
  • Constructor Details

    • LayoutRegular

      public LayoutRegular(long startPos, int elemSize, int[] varShape, @Nullable Section wantSection) throws InvalidRangeException
      Constructor.
      Parameters:
      startPos - starting address of the entire data array.
      elemSize - size of an element in bytes.
      varShape - shape of the entire data array.
      wantSection - the wanted section of data, contains a List of Range objects.
      Throws:
      InvalidRangeException - if ranges are misformed
  • Method Details

    • getTotalNelems

      public long getTotalNelems()
      Description copied from interface: Layout
      Get total number of elements in the wanted subset.
      Specified by:
      getTotalNelems in interface Layout
      Returns:
      total number of elements in the wanted subset.
    • getElemSize

      public int getElemSize()
      Description copied from interface: Layout
      Get size of each element in bytes.
      Specified by:
      getElemSize in interface Layout
      Returns:
      size of each element in bytes.
    • hasNext

      public boolean hasNext()
      Description copied from interface: Layout
      Is there more to do
      Specified by:
      hasNext in interface Layout
      Returns:
      true if theres more to do
    • next

      public Layout.Chunk next()
      Description copied from interface: Layout
      Get the next chunk
      Specified by:
      next in interface Layout
      Returns:
      next chunk, or null if !hasNext()