code: protected Double getNearestNeighborValue(GriddedTile griddedTile,
  			TImage image, Double[][] leftLastColumns, Double[][] topLeftRows,
  			Double[][] topRows, int y, int x, float widthRatio,
  			float heightRatio, float destTop, float destLeft, float srcTop,
  			float srcLeft) {
  
  		// Determine which source pixel to use
  		float xSource = getXSource(x, destLeft, srcLeft, widthRatio);
  		float ySource = getYSource(y, destTop, srcTop, heightRatio);
  
  		// Get the closest nearest neighbors
  		List<int[]> nearestNeighbors = getNearestNeighbors(xSource, ySource);
  
  		// Get the coverage data value from the source pixel nearest neighbors
  		// until one is found
  		Double value = null;
  		for (int[] nearestNeighbor : nearestNeighbors) {
  			value = getValueOverBorders(griddedTile, image, leftLastColumns,
  					topLeftRows, topRows, nearestNeighbor[0],
  					nearestNeighbor[1]);
  			if (value != null) {
  				break;
  			}
  		}
  
  		return value;
  	}
docs: Get the nearest neighbor coverage data value
  
  @param griddedTile
  gridded tile
  @param image
  image
  @param leftLastColumns
  last columns in the tile to the left
  @param topLeftRows
  last rows of the tile to the top left
  @param topRows
  last rows of the tile to the top
  @param y
  y coordinate
  @param x
  x coordinate
  @param widthRatio
  width source over destination ratio
  @param heightRatio
  height source over destination ratio
  @param destTop
  destination top most pixel
  @param destLeft
  destination left most pixel
  @param srcTop
  source top most pixel
  @param srcLeft
  source left most pixel
  @return nearest neighbor coverage data value