IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 39239


Ignore:
Timestamp:
Dec 9, 2015, 8:42:01 AM (11 years ago)
Author:
eugene
Message:

add a test script

Location:
trunk/Ohana/src/relastro
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/relastro/Makefile

    r39238 r39239  
    1010MAN     =       $(HOME)/doc
    1111INC     =       $(HOME)/include
     12TESTDIR =       $(HOME)/test
     13TESTBIN =       $(HOME)/test
    1214include ../../Makefile.Common
    1315
     
    2123
    2224install: $(DESTBIN)/relastro $(DESTBIN)/relastro_client
    23 
    24 # $(DESTBIN)/testparallax
    2525
    2626RELASTRO = \
     
    161161$(TESTPAR): $(INC)/relastro.h
    162162$(BIN)/testparallax.$(ARCH): $(TESTPAR)
     163
     164fitpm: $(BIN)/fitpm.$(ARCH)
     165
     166FITPM = \
     167$(SRC)/fitpm.$(ARCH).o        \
     168$(SRC)/ParFactor.$(ARCH).o           \
     169$(SRC)/FitAstromOps.$(ARCH).o        \
     170$(SRC)/FitPM.$(ARCH).o               \
     171$(SRC)/FitPM_IRLS.$(ARCH).o               \
     172$(SRC)/mkpolyterm.$(ARCH).o            \
     173$(SRC)/fitpoly.$(ARCH).o
     174
     175$(FITPM): $(INC)/relastro.h
     176$(BIN)/fitpm.$(ARCH): $(FITPM)
  • trunk/Ohana/src/relastro/src/FitAstromOps.c

    r39238 r39239  
    22
    33// I am modifying FitPM with an eye to (a) threaded operations and (b) bootstrap resampling tests.
     4
     5int FitAstromPoints_Project (FitStats *fitStats, double *Tmean, double *Trange, double *parRange) {
     6
     7  int k;
     8
     9  int Npoints = fitStats->Npoints;
     10  FitAstromPoint *points = fitStats->points;
     11
     12  // find Tmin & Tmax from the list of accepted measurements
     13  double Tmin  = points[0].T;
     14  double Tmax  = points[0].T;
     15  double pRmin = +2.0;
     16  double pRmax = -2.0;
     17  double pDmin = +2.0;
     18  double pDmax = -2.0;
     19
     20  *Tmean = 0.0;
     21
     22  double Tsum = 0.0;
     23  double Wsum = 0.0;
     24  for (k = 0; k < Npoints; k++) {
     25    Tmin = MIN(Tmin, points[k].T);
     26    Tmax = MAX(Tmax, points[k].T);
     27
     28    float wx = 1.0 / SQ(points[k].dX);
     29
     30    Tsum += points[k].T * wx;
     31    Wsum += wx;
     32
     33    // at this point, T is in years since J2000
     34    ParFactor (&points[k].pR, &points[k].pD, points[k].R, points[k].D, points[k].T);
     35    pRmin = MIN (pRmin, points[k].pR);
     36    pRmax = MAX (pRmax, points[k].pR);
     37    pDmin = MIN (pDmin, points[k].pD);
     38    pDmax = MAX (pDmax, points[k].pD);
     39  }
     40  *Trange = Tmax - Tmin;
     41
     42  // mean epoch
     43  *Tmean = Tsum / Wsum;
     44
     45  // for HIGH_SPEED, just use the center of the range
     46  if (RELASTRO_OP == OP_HIGH_SPEED) {
     47    *Tmean = 0.5*(Tmax - Tmin);
     48  }
     49
     50  *parRange = hypot (pRmax - pRmin, pDmax - pDmin);
     51
     52  /* we need to do the fit in a locally linear space; choose a ref coordinate */
     53  fitStats->coords.crval1 = points[0].R;
     54  fitStats->coords.crval2 = points[0].D;
     55
     56  // project all of the R,D coordinates to a plane centered on this coordinate. set
     57  // the times to be relative to Tmean
     58  for (k = 0; k < Npoints; k++) {
     59    RD_to_XY (&points[k].X, &points[k].Y, points[k].R, points[k].D, &fitStats->coords);
     60    points[k].T -= *Tmean;
     61  }       
     62  return TRUE;
     63}
    464
    565FitStats *FitStatsInit (int Nmax, int Nboot) {
  • trunk/Ohana/src/relastro/src/UpdateObjects.c

    r39238 r39239  
    625625}
    626626
    627 int FitAstromPoints_Project (FitStats *fitStats, double *Tmean, double *Trange, double *parRange) {
    628 
    629   int k;
    630 
    631   int Npoints = fitStats->Npoints;
    632   FitAstromPoint *points = fitStats->points;
    633 
    634   // find Tmin & Tmax from the list of accepted measurements
    635   double Tmin  = points[0].T;
    636   double Tmax  = points[0].T;
    637   double pRmin = +2.0;
    638   double pRmax = -2.0;
    639   double pDmin = +2.0;
    640   double pDmax = -2.0;
    641 
    642   *Tmean = 0.0;
    643 
    644   double Tsum = 0.0;
    645   double Wsum = 0.0;
    646   for (k = 0; k < Npoints; k++) {
    647     Tmin = MIN(Tmin, points[k].T);
    648     Tmax = MAX(Tmax, points[k].T);
    649 
    650     float wx = 1.0 / SQ(points[k].dX);
    651 
    652     Tsum += points[k].T * wx;
    653     Wsum += wx;
    654 
    655     // at this point, T is in years since J2000
    656     ParFactor (&points[k].pR, &points[k].pD, points[k].R, points[k].D, points[k].T);
    657     pRmin = MIN (pRmin, points[k].pR);
    658     pRmax = MAX (pRmax, points[k].pR);
    659     pDmin = MIN (pDmin, points[k].pD);
    660     pDmax = MAX (pDmax, points[k].pD);
    661   }
    662   *Trange = Tmax - Tmin;
    663 
    664   // mean epoch
    665   *Tmean = Tsum / Wsum;
    666 
    667   // for HIGH_SPEED, just use the center of the range
    668   if (RELASTRO_OP == OP_HIGH_SPEED) {
    669     *Tmean = 0.5*(Tmax - Tmin);
    670   }
    671 
    672   *parRange = hypot (pRmax - pRmin, pDmax - pDmin);
    673 
    674   /* we need to do the fit in a locally linear space; choose a ref coordinate */
    675   fitStats->coords.crval1 = points[0].R;
    676   fitStats->coords.crval2 = points[0].D;
    677 
    678   // project all of the R,D coordinates to a plane centered on this coordinate. set
    679   // the times to be relative to Tmean
    680   for (k = 0; k < Npoints; k++) {
    681     RD_to_XY (&points[k].X, &points[k].Y, points[k].R, points[k].D, &fitStats->coords);
    682     points[k].T -= *Tmean;
    683   }       
    684   return TRUE;
    685 }
    686 
    687627int CatalogMaxNmeasure (Catalog *catalog, int Ncatalog) {
    688628
Note: See TracChangeset for help on using the changeset viewer.