Index: /branches/eam_branches/ipp-20120905/Ohana/src/shell/src/bbc.jpegs
===================================================================
--- /branches/eam_branches/ipp-20120905/Ohana/src/shell/src/bbc.jpegs	(revision 34727)
+++ /branches/eam_branches/ipp-20120905/Ohana/src/shell/src/bbc.jpegs	(revision 34727)
@@ -0,0 +1,147 @@
+#!/usr/bin/env mana
+
+# USAGE: bbc.jpegs NX NY (output) (expname) (expname) (expname) (expname) ... [number of exposures is arbitrary?)
+
+# create the output directory
+# loop over the exposures
+#   use warptool to select the list of warp skycells for each exposure
+#   loop over the skycells
+#     read the skycell pixels
+#     subset into NX x NY pieces
+#     write each jpeg to expname.skycell.xy.jpeg
+#     extract the WCS from the skycell header
+#     write the WCS to the output manifest file
+#  tar the directory?
+
+macro outer.loop
+  $NX = $argv:0
+  $NY = $argv:1
+  $outdir = $argv:2
+  $KAPA = kapa -noX
+  mkdir $outdir
+
+  for i 3 $argv:n
+    mkjpegs $argv:$i
+  end
+
+  exec tar cvzf $outdir.tgz $outdir
+end
+
+macro mkjpegs
+  if ($0 != 2)
+    echo "USAGE: mkjpegs (path_base)"
+    break
+  end
+
+  echo "mkjpegs $1"
+  
+  # read in the image
+  # split into NX x NY images
+  
+  rd skycell -x 0 $1.fits
+  keyword skycell NAXIS1 Nx
+  keyword skycell NAXIS2 Ny
+
+  $dX = int($Nx / $NX)
+  $dY = int($Ny / $NY)
+
+  # resize the display to match $dX,dY
+
+  for ix 0 $NX
+    for iy 0 $NY
+      delete -q out 
+      extract skycell out {$ix*$dX} {$iy*$dY} $dX $dY 0 0 $dX $dY
+      stats -q out
+      tv out -50 500
+      jpeg -name $outdir/skycell.$ix.$iy.jpg
+    end
+  end
+end
+
+macro get.skycells
+  if ($0 != 2)
+    echo "USAGE: mkjpegs (expname)"
+    break
+  end
+
+  # saves result in $warp_id
+  get.warpid $1
+
+  queueload warplist_queue -x "warptool -dbname gpc1 -warped -exp_name $1 -warp_id $warp_id"
+  # XXX check for no output
+
+  # XXX need to move ipptool2book from pantasks to cmd.data
+  ipptool2book warplist_queue warplist
+
+  # select the skycells
+  book npages warplist -var npages
+  if ($npages == 0) 
+    echo "no warped skycells for $1"
+    break
+  end
+
+  for i 0 $npages
+    sprint page page.%03d $i
+    book getword warplist $page path_base -var path_base
+    book getword warplist $page quality -var quality
+    book getword warplist $page maskfrac_static -var mask_static
+
+    if ($quality > 0) continue
+    if ($mask_static > 0.15) continue
+    
+    echo mkjpegs $quality $mask_static $path_base
+    mkjpegs $path_base
+  end
+end
+
+macro get.warpid
+  if ($0 != 2)
+    echo "USAGE: get.warpid (expname)"
+    break
+  end
+
+  queueload warprun_queue -x "warptool -dbname gpc1 -listrun -exp_name $1"
+  # XXX check for no output
+
+  # XXX need to move ipptool2book from pantasks to cmd.data
+  ipptool2book warprun_queue warprun
+
+  # select the earliest warp run
+  book npages warprun -var npages
+  if ($npages == 0) 
+    echo "no warp runs for $1"
+    break
+  end
+
+  for i 0 $npages
+    sprint page page.%03d $i
+    book getword warprun $page warp_id -var warp_id:$i
+    book getword warprun $page state   -var state:$i
+  end
+
+  $minN  = 0
+  $minID = $warp_id:0
+  for i 1 $npages
+    if ($warp_id:$i > $minID) continue
+    $minN  = $i
+    $minID = $warp_id:$i
+  end
+  
+  if ($state:$minN != "full") 
+    echo "selected warp is not in state 'full'"
+    break
+  end  
+
+  $warp_id = $minID
+end
+
+if ($SCRIPT) 
+  if ($argv:n < 4)
+    echo "USAGE: bbc.jpegs NX NY (output) (expname) (expname) (expname) (expname) ..."
+    break
+  end
+
+  outer.loop
+  exit 0
+end
+
