@Override public TileIndex getDefinition () { return _base.getDefinition(); }
@Override public TileIndex getDefinition() { return _tileData.getDefinition(); }
@Override public TileIndex getDefinition () { return _data.getDefinition(); }
@Override public TileIndex getDefinition () { return _base.getDefinition(); }
@Override public TileIndex getDefinition () { return _tileData2.getDefinition(); }
@Override public TileIndex getDefinition () { return _base.getDefinition(); }
@Override public TileIndex getDefinition () { return _data.getDefinition(); }
@Override public TileIndex getDefinition () { return _base.getDefinition(); }
@Override public TileIndex getDefinition() { return _base.getDefinition(); }
@Override public TileIndex getDefinition() { return _components.get(0).getDefinition(); }
public MultiSliceTileView (List<TileData<List<T>>> components) { TileIndex i0 = null; for (TileData<List<T>> component: components) { if (null == i0) i0 = component.getDefinition(); else if (!i0.equals(component.getDefinition())) throw new IllegalArgumentException("Attempt to create a multislice tile view with incompatible components"); } _components = Collections.unmodifiableList(new ArrayList<>(components)); }
@Override public <T> void writeTiles (String basePath, TileSerializer<T> serializer, Iterable<TileData<T>> data) throws IOException { for (TileData<T> tile: data) { File tileFile = getTileFile(basePath, tile.getDefinition()); File parent = tileFile.getParentFile(); if (!parent.exists()) parent.mkdirs(); FileOutputStream fileStream = new FileOutputStream(tileFile); serializer.serialize(tile, fileStream); fileStream.close(); } }
public void provideTile (TileData<T> tile) { if (null == tile) return; TileIndex index = tile.getDefinition(); TileCacheEntry<T> entry = _cache.get(index); if (null != entry) entry.setTile(tile); }
@Override public <T> Put getPutForTile(TileData<T> tile, TileSerializer<T> serializer) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); serializer.serialize(tile, baos); return addToPut(null, rowIdFromTileIndex(tile.getDefinition()), TILE_COLUMN, baos.toByteArray()); } }
public BinaryOperationTileView(TileData<List<T>> tileData1, TileData<List<T>> tileData2, BinaryOperator.OPERATOR_TYPE op, Number errorValue) { _errorValue = errorValue; _tileData1 = tileData1; _tileData2 = tileData2; _op = new BinaryOperator(op); if ( getDefinition().getXBins() != _tileData1.getDefinition().getXBins() || getDefinition().getYBins() != _tileData1.getDefinition().getYBins()) { throw new IllegalArgumentException("Constructor for BinaryOperationTileBucketView: " + "arguments are invalid. Tiles to compare are incompatible"); } }
private <T> Map<TileIndex, TileData<T>> getTileMap (PyramidIO io, TileSerializer<T> serializer, String table, Integer slice, List<TileIndex> indices) throws Exception { if (null != slice) { table = table + "[" + slice + "]"; } List<TileData<T>> tiles = io.readTiles(table, serializer, indices); Map<TileIndex, TileData<T>> result = new HashMap<>(); for (TileData<T> tile: tiles) { result.put(tile.getDefinition(), tile); } return result; } List<Integer> addLists (List<Integer> a, List<Integer> b) {
/** * Send a tile through a round trip serialization, serializing through the writer, and deserializing through the reader. * @throws IOException */ public static <T> TileData<T> roundTrip (TileData<T> input, TileSerializer<T> writer, TileSerializer<T> reader) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); writer.serialize(input, baos); baos.flush(); baos.close(); ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); return reader.deserialize(input.getDefinition(), bais); }
@Override public <T> void writeTiles (String pyramidId, TileSerializer<T> serializer, Iterable<TileData<T>> data) throws IOException { for (TileData<T> tile: data) { ByteArrayOutputStream stream = new ByteArrayOutputStream(); serializer.serialize(tile, stream); stream.flush(); stream.close(); String key = getTileKey(pyramidId, tile.getDefinition()); _data.put(key, stream.toByteArray()); } }
private TileData<Double> addTiles (TileData<Double> a, TileData<Double> b) { int xBins = a.getDefinition().getXBins(); int yBins = a.getDefinition().getYBins(); List<Double> dc = new ArrayList<>(); for (int y = 0; y < yBins; ++y) { for (int x = 0; x < xBins; ++x) { dc.add(a.getBin(x, y) + b.getBin(x, y)); } } return new DenseTileData<Double>(a.getDefinition(), dc); }
/** * Check if two (single-value-per-bin) tiles are equal */ public static <T> void assertTilesEqual (TileData<T> expected, TileData<T> actual) { Assert.assertEquals(expected.getDefinition(), actual.getDefinition()); int xN = expected.getDefinition().getXBins(); int yN = expected.getDefinition().getYBins(); for (int x=0; x<xN; ++x) { for (int y=0; y<yN; ++y) { Assert.assertEquals(expected.getBin(x, y), actual.getBin(x, y)); } } }