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 <T> void writeAvroTiles (PyramidIO pio, TileSerializer<T> serializer, String pyramidId, ArrayList<TileData<T>> tiles) { try { pio.initializeForWrite(pyramidId); pio.writeTiles(pyramidId, serializer, tiles); } catch (IOException e) { e.printStackTrace(); } }
private <T> void writeAvroTiles (PyramidIO pio, TileSerializer<T> serializer, String pyramidId, ArrayList<TileData<T>> tiles) { try { pio.initializeForWrite(pyramidId); pio.writeTiles(pyramidId, serializer, tiles); } catch (IOException e) { e.printStackTrace(); } }
private <T> void writeAvroTiles (PyramidIO pio, TileSerializer<T> serializer, String pyramidId, ArrayList<TileData<T>> tiles) { try { pio.initializeForWrite(pyramidId); pio.writeTiles(pyramidId, serializer, tiles); } catch (IOException e) { e.printStackTrace(); } }
protected void writeTilesToIO( String layer, List< AnnotationTile > tiles ) { if ( tiles.size() == 0 ) return; 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); io.writeTiles( dataId, serializer, AnnotationTile.convertToRaw( tiles ) ); } catch ( Exception e ) { throw new IllegalArgumentException( e.getMessage() ); } }
@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); } } } }
_tileIO.writeTiles(BASE_PATH, _tileSerializer, AnnotationTile.convertToRaw(tiles) ); _dataIO.writeData(BASE_PATH, _dataSerializer, annotations );
_tileIO.writeTiles(TABLE_NAME, _tileSerializer, AnnotationTile.convertToRaw( tiles ) ); _dataIO.writeData(TABLE_NAME, _dataSerializer, annotations );
@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); } } }