Index: trunk/ippScripts/scripts/warp_overlap.pl
===================================================================
--- trunk/ippScripts/scripts/warp_overlap.pl	(revision 15690)
+++ trunk/ippScripts/scripts/warp_overlap.pl	(revision 15691)
@@ -18,4 +18,7 @@
 use PS::IPP::Metadata::List qw( parse_md_list );
 use File::Temp qw( tempfile );
+use File::Spec;
+use Getopt::Long qw( GetOptions :config auto_help auto_version gnu_getopt );
+use Pod::Usage qw( pod2usage );
 
 use PS::IPP::Config qw($PS_EXIT_SUCCESS
@@ -31,9 +34,7 @@
 		       file_scheme
 		       );
+use PS::IPP::Operations qw( generate_skycells );
+
 my $ipprc = PS::IPP::Config->new(); # IPP configuration
-use File::Spec;
-
-use Getopt::Long qw( GetOptions :config auto_help auto_version gnu_getopt );
-use Pod::Usage qw( pod2usage );
 
 my ($warp_id, $camera, $dbname, $workdir, $no_update, $no_op);
@@ -60,5 +61,4 @@
 my $warptool = can_run('warptool') or (warn "Can't find warptool" and $missing_tools = 1);
 my $dvoImageOverlaps = can_run('dvoImageOverlaps') or (warn "Can't find dvoImageOverlaps" and $missing_tools = 1);
-my $dvoImageExtract = can_run('dvoImageExtract') or (warn "Can't find dvoImageExtract" and $missing_tools = 1);
 my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
 if ($missing_tools) {
@@ -145,20 +145,9 @@
 	    }
 	}
-	
+
 	# Extract the skycells to images, used as warp templates.
-	foreach my $skycell_id (keys %unique_skycells) {
-	    my $skyDir = caturi($workdir, "tess_" . $tess_id, "sky_" . $skycell_id );
-	    my $skyFile = $ipprc->file_prepare( $skycell_id, $skyDir );
-	    unless ($ipprc->file_exists( $skyFile )) {
-		my $skyFileResolved = $ipprc->file_create( $skyFile ); # Resolved filename, for Nebulous
-		my $command = "$dvoImageExtract -D CATDIR $tess_dir $skycell_id -o $skyFileResolved";
-		my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
-		    run(command => $command, verbose => 1);
-		unless ($success) {
-		    $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
-		    &my_die("Unable to perform dvoImageExtract: $error_code", $warp_id, $error_code);
-		}
-	    }
-	}
+	my @skycells = keys %unique_skycells;
+	generate_skycells($ipprc, $tess_id, \@skycells, $workdir) or
+	    &my_die("Unable to generate skycells for tessellation $tess_id", $warp_id, $PS_EXIT_SYS_ERROR);
     }
 } else {
