@Test
  public void testCellTraverse() {
    trie = new GeohashPrefixTree(ctx, 4);

    Cell prevC = null;
    Cell c = trie.getWorldCell();
    assertEquals(0, c.getLevel());
    assertEquals(ctx.getWorldBounds(), c.getShape());
    while (c.getLevel() < trie.getMaxLevels()) {
      prevC = c;
      List<Cell> subCells = new ArrayList<>();
      CellIterator subCellsIter = c.getNextLevelCells(null);
      while (subCellsIter.hasNext()) {
        subCells.add(subCellsIter.next());
      }
      c = subCells.get(random().nextInt(subCells.size() - 1));

      assertEquals(prevC.getLevel() + 1, c.getLevel());
      Rectangle prevNShape = (Rectangle) prevC.getShape();
      Shape s = c.getShape();
      Rectangle sbox = s.getBoundingBox();
      assertTrue(prevNShape.getWidth() > sbox.getWidth());
      assertTrue(prevNShape.getHeight() > sbox.getHeight());
    }
  }
Example #2
0
  /**
   * Returns entire raster in double array format. Time and vert must be set if they are loaded.
   *
   * @return Entire raster.
   */
  public double[][] get() {

    // rgdOut = output
    // itr1 = iterator
    // cel1 = current cell

    double rgdOut[][];
    CellIterator itr1;
    Cell cel1;

    rgdOut = new double[iRows][iCols];
    for (int i = 0; i < rgdOut.length; i++) {
      for (int j = 0; j < rgdOut[0].length; j++) {
        rgdOut[i][j] = Double.NaN;
      }
    }

    itr1 = new CellIterator();
    while (itr1.hasNext()) {
      cel1 = itr1.next();
      rgdOut[cel1.iLat][cel1.iLon] = cel1.dValue;
    }
    return rgdOut;
  }