Index: /trunk/Ohana/src/opihi/cmd.data/dimendown.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/dimendown.c	(revision 5994)
+++ /trunk/Ohana/src/opihi/cmd.data/dimendown.c	(revision 5995)
@@ -1,14 +1,24 @@
 # include "data.h"
+
+enum {VALUE, XCOORD, YCOORD};
 
 int dimendown (int argc, char **argv) {
   
-  int i, Nx, Ny, Npix;
+  int i, Nx, Ny, Npix, N, mode;
   float *in, *out;
   Vector *vec;
   Buffer *buf;
 
+  mode = VALUE;
+  if ((N = get_argument (argc, argv, "-x"))) {
+    remove_argument (N, &argc, argv);
+    mode = XCOORD;
+  }
+  if ((N = get_argument (argc, argv, "-y"))) {
+    remove_argument (N, &argc, argv);
+    mode = YCOORD;
+  }
+
   if (argc != 3) {
-    fprintf (stderr, "USAGE: dimendown <buffer> <vector>\n");
-    return (FALSE);
   }
 
@@ -26,9 +36,30 @@
   out = vec[0].elements;
 
-  for (i = 0; i < Npix; i++, in++, out++) {
-    *out = *in;
+  switch (mode) {
+    case VALUE:
+      for (i = 0; i < Npix; i++, in++, out++) {
+	*out = *in;
+      }
+      break;
+
+    case XCOORD:
+      for (i = 0; i < Npix; i++, out++) {
+	*out = i % Nx;
+      }
+      break;
+
+    case YCOORD:
+      for (i = 0; i < Npix; i++, out++) {
+	*out = i / Nx;
+      }
+      break;
   }
+      
+  return (TRUE);
 
-  return (TRUE);
+ usage:
+    fprintf (stderr, "USAGE: dimendown <buffer> <vector>\n");
+    fprintf (stderr, "  -x : fill vector with buffer x-coords\n");
+    fprintf (stderr, "  -y : fill vector with buffer y-coords\n");
+    return (FALSE);
 }
-
