Index: unk/Ohana/src/relastro/src/StarOps.c
===================================================================
--- /trunk/Ohana/src/relastro/src/StarOps.c	(revision 17201)
+++ 	(revision )
@@ -1,518 +1,0 @@
-# include "relastro.h"
-
-static int Nmax;
-static double *list;
-static double *dlist;
-
-void initMrel (Catalog *catalog, int Ncatalog) {
-
-  int i, j;
-  
-  Nmax = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-      Nmax = MAX (Nmax, catalog[i].average[j].Nm);
-    }
-  }
-
-  ALLOCATE (list, double, MAX (1, Nmax));
-  ALLOCATE (dlist, double, MAX (1, Nmax));
-}  
-
-float getMrel (Catalog *catalog, int meas, int cat) {
-
-  int ave;
-  float value;
-
-  ave = catalog[cat].measure[meas].averef;
-  if (catalog[cat].average[ave].code & STAR_BAD) return (NO_MAG);  
- 
-  value = catalog[cat].secfilt[PhotNsec*ave+PhotSec].M;
-  return (value);
-}
-
-int setMrel (Catalog *catalog, int Ncatalog) {
-
-  int i, j, k, m, N;
-  float Msys, Mcal, Mmos, Mgrid;
-  StatType stats;
-
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-
-      /* calculate the average value for a single star */
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
-      m = catalog[i].average[j].offset;
-
-      N = 0;
-      for (k = 0; k < catalog[i].average[j].Nm; k++, m++) {
-	if (catalog[i].measure[m].flags & MEAS_BAD) continue;
-	if ((Mcal  = getMcal  (m, i)) == NO_MAG) continue;
-	if ((Mmos  = getMmos  (m, i)) == NO_MAG) continue;
-	if ((Mgrid = getMgrid (m, i)) == NO_MAG) continue;
-
-	Msys = PhotSys (&catalog[i].measure[m], &catalog[i].average[j], &catalog[i].secfilt[j*PhotNsec]);
-	list[N] = Msys - Mcal - Mmos - Mgrid;
-	dlist[N] = MAX (catalog[i].measure[m].dM, MIN_ERROR);
-	N++;
-      }
-      if (N < STAR_TOOFEW) { /* too few measurements */
-	catalog[i].average[j].code |= ID_STAR_FEW;
-      } else {
-	catalog[i].average[j].code &= ~ID_STAR_FEW;
-      }	
-
-      liststats (list, dlist, N, &stats);
-
-      catalog[i].secfilt[PhotNsec*j+PhotSec].M  = stats.mean;
-      catalog[i].secfilt[PhotNsec*j+PhotSec].dM = stats.sigma;
-      catalog[i].secfilt[PhotNsec*j+PhotSec].Xm = (stats.Nmeas > 1) ? 100.0*log10(stats.chisq) : NO_MAG;
-    }
-  }
-  return (TRUE);
-}
-
-int setMrelOutput (Catalog *catalog, int Ncatalog, int mark) {
-
-  int i, j, k, m, N, Nmax;
-  float Msys, Mcal, Mmos, Mgrid;
-  double *list, *dlist;
-  StatType stats;
-
-  /* Nmeasure is now different, need to reallocate */
-  Nmax = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-      Nmax = MAX (Nmax, catalog[i].average[j].Nm);
-    }
-  }
-  ALLOCATE (list, double, MAX (1, Nmax));
-  ALLOCATE (dlist, double, MAX (1, Nmax));
-
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-
-      /* skip stars already calibrated */
-      if (catalog[i].found[j]) continue;  
-
-      N = 0;
-      m = catalog[i].average[j].offset;
-      for (k = 0; k < catalog[i].average[j].Nm; k++, m++) {
-	if (catalog[i].measure[m].flags & MEAS_BAD) continue;
-	if ((Mcal  = getMcal  (m, i)) == NO_MAG) continue;
-	if ((Mmos  = getMmos  (m, i)) == NO_MAG) continue;
-	if ((Mgrid = getMgrid (m, i)) == NO_MAG) continue;
-
-	Msys = PhotSys (&catalog[i].measure[m], &catalog[i].average[j], &catalog[i].secfilt[j*PhotNsec]);
-	list[N] = Msys - Mcal - Mmos - Mgrid;
-	dlist[N] = MAX (catalog[i].measure[m].dM, MIN_ERROR);
-	N++;
-      }
-      if (N < 1) continue;
-
-      liststats (list, dlist, N, &stats);
-      if (mark) catalog[i].found[j] = TRUE;
-
-      /* use sigma or error in dM for output? */
-      catalog[i].secfilt[PhotNsec*j+PhotSec].M  = stats.mean;
-      catalog[i].secfilt[PhotNsec*j+PhotSec].dM = MAX (stats.error, stats.sigma);
-      catalog[i].secfilt[PhotNsec*j+PhotSec].Xm = (stats.Nmeas > 1) ? 100.0*log10(stats.chisq) : NO_MAG;
-    }
-  }
-
-  free (list);
-  free (dlist);
-  return (TRUE);
-}
-
-/* set measure.Mcal for all measures except ID_MEAS_NOCAL and ID_IMAGE_NOCAL */
-int setMcalOutput (Catalog *catalog, int Ncatalog) {
-
-  int i, j, k, m;
-  float Mcal, Mmos, Mgrid;
-
-  MEAS_BAD = ID_MEAS_NOCAL;
-  IMAGE_BAD = ID_IMAGE_NOCAL;
-
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-
-      m = catalog[i].average[j].offset;
-      for (k = 0; k < catalog[i].average[j].Nm; k++, m++) {
-	if (catalog[i].measure[m].flags & MEAS_BAD) continue;
-	if ((Mcal  = getMcal  (m, i)) == NO_MAG) continue;
-	if ((Mmos  = getMmos  (m, i)) == NO_MAG) continue;
-	if ((Mgrid = getMgrid (m, i)) == NO_MAG) continue;
-	catalog[i].measure[m].Mcal = Mcal + Mmos + Mgrid;
-      }
-    }
-  }
-  return (TRUE);
-}
-
-void clean_stars (Catalog *catalog, int Ncatalog) {
-
-  int i, j, Ndel, Nave, Ntot, mark;
-  float dM, Xm;
-  double Chisq, MaxScatter, MaxChisq;
-  double *xlist, *slist, *dlist;
-  StatType stats;
-
-  if (VERBOSE) fprintf (stderr, "marking poor stars\n");
-
-  /* find Xm median -> ChiSq lim must be > median */
-  for (i = Ntot = 0; i < Ncatalog; i++) {
-    Ntot += catalog[i].Naverage; 
-  }
-  ALLOCATE (xlist, double, Ntot);
-  ALLOCATE (slist, double, Ntot);
-  ALLOCATE (dlist, double, Ntot);
-  for (i = Ntot = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-      if (catalog[i].average[j].code & STAR_BAD) continue;
-      Xm = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm;
-      if (Xm == -1) continue;
-      Chisq = pow (10.0, 0.01*Xm);
-      xlist[Ntot] = Chisq;
-      slist[Ntot] = catalog[i].secfilt[PhotNsec*j+PhotSec].dM;
-      dlist[Ntot] = 1;
-      Ntot ++;
-    }
-  }
-  
-  initstats ("MEAN");
-  liststats (xlist, dlist, Ntot, &stats);
-  MaxChisq = MAX (STAR_CHISQ, 2*stats.median);
-  liststats (slist, dlist, Ntot, &stats);
-  MaxScatter = MAX (STAR_SCATTER, 2*stats.median);
-  fprintf (stderr, "Max Scatter: %f, Max Chisq: %f\n", MaxScatter, MaxChisq);
-
-  Ndel = Nave = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-      dM = catalog[i].secfilt[PhotNsec*j+PhotSec].dM;
-      Xm = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm;
-      Chisq = pow (10.0, 0.01*Xm);
-      mark = (dM > MaxScatter) || (Xm == NO_MAG) || (Chisq > MaxChisq);
-      if (mark) {
-	catalog[i].average[j].code |= ID_STAR_POOR;
-	Ndel ++;
-      } else {
-	catalog[i].average[j].code &= ~ID_STAR_POOR;
-      }
-      Nave ++;
-    }
-  }
-  fprintf (stderr, "%d stars marked variable, %d total\n", Ndel, Nave);
-  initstats (STATMODE);
-  free (xlist);
-  free (slist);
-  free (dlist);
-}
-
-void clean_measures (Catalog *catalog, int Ncatalog, int final) {
-
-  int i, j, k, m, N, Ndel, Nave, Nmax, image_bad, TOOFEW;
-  int *ilist;
-  double *tlist, *list, *dlist, Ns;
-  float Msys, Mcal, Mmos, Mgrid;
-  StatType stats;
-
-  if (VERBOSE) fprintf (stderr, "marking poor measures\n");
-  /* Nmeasure is now different, need to reallocate */
-  Nmax = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-      Nmax = MAX (Nmax, catalog[i].average[j].Nm);
-    }
-  }
-  ALLOCATE (list, double, MAX (1, Nmax));
-  ALLOCATE (dlist, double, MAX (1, Nmax));
-  ALLOCATE (ilist, int, Nmax);
-  ALLOCATE (tlist, double, Nmax);
-  
-  /* it makes no sense to mark 3-sigma outliers with <5 measurements */
-  TOOFEW = MAX (5, STAR_TOOFEW);
-
-  Ns = 3;
-  Ndel = Nave = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-
-      /* skip bad stars to prevent them from becoming good (on inner sample) */
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
-
-      /* on final processing, skip stars already measured */
-      if (final && catalog[i].found[j]) continue;  
-
-      /* accumulate list of valid measurements */
-      m = catalog[i].average[j].offset;
-      N = 0;
-      for (k = 0; k < catalog[i].average[j].Nm; k++, m++) {
-	/* if (catalog[i].measure[m].flags & MEAS_BAD) continue; */
-	if ((Mcal  = getMcal  (m, i)) == NO_MAG) continue;
-	if ((Mmos  = getMmos  (m, i)) == NO_MAG) continue;
-	if ((Mgrid = getMgrid (m, i)) == NO_MAG) continue;
-
-	Msys = PhotSys (&catalog[i].measure[m], &catalog[i].average[j], &catalog[i].secfilt[j*PhotNsec]);
-	list[N] = Msys - Mcal - Mmos - Mgrid;
-	dlist[N] = MAX (catalog[i].measure[m].dM, MIN_ERROR);
-	N++;
-      }
-      if (N < TOOFEW) continue;
-
-      /* 3-sigma clip based on stats of inner 50% */
-      initstats ("INNER_MEAN");
-      liststats (list, dlist, N, &stats);
-      stats.sigma = MAX (MIN_ERROR, stats.sigma); /* if measurements agree too well, sigma -> 0.0 */
-      for (k = m = 0; k < N; k++) {
-	if (fabs (list[k] - stats.median) < Ns*stats.sigma) {
-	  list[m] = list[k];
-	  m++;
-	}
-      }
-      initstats ("MEAN");
-      liststats (list, dlist, m, &stats);
-      stats.sigma = MAX (MIN_ERROR, stats.sigma);
-
-      /* apply to list of all relevant measurements, including IMAGE_POOR & IMAGE_FEW */
-      image_bad = IMAGE_BAD;
-      IMAGE_BAD = ID_IMAGE_NOCAL;
-      m = catalog[i].average[j].offset;
-      N = 0;
-      for (k = 0; k < catalog[i].average[j].Nm; k++, m++) {
-	/* if (catalog[i].measure[m].flags & MEAS_BAD) continue; */
-	if ((Mcal  = getMcal  (m, i)) == NO_MAG) continue;
-	if ((Mmos  = getMmos  (m, i)) == NO_MAG) continue;
-	if ((Mgrid = getMgrid (m, i)) == NO_MAG) continue;
-
-	Msys = PhotSys (&catalog[i].measure[m], &catalog[i].average[j], &catalog[i].secfilt[j*PhotNsec]);
-	list[N] = Msys - Mcal - Mmos - Mgrid;
-	dlist[N] = MAX (catalog[i].measure[m].dM, MIN_ERROR);
-	ilist[N] = m;
-	N++;
-	Nave ++;
-      }
-      if (N < TOOFEW) continue;
-
-      /* mark bad measures */
-      for (k = 0; k < N; k++) {
-	if (fabs (list[k] - stats.median) > Ns*stats.sigma) {
-	  catalog[i].measure[ilist[k]].flags |= ID_MEAS_POOR;
-	  Ndel ++;
-	}
-      }
-      IMAGE_BAD = image_bad;
-    }
-  }
-  initstats (STATMODE);
-  fprintf (stderr, "%d measures marked poor, %d total\n", Ndel, Nave);
-  free (ilist);
-  free (tlist);
-}
-
-StatType statsStarN (Catalog *catalog, int Ncatalog) {
-
-  int i, j, k, m, n, N, Ntot;
-  double *list, *dlist;
-  StatType stats;
-
-  Ntot = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    Ntot += catalog[i].Naverage; 
-  }
-
-  ALLOCATE (list, double, Ntot);
-  ALLOCATE (dlist, double, Ntot);
-
-  n = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-
-      /* calculate the average value for a single star */
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
-      m = catalog[i].average[j].offset;
-
-      N = 0;
-      for (k = 0; k < catalog[i].average[j].Nm; k++, m++) {
-	if (getMcal  (m, i) == NO_MAG) continue;
-	if (getMmos  (m, i) == NO_MAG) continue;
-	if (getMgrid (m, i) == NO_MAG) continue;
-	N++;
-      }
-      
-      list[n] = N;
-      dlist[n] = 1;
-      n++;
-    }
-  }
-
-  liststats (list, dlist, n, &stats);
-  free (list);
-  free (dlist);
-  return (stats);
-}
-
-StatType statsStarX (Catalog *catalog, int Ncatalog) {
-
-  int i, j, n, Ntot, Xm;
-  double *list, *dlist;
-  StatType stats;
-
-  Ntot = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    Ntot += catalog[i].Naverage; 
-  }
-
-  ALLOCATE (list, double, Ntot);
-  ALLOCATE (dlist, double, Ntot);
-
-  n = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-
-      /* calculate the average value for a single star */
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
-
-      Xm = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm;
-      if (Xm == NO_MAG) continue;
-      list[n] = pow (10.0, 0.01*Xm);
-      dlist[n] = 1;
-      n++;
-    }
-  }
-
-  liststats (list, dlist, n, &stats);
-  free (list);
-  free (dlist);
-  return (stats);
-}
-
-StatType statsStarS (Catalog *catalog, int Ncatalog) {
-
-  int i, j, n, Ntot;
-  double *list, *dlist;
-  float dM;
-  StatType stats;
-
-  Ntot = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    Ntot += catalog[i].Naverage; 
-  }
-
-  ALLOCATE (list, double, Ntot);
-  ALLOCATE (dlist, double, Ntot);
-
-  n = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-
-      /* calculate the average value for a single star */
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
-
-      dM = catalog[i].secfilt[PhotNsec*j+PhotSec].dM;
-      list[n] = dM;
-      dlist[n] = 1;
-      n++;
-    }
-  }
-
-  liststats (list, dlist, n, &stats);
-  free (list);
-  free (dlist);
-  return (stats);
-}
-
-void plot_stars (Catalog *catalog, int Ncatalog) {
-
-  int i, j, bin;
-  float dMrel;
-  double *xlist, *Mlist;
-  Graphdata graphdata;
-
-# define NBIN 200
-  ALLOCATE (xlist, double, NBIN);
-  ALLOCATE (Mlist, double, NBIN);
-
-  for (i = 0; i < NBIN; i++) xlist[i] = 0.00025*i;
-  bzero (Mlist, NBIN*sizeof(double));
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-      if (catalog[i].average[j].code & STAR_BAD) continue;  
-      dMrel = catalog[i].secfilt[PhotNsec*j+PhotSec].dM;
-      bin = dMrel / 0.00025;
-      bin = MAX (0, MIN (NBIN-1, bin));
-      Mlist[bin] += 1.0;
-    }
-  }
-
-  plot_defaults (&graphdata);
-  graphdata.style = 1;
-  plot_list (&graphdata, xlist, Mlist, NBIN, "dMrel hist", "dMhist.png");
-
-  free (xlist);
-  free (Mlist);
-}
-
-void plot_chisq (Catalog *catalog, int Ncatalog) {
-
-  int i, j, N, Ntotal, value;
-  double *xlist, *ylist;
-  Graphdata graphdata;
-
-  Ntotal = 0;
-  for (i = 0; i < Ncatalog; i++) Ntotal += catalog[i].Naverage;
-
-  ALLOCATE (xlist, double, Ntotal);
-  ALLOCATE (ylist, double, Ntotal);
-
-  N = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-      if (catalog[i].average[j].code & STAR_BAD) continue;
-      xlist[N] = catalog[i].secfilt[PhotNsec*j+PhotSec].M;
-      value    = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm;
-      if (value == NO_MAG) continue;
-      ylist[N] = 0.01*value;
-      N++;
-    }
-  }
-
-  plot_defaults (&graphdata);
-  graphdata.ymin = -3.0;
-  plot_list (&graphdata, xlist, ylist, N, "chisq", NULL);
-  free (xlist);
-  free (ylist);
-}
-
-void plot_star_coords (Catalog *catalog, int Ncatalog) {
-
-  int i, j, N;
-  double *xlist, *ylist;
-  double Xmin, Ymin, Xmax, Ymax;
-  Graphdata graphdata;
-
-  N = 0; 
-  for (i = 0; i < Ncatalog; i++) {
-    N += catalog[i].Naverage;
-  }
-  ALLOCATE (xlist, double, N);
-  ALLOCATE (ylist, double, N);
-
-  N = 0;
-  Xmin = Ymin = +360.0;
-  Xmax = Ymax = -360.0;
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-      xlist[N] = catalog[i].average[j].R;
-      ylist[N] = catalog[i].average[j].D;
-      N++;
-    }
-  }
-  plot_defaults (&graphdata);
-  plot_list (&graphdata, xlist, ylist, N, "coords", NULL);
-
-  free (xlist);
-  free (ylist);
-}
-
Index: unk/Ohana/src/relastro/src/global_stats.c
===================================================================
--- /trunk/Ohana/src/relastro/src/global_stats.c	(revision 17201)
+++ 	(revision )
@@ -1,44 +1,0 @@
-# include "relastro.h"
-
-void global_stats (Catalog *catalog, int Ncatalog) {
-
-  StatType stN, stX, stS, imN, imX, imM, imD, msM, msX, msN, msD;
-
-  initstats ("MEAN");
-
-  stN = statsStarN (catalog, Ncatalog);
-  stX = statsStarX (catalog, Ncatalog);
-  stS = statsStarS (catalog, Ncatalog);
-
-  imN = statsImageN (catalog);
-  imX = statsImageX (catalog);
-  imM = statsImageM (catalog);
-  imD = statsImagedM (catalog);
-
-  msN = statsMosaicN (catalog);
-  msM = statsMosaicM (catalog);
-  msD = statsMosaicdM (catalog);
-  msX = statsMosaicX (catalog);
-
-  fprintf (stderr, "STATS            median     mean    sigma      min      max   Nmeas\n");
-  fprintf (stderr, "meas / image:   %7.0f  %7.0f  %7.0f  %7.0f  %7.0f  %6d\n",   imN.median, imN.mean, imN.sigma, imN.min, imN.max, imN.Nmeas);
-  fprintf (stderr, "meas / mosaic:  %7.0f  %7.0f  %7.0f  %7.0f  %7.0f  %6d\n",   msN.median, msN.mean, msN.sigma, msN.min, msN.max, msN.Nmeas);
-  fprintf (stderr, "meas / star:    %7.0f  %7.1f  %7.1f  %7.0f  %7.0f  %6d\n",   stN.median, stN.mean, stN.sigma, stN.min, stN.max, stN.Nmeas);
-
-  fprintf (stderr, "chisq image:    %7.1f  %7.1f  %7.1f  %7.1f  %7.1f  %6d\n",   imX.median, imX.mean, imX.sigma, imX.min, imX.max, imX.Nmeas);
-  fprintf (stderr, "chisq mosaic:   %7.1f  %7.1f  %7.1f  %7.1f  %7.1f  %6d\n",   msX.median, msX.mean, msX.sigma, msX.min, msX.max, msX.Nmeas);
-  fprintf (stderr, "chisq star:     %7.1f  %7.1f  %7.1f  %7.1f  %7.1f  %6d\n",   stX.median, stX.mean, stX.sigma, stX.min, stX.max, stX.Nmeas);
-
-  fprintf (stderr, "Mcal image:     %7.4f  %7.4f  %7.4f  %7.4f  %7.4f  %6d\n",   imM.median, imM.mean, imM.sigma, imM.min, imM.max, imM.Nmeas);
-  fprintf (stderr, "dMcal image:    %7.4f  %7.4f  %7.4f  %7.4f  %7.4f  %6d\n",   imD.median, imD.mean, imD.sigma, imD.min, imD.max, imD.Nmeas);
-
-  fprintf (stderr, "Mcal mosaic:    %7.4f  %7.4f  %7.4f  %7.4f  %7.4f  %6d\n",   msM.median, msM.mean, msM.sigma, msM.min, msM.max, msM.Nmeas);
-  fprintf (stderr, "dMcal mosaic:   %7.4f  %7.4f  %7.4f  %7.4f  %7.4f  %6d\n",   msD.median, msD.mean, msD.sigma, msD.min, msD.max, msD.Nmeas);
-
-  fprintf (stderr, "dMrel star:     %7.4f  %7.4f  %7.4f  %7.4f  %7.4f  %6d\n\n", stS.median, stS.mean, stS.sigma, stS.min, stS.max, stS.Nmeas);
-
-  initstats (STATMODE);
-
-}
-
-
Index: unk/Ohana/src/relastro/src/reload_catalogs.c
===================================================================
--- /trunk/Ohana/src/relastro/src/reload_catalogs.c	(revision 17201)
+++ 	(revision )
@@ -1,51 +1,0 @@
-# include "relastro.h"
-
-void reload_catalogs (SkyList *skylist) {
-
-  int i;
-  int status;
-  struct stat filestat;
-  Catalog catalog;
-
-  if (VERBOSE) fprintf (stderr, "re-loading catalog data\n");
-
-  /* load data from each region file */
-  for (i = 0; i < skylist[0].Nregions; i++) {
-    catalog.filename = skylist[0].filename[i];
-
-    // only update existing db tables
-    status = stat (catalog.filename, &filestat);
-    if ((status == -1) && (errno == ENOENT)) {
-      if (VERBOSE) fprintf (stderr, "no file %s, skipping\n", catalog.filename);
-      continue;
-    }
-
-    catalog.catformat = dvo_catalog_catformat (CATFORMAT);    // set the default catformat from config data
-    catalog.catmode   = dvo_catalog_catmode (CATMODE);        // set the default catmode from config data
-    catalog.catflags  = LOAD_AVES | LOAD_MEAS | LOAD_MISS | LOAD_SECF;
-
-    if (!dvo_catalog_open (&catalog, skylist[0].regions[i], VERBOSE, "w")) {
-      fprintf (stderr, "ERROR: failure reading catalog %s\n", catalog.filename);
-      exit (1);
-    }
-    if (VERBOSE && (catalog.Naves_disk == 0)) {
-	fprintf (stderr, "no data in %s, skipping\n", catalog.filename);
-	dvo_catalog_unlock (&catalog);
-	dvo_catalog_free (&catalog);
-	continue;
-    }
-
-    initImageBins  (&catalog, 1);
-    initMosaicBins (&catalog, 1);
-
-    findImages (&catalog, 1);
-    findMosaics (&catalog, 1);
-
-    dvo_catalog_save (&catalog, VERBOSE); 
-    dvo_catalog_unlock (&catalog);
-    dvo_catalog_free (&catalog);
-
-    freeImageBins (1);
-    freeMosaicBins (1);
-  }
-}
Index: unk/Ohana/src/relastro/src/setExclusions.c
===================================================================
--- /trunk/Ohana/src/relastro/src/setExclusions.c	(revision 17201)
+++ 	(revision )
@@ -1,55 +1,0 @@
-# include "relastro.h"
-
-/* XXX I think all of these, except for X,Y selection, are done / can be done in bcatalog */
-int setExclusions (Catalog *catalog, int Ncatalog) {
-
-  int i, j, k, m, Narea, Nnocal;
-  Coords *coords;
-  double r, d, x, y;
-
-  Nnocal = Narea = 0;
-  for (i = 0; i < Ncatalog; i++) {
-    for (j = 0; j < catalog[i].Naverage; j++) {
-      m = catalog[i].average[j].measureOffset;
-      for (k = 0; k < catalog[i].average[j].Nmeasure; k++, m++) {
-
-	/* select measurements by photcode */
-	// XXXX is this done when loaded, or is it needed for reload?
-	// ecode = GetPhotcodeEquivCodebyCode (catalog[i].measure[m].photcode);
-	// if (ecode != photcode[0].code) goto mark_nocal;
-	
-	/* select measurements by time */
-	if (TimeSelect) {
-	  if (catalog[i].measure[m].t < TSTART) goto mark_nocal;
-	  if (catalog[i].measure[m].t > TSTOP) goto mark_nocal;
-	}
-
-	/* select measurements by mag limit */
-	if (AreaSelect) {
-	  r = catalog[i].average[j].R + catalog[i].measure[m].dR / 3600.0;
-	  d = catalog[i].average[j].D + catalog[i].measure[m].dD / 3600.0;
-	  if ((coords = getCoords (m, i)) == NULL) goto markbad;
-	  RD_to_XY (&x, &y, r, d, coords);
-	  if (x < AreaXmin) goto markbad;
-	  if (x > AreaXmax) goto markbad;
-	  if (y < AreaYmin) goto markbad;
-	  if (y > AreaYmax) goto markbad;
-	}
-	continue;
-
-      markbad:
-	catalog[i].measure[m].dbFlags |= ID_MEAS_AREA;
-	Narea ++;
-	continue;
-	
-      mark_nocal:
-	catalog[i].measure[m].dbFlags |= ID_MEAS_NOCAL;
-	Nnocal ++;
-	continue;
-      }
-    }
-  }
-  if (VERBOSE) fprintf (stderr, "%d measurements marked by area\n", Narea);
-  if (VERBOSE) fprintf (stderr, "%d measurements marked nocal\n", Nnocal);
-  return (TRUE);
-}
Index: unk/Ohana/src/relastro/src/setMrelFinal.c
===================================================================
--- /trunk/Ohana/src/relastro/src/setMrelFinal.c	(revision 17201)
+++ 	(revision )
@@ -1,154 +1,0 @@
-# include "relastro.h"
-
-void setMrelFinal (Catalog *catalog) {
-
-  int i, j, m, ecode;
-  float *p;
-  short *q;
-
-  /* if we reset the catalog, reset all the current measurements */
-  if (RESET) {
-
-    for (i = 0; i < catalog[0].Naverage; i++) {
-      p = (PhotPrimary) ? &catalog[0].average[i].M  : &catalog[0].secfilt[PhotNsec*i+PhotSec].M;
-      *p = NO_MAG;
-      p = (PhotPrimary) ? &catalog[0].average[i].dM : &catalog[0].secfilt[PhotNsec*i+PhotSec].dM;
-      *p = NO_MAG;
-      q = (PhotPrimary) ? &catalog[0].average[i].Xm : &catalog[0].secfilt[PhotNsec*i+PhotSec].Xm;
-      *q = NO_MAG;
-
-      m = catalog[0].average[i].offset;
-      for (j = 0; j < catalog[0].average[i].Nm; j++, m++) {
-	
-	/* select measurements by photcode */
-	ecode = GetPhotcodeEquivCodebyCode (catalog[0].measure[m].photcode);
-	if (ecode != photcode[0].code) continue;
-	
-	/* select measurements by time */
-	if (TimeSelect) {
-	  if (catalog[0].measure[m].t < TSTART) continue;
-	  if (catalog[0].measure[m].t > TSTOP) continue;
-	}
-	
-	catalog[0].measure[m].Mcal = 0;
-	catalog[0].measure[m].flags &= 0xff00;
-	catalog[0].measure[m].flags &= ~ID_MEAS_POOR;
-	catalog[0].measure[m].flags &= ~ID_MEAS_SKIP;
-	catalog[0].measure[m].flags &= ~ID_MEAS_AREA;
-	catalog[0].measure[m].flags &= ~ID_MEAS_NOCAL;
-      }
-    }
-  }
-
-  setExclusions (catalog, 1);  /* mark by area */
-
-  /* set catalog[0].found[i] = FALSE */
-  ALLOCATE (catalog[0].found, int, MAX (1, catalog[0].Naverage));
-  for (i = 0; i < catalog[0].Naverage; i++) {
-    catalog[0].found[i] = FALSE;
-  }
-
-  for (i = 0; i < 5; i++) {
-    skip_measurements (catalog, i);       /* set ID_MEAS_SKIP for measures to be skipped */
-    setMrelOutput  (catalog, 1, FALSE);   /* set Mrel using all measures not skipped */
-    clean_measures (catalog, 1, TRUE);    /* mark outliers ID_MEAS_POOR */
-    setMrelOutput  (catalog, 1, TRUE);    /* set Mrel using remaining measures */
-  }
-  setMcalOutput (catalog, 1);
-
-  /* clear ID_STAR_POOR, ID_STAR_FEW, ID_MEAS_NOCAL values before writing ??? */
-  for (i = 0; i < catalog[0].Naverage; i++) {
-    catalog[0].average[i].code &= ~ID_STAR_FEW;
-    catalog[0].average[i].code &= ~ID_STAR_POOR;
-    m = catalog[0].average[i].offset;
-    for (j = 0; j < catalog[0].average[i].Nm; j++, m++) {
-      catalog[0].measure[m].flags &= ~ID_MEAS_NOCAL;
-    }
-  }
-}
-
-/* ID_MEAS_SKIP marks measurements which were not used to calculate Mrel */
-void skip_measurements (Catalog *catalog, int pass) {
-
-  int i, k, m, ecode, d1, d2;
-  int Ntot, Ntry, Nkeep, Nskip;
-  float mag;
-
-  Ntot = Ntry = Nskip = Nkeep = 0;
-
-  /* allow measures from images marked POOR and FEW */
-  if (pass >= 3) IMAGE_BAD = ID_IMAGE_NOCAL;
-  
-  /* allow measures marked as outliers (POOR) and off image region (AREA) */
-  if (pass >= 3) MEAS_BAD = ID_MEAS_NOCAL | ID_MEAS_SKIP;
-
-  /* mark measures which should be ignored on second pass */
-  for (i = 0; i < catalog[0].Naverage; i++) {
-    Ntot += catalog[0].average[i].Nm;
-    if (catalog[0].found[i]) continue;
-
-    m = catalog[0].average[i].offset;
-    for (k = 0; k < catalog[0].average[i].Nm; k++, m++) {
-      Ntry++;
-
-      /* clear SKIP for all measures at first */
-      catalog[0].measure[m].flags &= ~ID_MEAS_SKIP;
-
-      /** never use these measurements (wrong photcode, bad time range) */
-      /* skipped via NOCAL, don't mark as skipped */
-      ecode = GetPhotcodeEquivCodebyCode (catalog[0].measure[m].photcode);
-      if (ecode != photcode[0].code) continue;
-
-      /* skip measurements by time range */
-      if (TimeSelect) {
-	if (catalog[0].measure[m].t < TSTART) goto skip;
-	if (catalog[0].measure[m].t > TSTOP) goto skip;
-      }
-
-      /* skip measurements with sat. dophot values */
-      if ((pass < 4) && (catalog[0].measure[m].dophot == 10)) goto skip;
-
-      /* skip measurements from BAD images and mosaics */
-      if ((getMcal  (m, 0)) == NO_MAG) goto skip;
-      if ((getMmos  (m, 0)) == NO_MAG) goto skip;
-
-      /* skip measurements by inst mag limit */
-      if ((pass < 4) && ImagSelect) {
-	mag = PhotInst (&catalog[0].measure[m]);
-	if (mag < ImagMin) goto skip;
-	if (mag > ImagMax) goto skip;
-      }
-
-      d1 = (catalog[0].measure[m].dophot == 1);
-      d2 = (catalog[0].measure[m].dophot == 2);
-
-      /* skip measurements by measurement error */
-      if ((pass < 2) && !(d1 || d2)) goto skip;
-
-      /* if ((pass < 1) && (catalog[0].measure[m].dM > SIGMA_LIM)) goto skip; */
-      if ((pass < 1) && !d1) goto skip;
-      Nkeep ++;
-
-      continue;
-
-    skip:
-      catalog[0].measure[m].flags |= ID_MEAS_SKIP;
-      Nskip ++;
-    }
-  }
-  fprintf (stderr, "pass %d, Ntot: %d, Ntry: %d, Nskip: %d, Nkeep: %d\n",
-	   pass, Ntot, Ntry, Nskip, Nkeep);
-}
-
-/* dophot types:
-
-1 - star
-2 - galaxy
-3 - star
-4 - weak
-5 - edge
-7 - weak
-9 - weak
-10 - sat
-*/
-
Index: unk/Ohana/src/relastro/src/sort.c
===================================================================
--- /trunk/Ohana/src/relastro/src/sort.c	(revision 17201)
+++ 	(revision )
@@ -1,182 +1,0 @@
-# include "relastro.h"
-
-void sortA (double *X, int N) {
-
-  int l,j,ir,i;
-  double tX;
-  
-  if (N < 2) return;
-
-  l = N >> 1;
-  ir = N - 1;
-  for (;;) {
-    if (l > 0) {
-      l--;
-      tX = X[l];
-    }
-    else {
-      tX = X[ir];
-      X[ir] = X[0];
-      if (--ir == 0) {
-	X[0] = tX;
-	return;
-      }
-    }
-    i = l;
-    j = (l << 1) + 1;
-    while (j <= ir) {
-      if (j < ir && X[j] < X[j+1]) j++;
-      if (tX < X[j]) {
-	X[i] = X[j];
-	j += (i=j) + 1;
-      }
-      else j = ir + 1;
-    }
-    X[i] = tX;
-  }
-}
-
-void sortB (double *X, double *Y, int N) {
-
-  int l,j,ir,i;
-  double tX, tY;
-  
-  if (N < 2) return;
-
-  l = N >> 1;
-  ir = N - 1;
-  for (;;) {
-    if (l > 0) {
-      l--;
-      tX = X[l];
-      tY = Y[l];
-    }
-    else {
-      tX = X[ir];
-      X[ir] = X[0];
-      tY = Y[ir];
-      Y[ir] = Y[0];
-      if (--ir == 0) {
-	X[0] = tX;
-	Y[0] = tY;
-	return;
-      }
-    }
-    i = l;
-    j = (l << 1) + 1;
-    while (j <= ir) {
-      if (j < ir && X[j] < X[j+1]) j++;
-      if (tX < X[j]) {
-	X[i] = X[j];
-	Y[i] = Y[j];
-	j += (i=j) + 1;
-      }
-      else j = ir + 1;
-    }
-    X[i] = tX;
-    Y[i] = tY;
-  }
-}
-
-void sortC (double *X, double *Y, double *F1, double *F2, int N) {
-
-  int l,j,ir,i;
-  double tX, tY;
-  double t1, t2;
-  
-  if (N < 2) return;
-
-  l = N >> 1;
-  ir = N - 1;
-  for (;;) {
-    if (l > 0) {
-      l--;
-      tX = X[l];
-      tY = Y[l];
-      t1 = F1[l];
-      t2 = F2[l];
-    }
-    else {
-      tX = X[ir];
-      X[ir] = X[0];
-      tY = Y[ir];
-      Y[ir] = Y[0];
-      t1 = F1[ir];
-      F1[ir] = F1[0];
-      t2 = F2[ir];
-      F2[ir] = F2[0];
-      if (--ir == 0) {
-	X[0] = tX;
-	Y[0] = tY;
-	F1[0] = t1;
-	F2[0] = t2;
-	return;
-      }
-    }
-    i = l;
-    j = (l << 1) + 1;
-    while (j <= ir) {
-      if (j < ir && X[j] < X[j+1]) j++;
-      if (tX < X[j]) {
-	X[i] = X[j];
-	Y[i] = Y[j];
-	F1[i] = F1[j];
-	F2[i] = F2[j];
-	j += (i=j) + 1;
-      }
-      else j = ir + 1;
-    }
-    X[i] = tX;
-    Y[i] = tY;
-    F1[i] = t1;
-    F2[i] = t2;
-  }
-}
-
-void sortD (double *X, double *Y, double *Z, int N) {
-
-  int l,j,ir,i;
-  double tX, tY, tZ;
-  
-  if (N < 2) return;
-
-  l = N >> 1;
-  ir = N - 1;
-  for (;;) {
-    if (l > 0) {
-      l--;
-      tX = X[l];
-      tY = Y[l];
-      tZ = Z[l];
-    }
-    else {
-      tX = X[ir];
-      X[ir] = X[0];
-      tY = Y[ir];
-      Y[ir] = Y[0];
-      tZ = Z[ir];
-      Z[ir] = Z[0];
-      if (--ir == 0) {
-	X[0] = tX;
-	Y[0] = tY;
-	Z[0] = tZ;
-	return;
-      }
-    }
-    i = l;
-    j = (l << 1) + 1;
-    while (j <= ir) {
-      if (j < ir && X[j] < X[j+1]) j++;
-      if (tX < X[j]) {
-	X[i] = X[j];
-	Y[i] = Y[j];
-	Z[i] = Z[j];
-	j += (i=j) + 1;
-      }
-      else j = ir + 1;
-    }
-    X[i] = tX;
-    Y[i] = tY;
-    Z[i] = tZ;
-  }
-}
