private void doCopy(List<TileIndex> toCopy) throws IOException { List<TileData<T>> tiles = _source.readTiles(_parameters._sourceId, _serializer, toCopy); _destination.writeTiles(_parameters._destinationId, _serializer, tiles); }
private <T> void retrieveAndCopy (String pyramidId, TileSerializer<T> serializer, Iterable<TileIndex> indices) throws IOException { _to.writeTiles(pyramidId, serializer, _from.readTiles(pyramidId, serializer, indices)); }
private void showCurrentTile () { if (null == _pyramid) return; if (null == _pyramidId) return; if (null == _pyramidIO) return; if (null == _serializer && null == _bucketSerializer) return; if (null == _levelField.getSelectedItem()) return; if (null == _xField.getSelectedItem()) return; if (null == _yField.getSelectedItem()) return; TileIndex index = new TileIndex((Integer) _levelField.getSelectedItem(), (Integer) _xField.getSelectedItem(), (Integer) _yField.getSelectedItem()); try { List<TileData<Double>> data = null; if (null != _serializer) { data = _pyramidIO.readTiles(_pyramidId, _serializer, Collections.singleton(index)); } else { List<TileData<List<Double>>> rawData = _pyramidIO.readTiles(_pyramidId, _bucketSerializer, Collections.singleton(index)); data = new ArrayList<>(); for (TileData<List<Double>> tile: rawData) { data.add(new DenseTileSliceView<Double>(tile, 0)); } } if (1 == data.size()) { TileData<Double> tile = data.get(0); showTile(tile); } } catch (Exception e) { e.printStackTrace(); } }
private <T> List<TileData<T>> readAvroTiles (PyramidIO pio, TileSerializer<T> serializer, String pyramidId) { ArrayList<TileIndex> tiles = new ArrayList<TileIndex>(); TileIndex index = new TileIndex(4, 3, 2); tiles.add(index); try { return pio.readTiles(pyramidId, serializer, tiles); } catch (IOException e) { e.printStackTrace(); } return null; }
private <T> List<TileData<T>> readAvroTiles (PyramidIO pio, TileSerializer<T> serializer, String pyramidId) { ArrayList<TileIndex> tiles = new ArrayList<TileIndex>(); TileIndex index = new TileIndex(4, 3, 2); tiles.add(index); try { return pio.readTiles(pyramidId, serializer, tiles); } catch (IOException e) { e.printStackTrace(); } return null; }
private <T> List<TileData<T>> readAvroTiles (PyramidIO pio, TileSerializer<T> serializer, String pyramidId) { ArrayList<TileIndex> tiles = new ArrayList<TileIndex>(); TileIndex index = new TileIndex(4, 3, 2); tiles.add(index); try { return pio.readTiles(pyramidId, serializer, tiles); } catch (IOException e) { e.printStackTrace(); } return null; }
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) {
protected List< AnnotationTile > readTilesFromIO( String layer, List<TileIndex> indices ) { List< AnnotationTile > tiles = new LinkedList<>(); Set<TileIndex> readTiles = new HashSet<>(); if ( indices.size() == 0 ) { return tiles; } try { LayerConfiguration config = getLayerConfiguration( layer, null ); PyramidIO io = config.produce( PyramidIO.class ); TileSerializer<Map<String, List<Pair<String, Long>>>> serializer = SerializationTypeChecker.checkBinClass(config.produce(TileSerializer.class), getRuntimeBinClass(), getRuntimeTypeDescriptor()); String dataId = config.getPropertyValue(LayerConfiguration.DATA_ID); for ( AnnotationTile tile : AnnotationTile.convertFromRaw( io.readTiles(dataId, serializer, indices) ) ) { if (!readTiles.contains(tile.getDefinition())) { readTiles.add(tile.getDefinition()); tiles.add(tile); } } } catch ( Exception e ) { throw new IllegalArgumentException( e.getMessage() ); } return tiles; }
List<TileData<T>> tiles = base.readTiles(pyramidId, serializer, newIndices);
@Test public void testStringArrayTileSerialization() throws IOException { TileIndex index = new TileIndex(2, 0, 1, 10, 20); TileData<List<String>> tile = new DenseTileData<List<String>>(index); for (int x=0; x<10; ++x) { for (int y=0; y<20; ++y) { tile.setBin(x, y, Arrays.asList(String.format("bin [%d, %d]", x, y), "second", "third")); } } PyramidIO io = new TestPyramidIO(); TileSerializer<List<String>> serializer = new PrimitiveArrayAvroSerializer<>(String.class, CodecFactory.nullCodec()); io.writeTiles(".", serializer, Collections.singleton(tile)); List<TileData<List<String>>> tilesOut = io.readTiles(".", serializer, Collections.singleton(index)); Assert.assertEquals(1, tilesOut.size()); TileData<List<String>> firstOut = tilesOut.get(0); Assert.assertEquals(tile.getDefinition(), firstOut.getDefinition()); for (int x = 0; x < tile.getDefinition().getXBins(); ++x) { for (int y = 0; y < tile.getDefinition().getYBins(); ++y) { List<String> inData = tile.getBin(x, y); List<String> outData = firstOut.getBin(x, y); Assert.assertEquals(inData.size(), outData.size()); for (int j=0; j<inData.size(); ++j) { Assert.assertEquals(inData.get(j), outData.get(j)); } } } }
@Test public void testDoubleArrayTileSerialization() throws IOException { TileIndex index = new TileIndex(2, 0, 1, 10, 20); TileData<List<Double>> tile = new DenseTileData<List<Double>>(index); for (int x=0; x<10; ++x) { for (int y=0; y<20; ++y) { tile.setBin(x, y, Arrays.asList(1.0*x, 2.0*y)); } } PyramidIO io = new TestPyramidIO(); TileSerializer<List<Double>> serializer = new PrimitiveArrayAvroSerializer<>(Double.class, CodecFactory.nullCodec()); io.writeTiles(".", serializer, Collections.singleton(tile)); List<TileData<List<Double>>> tilesOut = io.readTiles(".", serializer, Collections.singleton(index)); Assert.assertEquals(1, tilesOut.size()); TileData<List<Double>> firstOut = tilesOut.get(0); Assert.assertEquals(tile.getDefinition(), firstOut.getDefinition()); for (int x = 0; x < tile.getDefinition().getXBins(); ++x) { for (int y = 0; y < tile.getDefinition().getYBins(); ++y) { List<Double> inData = tile.getBin(x, y); List<Double> outData = firstOut.getBin(x, y); Assert.assertEquals(inData.size(), outData.size()); for (int j=0; j<inData.size(); ++j) { Assert.assertEquals(inData.get(j), outData.get(j), 1E-12); } } } }
List<AnnotationTile> allTiles = AnnotationTile.convertFromRaw(_tileIO.readTiles(BASE_PATH, _tileSerializer, tileIndices)); List<AnnotationData<?>> allData = _dataIO.readData( BASE_PATH, _dataSerializer, dataIndices ); AnnotationUtil.printTiles( allTiles ); _dataIO.removeData(BASE_PATH, dataIndices ); allTiles = AnnotationTile.convertFromRaw(_tileIO.readTiles(BASE_PATH, _tileSerializer, tileIndices)); allData = _dataIO.readData( BASE_PATH, _dataSerializer, dataIndices );
List<AnnotationTile> allTiles = AnnotationTile.convertFromRaw(_tileIO.readTiles(TABLE_NAME, _tileSerializer, tileIndices)); List<AnnotationData<?>> allData = _dataIO.readData( TABLE_NAME, _dataSerializer, dataIndices ); AnnotationUtil.printTiles( allTiles ); _dataIO.removeData(TABLE_NAME, dataIndices ); allTiles = AnnotationTile.convertFromRaw(_tileIO.readTiles(TABLE_NAME, _tileSerializer, tileIndices)); allData = _dataIO.readData( TABLE_NAME, _dataSerializer, dataIndices );
@Test public void testDoubleTileSerialization() throws IOException { TileIndex index = new TileIndex(2, 0, 1, 10, 20); TileData<Double> tile = new DenseTileData<Double>(index); for (int x=0; x<10; ++x) { for (int y=0; y<20; ++y) { tile.setBin(x, y, ((x+10*y)%7)/2.0); } } PyramidIO io = new TestPyramidIO(); TileSerializer<Double> serializer = new PrimitiveAvroSerializer<>(Double.class, CodecFactory.nullCodec()); io.writeTiles(".", serializer, Collections.singleton(tile)); List<TileData<Double>> tilesOut = io.readTiles(".", serializer, Collections.singleton(index)); Assert.assertEquals(1, tilesOut.size()); TileData<Double> firstOut = tilesOut.get(0); Assert.assertEquals(tile.getDefinition(), firstOut.getDefinition()); for (int x = 0; x < tile.getDefinition().getXBins(); ++x) { for (int y = 0; y < tile.getDefinition().getYBins(); ++y) { Assert.assertEquals(tile.getBin(x, y), firstOut.getBin(x, y), 1E-12); } } }