Package ucar.nc2.iosp

Class LayoutRegularSegmented

  • All Implemented Interfaces:
    Layout

    public class LayoutRegularSegmented
    extends Object
    implements Layout
    LayoutRegularSegmented has data stored in segments that are regularly spaced. This is how Netcdf-3 "record variables" are laid out.
    • Constructor Detail

      • LayoutRegularSegmented

        public LayoutRegularSegmented​(long startPos,
                                      int elemSize,
                                      long recSize,
                                      int[] srcShape,
                                      Section wantSection)
                               throws InvalidRangeException
        Constructor.
        Parameters:
        startPos - starting address of the entire data array.
        elemSize - size of an element in bytes.
        recSize - size of outer stride in bytes
        srcShape - shape of the entire data array. must have rank > 0
        wantSection - the wanted section of data
        Throws:
        InvalidRangeException - if ranges are misformed
    • Method Detail

      • getTotalNelems

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

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

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

        public Layout.Chunk next()
        Description copied from interface: Layout
        Get the next chunk, not null if hasNext() is true.
        Specified by:
        next in interface Layout