diff --git a/.gitignore b/.gitignore index 0985a22..232aba6 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,15 @@ /.settings/ /.idea/ affine-fusion +clear-interestpoints +clear-registrations +create-fusion-container +detect-interestpoints +downsample +match-interestpoints +nonrigid-fusion +resave +solver +split-images +stitching +transform-points \ No newline at end of file diff --git a/src/main/java/net/preibisch/bigstitcher/spark/SparkInterestPointDetection.java b/src/main/java/net/preibisch/bigstitcher/spark/SparkInterestPointDetection.java index bdad183..ddc2910 100644 --- a/src/main/java/net/preibisch/bigstitcher/spark/SparkInterestPointDetection.java +++ b/src/main/java/net/preibisch/bigstitcher/spark/SparkInterestPointDetection.java @@ -33,6 +33,8 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.stream.Collectors; +import java.util.Set; +import java.util.HashSet; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; @@ -662,6 +664,11 @@ public Void call() throws Exception rddResult.count(); final List> results = rddResult.collect(); + final Set datasetSet = new HashSet(); + for (Tuple3 res : results) { + datasetSet.add(res._3()); + } + final List datasetNoDups = new ArrayList<>(datasetSet); // assemble all interest point intervals per ViewId final HashMap< ViewId, List< List< InterestPoint > > > interestPointsPerViewId = new HashMap<>(); @@ -704,18 +711,18 @@ public Void call() throws Exception { System.out.println( "Deleting temporary Spark files ... "); - final JavaRDD> rdd = sc.parallelize( results, Math.min( Spark.maxPartitions, results.size() ) ); + final JavaRDD rdd = sc.parallelize( datasetNoDups, Math.min( Spark.maxPartitions, datasetNoDups.size() ) ); rdd.foreach( boundingBox -> { final N5Writer n5WriterLocal = URITools.instantiateN5Writer( StorageFormat.N5, tempURI ); - if ( n5WriterLocal.datasetExists( tempDataset + "/" + boundingBox._3() + "/points" )) + if ( n5WriterLocal.datasetExists( tempDataset + "/" + boundingBox + "/points" )) { - n5WriterLocal.remove( tempDataset + "/" + boundingBox._3() + "/points" ); + n5WriterLocal.remove( tempDataset + "/" + boundingBox + "/points" ); - if ( n5WriterLocal.datasetExists( tempDataset + "/" + boundingBox._3() + "/intensities" ) ) - n5WriterLocal.remove( tempDataset + "/" + boundingBox._3() + "/intensities" ); + if ( n5WriterLocal.datasetExists( tempDataset + "/" + boundingBox + "/intensities" ) ) + n5WriterLocal.remove( tempDataset + "/" + boundingBox + "/intensities" ); n5WriterLocal.close(); }