Changeset 39239
- Timestamp:
- Dec 9, 2015, 8:42:01 AM (11 years ago)
- Location:
- trunk/Ohana/src/relastro
- Files:
-
- 1 added
- 3 edited
-
Makefile (modified) (3 diffs)
-
src/FitAstromOps.c (modified) (1 diff)
-
src/UpdateObjects.c (modified) (1 diff)
-
src/fitpm.c (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/relastro/Makefile
r39238 r39239 10 10 MAN = $(HOME)/doc 11 11 INC = $(HOME)/include 12 TESTDIR = $(HOME)/test 13 TESTBIN = $(HOME)/test 12 14 include ../../Makefile.Common 13 15 … … 21 23 22 24 install: $(DESTBIN)/relastro $(DESTBIN)/relastro_client 23 24 # $(DESTBIN)/testparallax25 25 26 26 RELASTRO = \ … … 161 161 $(TESTPAR): $(INC)/relastro.h 162 162 $(BIN)/testparallax.$(ARCH): $(TESTPAR) 163 164 fitpm: $(BIN)/fitpm.$(ARCH) 165 166 FITPM = \ 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 2 2 3 3 // I am modifying FitPM with an eye to (a) threaded operations and (b) bootstrap resampling tests. 4 5 int 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 } 4 64 5 65 FitStats *FitStatsInit (int Nmax, int Nboot) { -
trunk/Ohana/src/relastro/src/UpdateObjects.c
r39238 r39239 625 625 } 626 626 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 measurements635 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 J2000656 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 epoch665 *Tmean = Tsum / Wsum;666 667 // for HIGH_SPEED, just use the center of the range668 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. set679 // the times to be relative to Tmean680 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 687 627 int CatalogMaxNmeasure (Catalog *catalog, int Ncatalog) { 688 628
Note:
See TracChangeset
for help on using the changeset viewer.
