tds/src/main/java/thredds/server/opendap/NcSDArray.java
public boolean read(String datasetName, Object specialO) throws IOException {
    long tstart = System.currentTimeMillis();

    Array a;
    try {
      if (log.isDebugEnabled())
        log.debug(getRequestedRange());

      // set up the netcdf read
      int n = numDimensions();
      List<Range> ranges = new ArrayList<>(n);
      for (int i = 0; i < n; i++)
        ranges.add(new Range(getStart(i), getStop(i), getStride(i)));

      try {
        a = ncVar.read(ranges);

      } catch (java.lang.ArrayIndexOutOfBoundsException t) {
        log.error(getRequestedRange(), t);
        throw new RuntimeException("NcSDArray java.lang.ArrayIndexOutOfBoundsException=" + t.getMessage()+
            " for request= "+ getRequestedRange()+" dataset= "+ datasetName, t);
      }

      if (debug)
        System.out.println("  NcSDArray Read " + getEncodedName() + " " + a.getSize() + " elems of type = " + a.getElementType());
      if (debugRead) System.out.println("  Read = " + a.getSize() + " elems of type = " + a.getElementType());
      if (log.isDebugEnabled()) {
        long tookTime = System.currentTimeMillis() - tstart;
        log.debug("NcSDArray read array: " + tookTime * .001 + " seconds");
      }

    } catch (InvalidDimensionException e) {
      log.error(getRequestedRange(), e);
      throw new IllegalStateException("NcSDArray InvalidDimensionException=" + e.getMessage());

    } catch (InvalidRangeException e) {
      log.error(getRequestedRange(), e);
      throw new IllegalStateException("NcSDArray InvalidRangeException=" + e.getMessage());
    }
    setData(a);

    if (debugRead) System.out.println(" PrimitiveVector len = " + getPrimitiveVector().getLength() +
            " type = " + getPrimitiveVector().getTemplate());

    return (false);
  }
public boolean read(String datasetName, Object specialO) throws IOException {
    long tstart = System.currentTimeMillis();

    Array a;
    try {
      if (log.isDebugEnabled())
        log.debug(getRequestedRange());

      // set up the netcdf read
      int n = numDimensions();
      List<Range> ranges = new ArrayList<>(n);
      for (int i = 0; i < n; i++)
        ranges.add(new Range(getStart(i), getStop(i), getStride(i)));

      try {
        a = ncVar.read(ranges);

      } catch (java.lang.ArrayIndexOutOfBoundsException t) {
        log.error(getRequestedRange(), t);
        throw new RuntimeException("NcSDArray java.lang.ArrayIndexOutOfBoundsException=" + t.getMessage()+
            " for request= "+ getRequestedRange()+" dataset= "+ datasetName, t);
      }

      if (debug)
        System.out.println("  NcSDArray Read " + getEncodedName() + " " + a.getSize() + " elems of type = " + a.getElementType());
      if (debugRead) System.out.println("  Read = " + a.getSize() + " elems of type = " + a.getElementType());
      if (log.isDebugEnabled()) {
        long tookTime = System.currentTimeMillis() - tstart;
        log.debug("NcSDArray read array: " + tookTime * .001 + " seconds");
      }

    } catch (InvalidDimensionException e) {
      log.error(getRequestedRange(), e);
      throw new IllegalStateException("NcSDArray InvalidDimensionException=" + e.getMessage());

    } catch (InvalidRangeException e) {
      log.error(getRequestedRange(), e);
      throw new IllegalStateException("NcSDArray InvalidRangeException=" + e.getMessage());
    }
    setData(a);

    if (debugRead) System.out.println(" PrimitiveVector len = " + getPrimitiveVector().getLength() +
            " type = " + getPrimitiveVector().getTemplate());

    return (false);
  }
public boolean read ( String datasetName , Object specialO ) throws IOException { long tstart = System . currentTimeMillis ( ) ; Array a ; try { if ( log . isDebugEnabled ( ) ) log . debug ( getRequestedRange ( ) ) ; // set up the netcdf read int n = numDimensions ( ) ; List < Range > ranges = new ArrayList <> ( n ) ; for ( int i = 0 ; i < n ; i ++ ) ranges . ( new Range ( getStart ( i ) , getStop ( i ) , getStride ( i ) ) ) ; try { = ncVar . read ( ranges ) ; } catch ( java . lang . ArrayIndexOutOfBoundsException t ) { log . error ( getRequestedRange ( ) , t ) ; throw new RuntimeException ( "NcSDArray java.lang.ArrayIndexOutOfBoundsException=" + t . getMessage ( ) + " for request= " + getRequestedRange ( ) + " dataset= " + datasetName , t ) ; } if ( debug ) System . out . println ( "  NcSDArray Read " + getEncodedName ( ) + " " + a . getSize ( ) + " elems of type = " + a . getElementType ( ) ) ; if ( debugRead ) System . out . println ( "  Read = " + a . getSize ( ) + " elems of type = " + a . getElementType ( ) ) ; if ( log . isDebugEnabled ( ) ) { long tookTime = System . currentTimeMillis ( ) - tstart ; log . debug ( "NcSDArray read array: " + tookTime * .001 + " seconds" ) ; } } catch ( InvalidDimensionException e ) { log . error ( getRequestedRange ( ) , e ) ; throw new IllegalStateException ( "NcSDArray InvalidDimensionException=" + e . getMessage ( ) ) ; } catch ( InvalidRangeException e ) { log . error ( getRequestedRange ( ) , e ) ; throw new IllegalStateException ( "NcSDArray InvalidRangeException=" + e . getMessage ( ) ) ; } setData ( a ) ; if ( debugRead ) System . out . println ( " PrimitiveVector len = " + getPrimitiveVector ( ) . getLength ( ) + " type = " + getPrimitiveVector ( ) . getTemplate ( ) ) ; return ( false ) ; }
Read the data values (parameters are ignored).
Use the start, stop and stride values, typically set by the constraint evaluator.

@param datasetName not used
@param specialO    not used
@return false (no more data to be read)
@throws IOException
@throws EOFException
Read the data values ( parameters are ignored ) . Use the start stop and stride values typically set by the constraint evaluator .