Skip to content

Commit b5f2c6e

Browse files
Merge pull request #51 from indecisiveuser/overlap_only_patch
Fix Duplicate File Deletes when running Detect Interest Points with --overlappingOnly
2 parents 185945c + 41d8d66 commit b5f2c6e

2 files changed

Lines changed: 24 additions & 5 deletions

File tree

.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,15 @@
55
/.settings/
66
/.idea/
77
affine-fusion
8+
clear-interestpoints
9+
clear-registrations
10+
create-fusion-container
11+
detect-interestpoints
12+
downsample
13+
match-interestpoints
14+
nonrigid-fusion
15+
resave
16+
solver
17+
split-images
18+
stitching
19+
transform-points

src/main/java/net/preibisch/bigstitcher/spark/SparkInterestPointDetection.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
import java.util.concurrent.ExecutorService;
3434
import java.util.concurrent.Executors;
3535
import java.util.stream.Collectors;
36+
import java.util.Set;
37+
import java.util.HashSet;
3638

3739
import org.apache.spark.SparkConf;
3840
import org.apache.spark.api.java.JavaRDD;
@@ -662,6 +664,11 @@ public Void call() throws Exception
662664
rddResult.count();
663665

664666
final List<Tuple3<ViewId, long[][], String>> results = rddResult.collect();
667+
final Set<String> datasetSet = new HashSet<String>();
668+
for (Tuple3<ViewId, long[][], String> res : results) {
669+
datasetSet.add(res._3());
670+
}
671+
final List<String> datasetNoDups = new ArrayList<>(datasetSet);
665672

666673
// assemble all interest point intervals per ViewId
667674
final HashMap< ViewId, List< List< InterestPoint > > > interestPointsPerViewId = new HashMap<>();
@@ -704,18 +711,18 @@ public Void call() throws Exception
704711
{
705712
System.out.println( "Deleting temporary Spark files ... ");
706713

707-
final JavaRDD<Tuple3<ViewId, long[][], String>> rdd = sc.parallelize( results, Math.min( Spark.maxPartitions, results.size() ) );
714+
final JavaRDD<String> rdd = sc.parallelize( datasetNoDups, Math.min( Spark.maxPartitions, datasetNoDups.size() ) );
708715

709716
rdd.foreach( boundingBox ->
710717
{
711718
final N5Writer n5WriterLocal = URITools.instantiateN5Writer( StorageFormat.N5, tempURI );
712719

713-
if ( n5WriterLocal.datasetExists( tempDataset + "/" + boundingBox._3() + "/points" ))
720+
if ( n5WriterLocal.datasetExists( tempDataset + "/" + boundingBox + "/points" ))
714721
{
715-
n5WriterLocal.remove( tempDataset + "/" + boundingBox._3() + "/points" );
722+
n5WriterLocal.remove( tempDataset + "/" + boundingBox + "/points" );
716723

717-
if ( n5WriterLocal.datasetExists( tempDataset + "/" + boundingBox._3() + "/intensities" ) )
718-
n5WriterLocal.remove( tempDataset + "/" + boundingBox._3() + "/intensities" );
724+
if ( n5WriterLocal.datasetExists( tempDataset + "/" + boundingBox + "/intensities" ) )
725+
n5WriterLocal.remove( tempDataset + "/" + boundingBox + "/intensities" );
719726

720727
n5WriterLocal.close();
721728
}

0 commit comments

Comments
 (0)