Index: /branches/eam_branches/relastro.20100326/include/relastro.h
===================================================================
--- /branches/eam_branches/relastro.20100326/include/relastro.h	(revision 27558)
+++ /branches/eam_branches/relastro.20100326/include/relastro.h	(revision 27559)
@@ -105,4 +105,7 @@
 int    PLOTDELAY;
 int    CHIPORDER;
+
+int UserCatalog;
+double UserCatalogRA, UserCatalogDEC;
 
 char          *PHOTCODE_KEEP_LIST, *PHOTCODE_SKIP_LIST;
Index: /branches/eam_branches/relastro.20100326/src/GetAstromError.c
===================================================================
--- /branches/eam_branches/relastro.20100326/src/GetAstromError.c	(revision 27558)
+++ /branches/eam_branches/relastro.20100326/src/GetAstromError.c	(revision 27559)
@@ -8,11 +8,11 @@
   switch (mode) {
     case ERROR_MODE_RA:
-      dPobs = measure[0].dXccd;  // need to redefine this as RAerr
+      dPobs = measure[0].dXccd / 100.0;  // need to redefine this as RAerr
       break;
     case ERROR_MODE_DEC:
-      dPobs = measure[0].dYccd;  // need to redefine this as RAerr
+      dPobs = measure[0].dYccd / 100.0;  // need to redefine this as RAerr
       break;
     case ERROR_MODE_POS:
-      dPobs = hypot (measure[0].dXccd, measure[0].dYccd);  // need to redefine this as RAerr
+      dPobs = hypot (measure[0].dXccd, measure[0].dYccd) / 100.0;  // need to redefine this as RAerr
       break;
     default:
Index: /branches/eam_branches/relastro.20100326/src/UpdateObjects.c
===================================================================
--- /branches/eam_branches/relastro.20100326/src/UpdateObjects.c	(revision 27558)
+++ /branches/eam_branches/relastro.20100326/src/UpdateObjects.c	(revision 27559)
@@ -41,5 +41,5 @@
 
   off_t j, k, m;
-  int i, N, Nsecfilt, mode, status;
+  int i, N, Nsecfilt, mode, status, XVERB;
   StatType statsR, statsD;
   Coords coords;
@@ -63,4 +63,6 @@
   strcpy (coords.ctype, "RA---SIN");
 
+  XVERB = FALSE;
+
   // use J2000 as a reference time
   T2000 = ohana_date_to_sec ("2000/01/01");
@@ -158,4 +160,5 @@
       Tmean /= (float) N;
       
+      XVERB = (catalog[i].measure[m].dM < 0.02) && (mode == FIT_PM_ONLY);
       /* project all of the R,D coordinates to a plane centered on this coordinate
 	 set the times to be relative to Tmean */
@@ -164,6 +167,6 @@
 	dX[k] =  dR[k];
 	dY[k] =  dD[k];
+	if (XVERB) fprintf (stderr, "%lld %f %f %f  %f %f\n", (long long) k, T[k], R[k], D[k], X[k], Y[k]);
 	T[k] -= Tmean;
-	// fprintf (stderr, "%d %f %f %f  %f %f\n", k, T[k], R[k], D[k], X[k], Y[k]);
       }	  
 
