Class BufferedGridCoverage.CellAccessor

java.lang.Object
org.apache.sis.coverage.grid.DefaultEvaluator
org.apache.sis.coverage.grid.BufferedGridCoverage.CellAccessor
All Implemented Interfaces:
Function<org.opengis.geometry.DirectPosition,double[]>, BandedCoverage.Evaluator, GridCoverage.Evaluator
Enclosing class:
BufferedGridCoverage

private static final class BufferedGridCoverage.CellAccessor extends DefaultEvaluator
Implementation of evaluator returned by BandedCoverage.evaluator().
  • Field Details

    • data

      private final DataBuffer data
      A copy of BufferedGridCoverage.data reference.
    • lower

      private final long[] lower
      The grid lower values. Those values need to be subtracted to each grid coordinate before to compute index in data buffer.
    • sizes

      private final long[] sizes
      Grid size with shifted index. The size of dimension 0 is stored at index 1, the size of dimension 1 is stored in index 2, etc.. Element 0 contains the number of banks. This layout is convenient for computing index in DataBuffer.
    • banded

      private final boolean banded
      true for banded sample model, or false for pixel interleaved sample model.
  • Constructor Details

    • CellAccessor

      CellAccessor(BufferedGridCoverage coverage)
      Creates a new evaluator for the specified coverage.
  • Method Details

    • apply

      public double[] apply(org.opengis.geometry.DirectPosition point) throws CannotEvaluateException
      Returns a sequence of double values for a given point in the coverage. The CRS of the given point may be any coordinate reference system, or null for the same CRS than the coverage.
      Specified by:
      apply in interface BandedCoverage.Evaluator
      Specified by:
      apply in interface Function<org.opengis.geometry.DirectPosition,double[]>
      Overrides:
      apply in class DefaultEvaluator
      Parameters:
      point - the position where to evaluate.
      Returns:
      the sample values at the specified point, or null if the point is outside the coverage. For performance reason, this method may return the same array on every method call by overwriting previous values. Callers should not assume that the array content stay valid for a long time.
      Throws:
      CannotEvaluateException - if the values cannot be computed at the specified coordinates for another reason. This exception may be thrown if the coverage data type cannot be converted to double by an identity or widening conversion. Subclasses may relax this constraint if appropriate.