From 60db00f400a98b83e063c806e786f72cdaf5de56 Mon Sep 17 00:00:00 2001
From: tpietzsch <tobias.pietzsch@gmail.com>
Date: Wed, 17 Oct 2018 22:21:18 +0200
Subject: [PATCH] ExportHugeImage
---
src/test/java/bdv/export/ExportHugeImage.java | 105 ++++++++++++++++++
1 file changed, 105 insertions(+)
create mode 100644 src/test/java/bdv/export/ExportHugeImage.java
diff --git a/src/test/java/bdv/export/ExportHugeImage.java b/src/test/java/bdv/export/ExportHugeImage.java
new file mode 100644
index 00000000..7777487f
--- /dev/null
+++ b/src/test/java/bdv/export/ExportHugeImage.java
@@ -0,0 +1,105 @@
+package bdv.export;
+
+import bdv.export.WriteSequenceToHdf5.AfterEachPlane;
+import bdv.export.WriteSequenceToHdf5.LoopbackHeuristic;
+import bdv.spimdata.SequenceDescriptionMinimal;
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Map;
+import mpicbg.spim.data.generic.sequence.BasicSetupImgLoader;
+import mpicbg.spim.data.generic.sequence.BasicViewSetup;
+import mpicbg.spim.data.generic.sequence.ImgLoaderHint;
+import mpicbg.spim.data.generic.sequence.TypedBasicImgLoader;
+import mpicbg.spim.data.sequence.FinalVoxelDimensions;
+import mpicbg.spim.data.sequence.TimePoint;
+import mpicbg.spim.data.sequence.TimePoints;
+import mpicbg.spim.data.sequence.VoxelDimensions;
+import net.imglib2.RandomAccessibleInterval;
+import net.imglib2.img.array.ArrayImgs;
+import net.imglib2.type.numeric.integer.UnsignedShortType;
+import net.imglib2.util.Intervals;
+import net.imglib2.util.Util;
+import net.imglib2.view.Views;
+
+public class ExportHugeImage
+{
+ private final File hdf5File = new File( "/Users/pietzsch/Desktop/huge.h5" );
+
+ private final RandomAccessibleInterval< UnsignedShortType > input;
+
+ public ExportHugeImage()
+ {
+ input = Views.interval(
+ Views.extendZero( ArrayImgs.unsignedShorts( 1, 1, 1 ) ),
+ Intervals.createMinSize( 0, 0, 0, 10000, 10000, 10000 ) );
+ }
+
+ public static class RAIImgLoader< T > implements TypedBasicImgLoader< T >
+ {
+ private final BasicSetupImgLoader< T > setupImgLoader;
+
+ public RAIImgLoader( final RandomAccessibleInterval< T > rai )
+ {
+ this( rai, Util.getTypeFromInterval( rai ) );
+ }
+
+ public RAIImgLoader( final RandomAccessibleInterval< T > rai, final T type )
+ {
+ setupImgLoader = new BasicSetupImgLoader< T >()
+ {
+ @Override
+ public RandomAccessibleInterval< T > getImage( final int timepointId, final ImgLoaderHint... hints )
+ {
+ return rai;
+ }
+
+ @Override
+ public T getImageType()
+ {
+ return type;
+ }
+ };
+ }
+
+ @Override
+ public BasicSetupImgLoader< T > getSetupImgLoader( final int setupId )
+ {
+ return setupImgLoader;
+ }
+ }
+
+ private static VoxelDimensions defaultVoxelDimensions( int numDimensions )
+ {
+ double[] dimensions = new double[ numDimensions ];
+ Arrays.fill( dimensions, 1.0 );
+ return new FinalVoxelDimensions( "px", dimensions );
+ }
+
+ public void run()
+ {
+ final String name = "img";
+ final RandomAccessibleInterval< UnsignedShortType > rai = input;
+
+ final VoxelDimensions voxelSize = defaultVoxelDimensions( rai.numDimensions() );
+ final BasicViewSetup setup = new BasicViewSetup( 0, name, rai, voxelSize );
+ final Map< Integer, BasicViewSetup > setups = Collections.singletonMap( setup.getId(), setup );
+ final TimePoints timepoints = new TimePoints( Collections.singletonList( new TimePoint( 0 ) ) );
+ final RAIImgLoader< UnsignedShortType > imgLoader = new RAIImgLoader<>( rai );
+ final SequenceDescriptionMinimal seq = new SequenceDescriptionMinimal( timepoints, setups, imgLoader, null );
+
+ final Map< Integer, ExportMipmapInfo > perSetupExportMipmapInfo = Collections.singletonMap( setup.getId(), ProposeMipmaps.proposeMipmaps( setup ) );
+ final boolean deflate = false;
+ final int numCellCreatorThreads = 10;
+ final ProgressWriterConsole progressWriter = new ProgressWriterConsole();
+ final LoopbackHeuristic loopbackHeuristic = null;
+ final AfterEachPlane afterEachPlane = null;
+
+ WriteSequenceToHdf5.writeHdf5File( seq, perSetupExportMipmapInfo, deflate, hdf5File, loopbackHeuristic, afterEachPlane, numCellCreatorThreads, progressWriter );
+ }
+
+ public static void main( String[] args )
+ {
+ new ExportHugeImage().run();
+ }
+}
--
GitLab