@@ -193,9 +196,9 @@
       if ((mode == FIT_PM_ONLY) || (mode == FIT_PM_AND_PAR)) {
 	  FitPM (&fitPM, X, dX, Y, dY, T, N);
-	  // fprintf (stderr, "fitted:  %f - %f : %f %f : %f %f : %f\n", Tmin, Tmax, fitPM.Ro, fitPM.Do, fitPM.uR, fitPM.uD, fitPM.p);
+	  if (XVERB) fprintf (stderr, "fitted:  %f - %f : %f %f : %f %f : %f\n", Tmin, Tmax, fit.Ro, fit.Do, fit.uR, fit.uD, fit.p);
+
 	  // project Ro, Do back to RA,DEC
 	  XY_to_RD (&fitPM.Ro, &fitPM.Do, fitPM.Ro, fitPM.Do, &coords);
-	  // fprintf (stderr, "project: %f %f : %f %f : %f\n", fitPM.Ro, fitPM.Do, fitPM.uR, fitPM.uD, fitPM.p);
-	  // continue;
+	  if (XVERB) fprintf (stderr, "project: %f %f : %f %f : %f\n", fit.Ro, fit.Do, fit.uR, fit.uD, fit.p);
 
 	  fitPM.p  = fitPM.dp  = 0.0;
@@ -224,12 +227,10 @@
 # endif
 
-      if (0 && (j < 100)) {
-	fprintf (stderr, "%f %f -> %f %f (%f,%f)\n",
-		 catalog[i].average[j].R, 
-		 catalog[i].average[j].D, 
-		 fit.Ro, fit.Do, 
-		 3600*(catalog[i].average[j].R - fit.Ro), 
-		 3600*(catalog[i].average[j].D - fit.Do));
-      }
+      if (XVERB) fprintf (stderr, "%f %f -> %f %f (%f,%f)\n",
+			  catalog[i].average[j].R, 
+			  catalog[i].average[j].D, 
+			  fit.Ro, fit.Do, 
+			  3600*(catalog[i].average[j].R - fit.Ro), 
+			    3600*(catalog[i].average[j].D - fit.Do));
 
       //make sure that the fit succeeded
@@ -289,7 +290,8 @@
       // catalog[i].average[j].Xp  = (fit.Nfit > 1) ? 100.0*log10(fit.chisq) : NAN_S_SHORT;
       catalog[i].average[j].chiSqAve  = fitAve.ChiSq;
-      catalog[i].average[j].chiSqPM  = fitPM.ChiSq;
+      catalog[i].average[j].chiSqPM   = fitPM.ChiSq;
       catalog[i].average[j].chiSqPar  = fitPar.ChiSq;
       catalog[i].average[j].Tmean = Tmean;
+      catalog[i].average[j].Npos = fit.Nfit;
     }
 
Index: /branches/eam_branches/relastro.20100326/src/args.c
===================================================================
--- /branches/eam_branches/relastro.20100326/src/args.c	(revision 27558)
+++ /branches/eam_branches/relastro.20100326/src/args.c	(revision 27559)
@@ -50,4 +50,14 @@
 
   if (FIT_TARGET == TARGET_NONE) usage();
+
+  UserCatalog = FALSE;
+  if ((N = get_argument (argc, argv, "-catalog"))) {
+    remove_argument (N, &argc, argv);
+    UserCatalogRA = atof(argv[N]);
+    remove_argument (N, &argc, argv);
+    UserCatalogDEC = atof(argv[N]);
+    remove_argument (N, &argc, argv);
+    UserCatalog = TRUE;
+  }
 
   /* specify portion of the sky : allow default of all sky? */
@@ -67,5 +77,7 @@
     remove_argument (N, &argc, argv);
   } else {
-    usage ();
+    if (!UserCatalog) {
+      usage ();
+    }
   }
 
@@ -259,4 +271,5 @@
 void usage () {
   fprintf (stderr, "ERROR: USAGE: relastro -region RA RA DEC DEC\n");
+  fprintf (stderr, "       OR:    relastro -catalog (ra) (dec)\n");
   fprintf (stderr, "  working options: \n");
   fprintf (stderr, "  -update-objects\n");
Index: /branches/eam_branches/relastro.20100326/src/load_images.c
===================================================================
--- /branches/eam_branches/relastro.20100326/src/load_images.c	(revision 27558)
+++ /branches/eam_branches/relastro.20100326/src/load_images.c	(revision 27559)
@@ -24,5 +24,9 @@
   
   // determine the populated SkyRegions overlapping the requested area
-  skylist = SkyListByPatch (sky, -1, region);
+  if (UserCatalog) {
+    skylist = SkyRegionByPoint (sky, -1, UserCatalogRA, UserCatalogDEC);
+  } else {
+    skylist = SkyListByPatch (sky, -1, region);
+  }
   MARKTIME("  setup sky: %f sec\n", dtime);
 
Index: /branches/eam_branches/relastro.20100326/src/relastro_objects.c
===================================================================
--- /branches/eam_branches/relastro.20100326/src/relastro_objects.c	(revision 27558)
+++ /branches/eam_branches/relastro.20100326/src/relastro_objects.c	(revision 27559)
@@ -15,5 +15,9 @@
   
   // determine the populated SkyRegions overlapping the requested area (default depth)
-  skylist = SkyListByPatch (sky, -1, &UserPatch);
+  if (UserCatalog) {
+    skylist = SkyRegionByPoint (sky, -1, UserCatalogRA, UserCatalogDEC);
+  } else {
+    skylist = SkyListByPatch (sky, -1, &UserPatch);
+  }
 
   // load data from each region file, only use bright stars
