@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()); } }
/** * 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; }