Changeset 12332 for trunk/Ohana/src/addstar
- Timestamp:
- Mar 8, 2007, 12:21:18 PM (19 years ago)
- Location:
- trunk/Ohana/src/addstar
- Files:
-
- 20 edited
-
Makefile (modified) (1 diff)
-
src/ConfigInit.c (modified) (4 diffs)
-
src/FilterStars.c (modified) (1 diff)
-
src/ImageOptions.c (modified) (1 diff)
-
src/LoadStars.c (modified) (4 diffs)
-
src/ReadImageHeader.c (modified) (5 diffs)
-
src/ReadStarsFITS.c (modified) (4 diffs)
-
src/SEDfit.c (modified) (5 diffs)
-
src/SocketOps.c (modified) (1 diff)
-
src/UpdateDatabase_Image.c (modified) (1 diff)
-
src/calibrate.c (modified) (6 diffs)
-
src/fakeimage.c (modified) (4 diffs)
-
src/find_matches.c (modified) (6 diffs)
-
src/find_matches_closest.c (modified) (6 diffs)
-
src/find_matches_refstars.c (modified) (3 diffs)
-
src/find_proper.c (modified) (2 diffs)
-
src/gstars.c (modified) (5 diffs)
-
src/load2mass_catalog.c (modified) (3 diffs)
-
src/replace_match.c (modified) (1 diff)
-
src/update_coords.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/addstar/Makefile
r11880 r12332 240 240 241 241 install: 242 for i in $(INSTALL); do make $$i.install ; done242 for i in $(INSTALL); do make $$i.install || exit; done -
trunk/Ohana/src/addstar/src/ConfigInit.c
r8639 r12332 7 7 char *config, *file; 8 8 char RadiusWord[80]; 9 char PhotCodeFile[256]; 9 char CatdirPhotcodeFile[256]; 10 char MasterPhotcodeFile[256]; 10 11 AddstarClientOptions options; 11 12 … … 61 62 CAL_INSTMAG_MAX = -9.0; 62 63 CAL_INSTMAG_MIN = -13.0; 63 ScanConfig (config, "CAL_INSTMAG_MAX", "%lf", 0, &CAL_INSTMAG_MAX);64 ScanConfig (config, "CAL_INSTMAG_MIN", "%lf", 0, &CAL_INSTMAG_MIN);64 ScanConfig (config, "CAL_INSTMAG_MAX", "%lf", 0, &CAL_INSTMAG_MAX); 65 ScanConfig (config, "CAL_INSTMAG_MIN", "%lf", 0, &CAL_INSTMAG_MIN); 65 66 66 67 /* location of needed data sources */ … … 69 70 ScanConfig (config, "GSCDIR", "%s", 0, GSCDIR); 70 71 71 if (!ScanConfig (config, "USNO_A_DIR", "%s", 0, USNO_A_DIR)) {72 ScanConfig (config, "USNO_CDROM", "%s", 0, USNO_A_DIR);72 if (!ScanConfig (config, "USNO_A_DIR", "%s", 0, USNO_A_DIR)) { 73 ScanConfig (config, "USNO_CDROM", "%s", 0, USNO_A_DIR); 73 74 } 74 75 ScanConfig (config, "USNO_B_DIR", "%s", 0, USNO_B_DIR); 75 76 76 ScanConfig (config, "TYCHO_DIR", "%s", 0, TYCHO_DIR);77 ScanConfig (config, "TYCHO_DIR", "%s", 0, TYCHO_DIR); 77 78 78 GetConfig (config, "GSCFILE", "%s", 0, GSCFILE);79 GetConfig (config, "CATDIR", "%s", 0, CATDIR);80 GetConfig (config, "PHOTCODE_FILE", "%s", 0, PhotCodeFile);79 GetConfig (config, "GSCFILE", "%s", 0, GSCFILE); 80 GetConfig (config, "CATDIR", "%s", 0, CATDIR); 81 GetConfig (config, "PHOTCODE_FILE", "%s", 0, MasterPhotcodeFile); 81 82 ScanConfig (config, "CATMODE", "%s", 0, CATMODE); 82 83 ScanConfig (config, "CATFORMAT", "%s", 0, CATFORMAT); … … 147 148 if (*CATFORMAT == 0) strcpy (CATFORMAT, "ELIXIR"); 148 149 149 if (!LoadPhotcodes (PhotCodeFile)) { 150 fprintf (stderr, "error loading photcode file %s\n", PhotCodeFile); 150 /* XXX this does not yet write out the master photcode table */ 151 sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", CATDIR); 152 if (!LoadPhotcodes (CatdirPhotcodeFile, MasterPhotcodeFile)) { 153 fprintf (stderr, "error loading photcode table %s or master file %s\n", CatdirPhotcodeFile, MasterPhotcodeFile); 151 154 exit (1); 152 155 } -
trunk/Ohana/src/addstar/src/FilterStars.c
r10937 r12332 25 25 while (stars[N].R >= 360.0) stars[N].R -= 360.0; 26 26 stars[N].found = -1; 27 stars[N].code = image[0]. source;27 stars[N].code = image[0].photcode; 28 28 29 29 /** additional quantities to supply to Stars based on the image data **/ 30 30 31 31 /* calculate accurate per-star airmass */ 32 stars[N].airmass = airmass (image[0].secz _PS, stars[N].R, stars[N].D, image[0].sidtime, image[0].latitude);33 stars[N].Mcal = image[0].Mcal _PS;32 stars[N].airmass = airmass (image[0].secz, stars[N].R, stars[N].D, image[0].sidtime, image[0].latitude); 33 stars[N].Mcal = image[0].Mcal; 34 34 stars[N].t = image[0].tzero + 1e-4*stars[N].Y*image[0].trate; /* trate is in 0.1 msec / row */ 35 35 -
trunk/Ohana/src/addstar/src/ImageOptions.c
r10937 r12332 24 24 if (!strcmp (&images[0].coords.ctype[4], "-DIS")) continue; 25 25 26 photcode = GetPhotcodebyCode (images[i]. source);26 photcode = GetPhotcodebyCode (images[i].photcode); 27 27 28 28 if (equivPhotcode) { -
trunk/Ohana/src/addstar/src/LoadStars.c
r10897 r12332 52 52 exit (1); 53 53 } 54 image[0]. source = photcode;54 image[0].photcode = photcode; 55 55 56 56 image[0].NX -= XOVERSCAN; … … 62 62 tmp = 0; 63 63 /* gfits_scan (&header, "APMIFIT", "%lf", 1, &tmp); */ 64 image[0].apmifit _PS= tmp;64 image[0].apmifit = tmp; 65 65 66 66 tmp = 0; 67 67 /* gfits_scan (&header, "dAPMIFIT", "%lf", 1, &tmp); */ 68 image[0].dapmifit _PS= tmp;68 image[0].dapmifit = tmp; 69 69 70 70 tmp = 0; … … 108 108 tmp = 0; 109 109 gfits_scan (&header, AirmassKeyword, "%lf", 1, &tmp); 110 image[0].secz _PS= MIN (NO_MAG, tmp);110 image[0].secz = MIN (NO_MAG, tmp); 111 111 112 112 if (!gfits_scan (&header, CCDNumKeyword, "%d", 1, &itmp)) { … … 120 120 121 121 /* secz is in units milli-airmass */ 122 image[0].Mcal _PS= 0.0;122 image[0].Mcal = 0.0; 123 123 image[0].Xm = NO_MAG; 124 124 image[0].code = 0; -
trunk/Ohana/src/addstar/src/ReadImageHeader.c
r10937 r12332 5 5 int ReadImageHeader (Header *header, Image *image, int photcode) { 6 6 7 int Nastro, ccdnum, hour, min , simple;8 double tmp, sec , dMs;9 char * name, *c, photname[64], line[80];7 int Nastro, ccdnum, hour, min; 8 double tmp, sec; 9 char *c, photname[64], line[80]; 10 10 11 11 /* get astrometry information */ … … 66 66 exit (1); 67 67 } 68 image[0]. source = photcode;68 image[0].photcode = photcode; 69 69 70 70 image[0].NX -= XOVERSCAN; … … 76 76 tmp = 0; 77 77 /* gfits_scan (header, "APMIFIT", "%lf", 1, &tmp); */ 78 image[0].apmifit _PS= tmp;78 image[0].apmifit = tmp; 79 79 80 80 tmp = 0; 81 81 /* gfits_scan (header, "dAPMIFIT", "%lf", 1, &tmp); */ 82 image[0].dapmifit _PS= tmp;82 image[0].dapmifit = tmp; 83 83 84 84 tmp = 0; … … 118 118 tmp = 0; 119 119 gfits_scan (header, AirmassKeyword, "%lf", 1, &tmp); 120 image[0].secz _PS= MIN (NO_MAG, tmp);120 image[0].secz = MIN (NO_MAG, tmp); 121 121 122 122 if (!gfits_scan (header, CCDNumKeyword, "%d", 1, &ccdnum)) { … … 130 130 131 131 /* secz is in units milli-airmass */ 132 image[0].Mcal _PS= 0.0;132 image[0].Mcal = 0.0; 133 133 image[0].Xm = NO_MAG; 134 134 image[0].code = 0; -
trunk/Ohana/src/addstar/src/ReadStarsFITS.c
r10937 r12332 5 5 Stars *ReadStarsFITS (FILE *f, Header *header, Header *in_theader, unsigned int *nstars) { 6 6 7 int i,Nskip, Nstars;7 int Nskip, Nstars; 8 8 char type[80]; 9 9 Header theader; … … 13 13 if (in_theader == NULL) { 14 14 table.header = &theader; 15 if (!gfits_fread_header (f, table.header)) Shutdown ("ERROR: can't read table header"); 15 16 } else { 16 17 table.header = in_theader; 17 }18 19 /* load the table header (skip this?) */20 if (in_theader == NULL) {21 if (!gfits_fread_header (f, &theader)) {22 fprintf (stderr, "ERROR: can't read table header\n");23 exit (1);24 }25 } else {26 18 Nskip = in_theader[0].size; 27 19 fseek (f, Nskip, SEEK_CUR); … … 34 26 } 35 27 36 if (!gfits_scan ( &theader, "EXTTYPE", "%s", 1, type)) {28 if (!gfits_scan (table.header, "EXTTYPE", "%s", 1, type)) { 37 29 strcpy (type, "SMPDATA"); 38 30 } … … 93 85 PS1Data *ps1data; 94 86 95 ps1data = gfits_table_get _PS1Data (table, &Nstars, NULL);87 ps1data = gfits_table_get1Data (table, &Nstars, NULL); 96 88 97 89 ALLOCATE (stars, Stars, Nstars); -
trunk/Ohana/src/addstar/src/SEDfit.c
r8361 r12332 80 80 Nphot = 0; 81 81 for (j = 0; j < incat[0].average[i].Nm; j++) { 82 idx = table[0].hashcode[incat[0].measure[m+j]. source];82 idx = table[0].hashcode[incat[0].measure[m+j].photcode]; 83 83 if (idx == -1) continue; 84 84 // only fit the selected photcodes (mode == "fit") … … 86 86 if (table[0].mode[idx] == SED_SAMPLE) continue; 87 87 // XXX do something more clever if more than one value exists per photcode 88 sourceValue.mags[idx] = incat[0].measure[m+j].M _PS+ table[0].vegaToAB[idx];89 sourceError.mags[idx] = incat[0].measure[m+j].dM _PS;90 if (incat[0].measure[m+j]. source == USNOred) sourceError.mags[idx] = 0.3;91 if (incat[0].measure[m+j]. source == USNOblu) sourceError.mags[idx] = 0.3;88 sourceValue.mags[idx] = incat[0].measure[m+j].M + table[0].vegaToAB[idx]; 89 sourceError.mags[idx] = incat[0].measure[m+j].dM; 90 if (incat[0].measure[m+j].photcode == USNOred) sourceError.mags[idx] = 0.3; 91 if (incat[0].measure[m+j].photcode == USNOblu) sourceError.mags[idx] = 0.3; 92 92 found[idx] = TRUE; 93 93 Nphot ++; … … 159 159 160 160 // XXX for now, set the average mag data to NULL 161 outcat[0].average[Nave].M = NO_MAG;162 outcat[0].average[Nave].dM = NO_MAG;163 161 outcat[0].average[Nave].Nm = 0; 164 162 outcat[0].average[Nave].Nn = 0; 165 163 outcat[0].average[Nave].Xp = NO_MAG; 166 outcat[0].average[Nave].Xm = NO_MAG;167 outcat[0].average[Nave].Xg = NO_MAG;168 164 outcat[0].average[Nave].offset = Nmeas; 169 165 outcat[0].average[Nave].missing = -1; … … 171 167 172 168 for (j = 0; j < Nsec; j++) { 173 outcat[0].secfilt[Nave*Nsec+j].M _PS= NO_MAG;174 outcat[0].secfilt[Nave*Nsec+j].dM _PS= NO_MAG;169 outcat[0].secfilt[Nave*Nsec+j].M = NO_MAG; 170 outcat[0].secfilt[Nave*Nsec+j].dM = NO_MAG; 175 171 outcat[0].secfilt[Nave*Nsec+j].Xm = NO_MAG; 176 172 } … … 185 181 for (j = 0; valid && (j < Nmodel); j++) { 186 182 n = modelRow[j]; 187 outcat[0].measure[Nmeas].dR _PS= 0.0;188 outcat[0].measure[Nmeas].dD _PS= 0.0;189 outcat[0].measure[Nmeas].M _PS= MIN (table[0].row[minFit.row][0].mags[n] + minFit.Md, NO_MAG);190 outcat[0].measure[Nmeas].dM _PS= 0.0;191 outcat[0].measure[Nmeas].Mcal _PS= 0;183 outcat[0].measure[Nmeas].dR = 0.0; 184 outcat[0].measure[Nmeas].dD = 0.0; 185 outcat[0].measure[Nmeas].M = MIN (table[0].row[minFit.row][0].mags[n] + minFit.Md, NO_MAG); 186 outcat[0].measure[Nmeas].dM = 0.0; 187 outcat[0].measure[Nmeas].Mcal = 0; 192 188 outcat[0].measure[Nmeas].t = TIMEREF; 193 189 outcat[0].measure[Nmeas].averef = Nave; 194 outcat[0].measure[Nmeas]. source = table[0].code[n];190 outcat[0].measure[Nmeas].photcode = table[0].code[n]; 195 191 outcat[0].measure[Nmeas].dophot = 0; 196 192 outcat[0].measure[Nmeas].flags = 0; 197 outcat[0].measure[Nmeas].dt _PS= 0xffff;198 199 outcat[0].measure[Nmeas].Mgal _PS= NO_MAG;200 outcat[0].measure[Nmeas].airmass _PS= 0;193 outcat[0].measure[Nmeas].dt = 0xffff; 194 195 outcat[0].measure[Nmeas].Mgal = NO_MAG; 196 outcat[0].measure[Nmeas].airmass = 0; 201 197 outcat[0].measure[Nmeas].FWx = NO_MAG; 202 198 outcat[0].measure[Nmeas].FWy = NO_ERR; -
trunk/Ohana/src/addstar/src/SocketOps.c
r5347 r12332 60 60 int WaitServerSocket (int InitSocket, SockAddress *Address, int *validIP, int Nvalid) { 61 61 62 int i, BindSocket, length; 62 int i, BindSocket; 63 socklen_t length; 63 64 SockAddress Address_in; 64 65 u_int32_t addr; -
trunk/Ohana/src/addstar/src/UpdateDatabase_Image.c
r10939 r12332 3 3 int UpdateDatabase_Image (AddstarClientOptions *options, Image *images, int Nimages, Coords *mosaic, Stars *stars, int Nstars) { 4 4 5 int i, Noverlap, status; 6 Image *overlap; 5 int i, status; 7 6 Catalog catalog; 8 7 SkyList *skylist, *newlist; -
trunk/Ohana/src/addstar/src/calibrate.c
r5585 r12332 60 60 // - calibrate to external system (Mref) 61 61 62 mycode = GetPhotcodebyCode (new[0]. source);62 mycode = GetPhotcodebyCode (new[0].photcode); 63 63 incode = GetPhotcodebyCode (mycode[0].equiv); 64 64 excode = GetPhotcodebyCode (incode[0].equiv); … … 74 74 m = average[0].offset; 75 75 for (i = 0; i < average[0].Nm; i++) { 76 if (measure[m]. source == CalC0) {76 if (measure[m].photcode == CalC0) { 77 77 found0 = TRUE; 78 CalM0 = measure[m].M _PS;79 dCalM = measure[m].dM _PS;78 CalM0 = measure[m].M; 79 dCalM = measure[m].dM; 80 80 } 81 if (measure[m]. source == CalC1) {81 if (measure[m].photcode == CalC1) { 82 82 found1 = TRUE; 83 CalM1 = measure[m].M _PS;83 CalM1 = measure[m].M; 84 84 } 85 if (measure[m]. source == CalC2) {85 if (measure[m].photcode == CalC2) { 86 86 found2 = TRUE; 87 CalM2 = measure[m].M _PS;87 CalM2 = measure[m].M; 88 88 } 89 89 if (found0 && found1 && found2) { 90 Mcal = new[0].M _PS + 0.001*mycode[0].C + mycode[0].K*(new[0].airmass_PS- 1.0) - ZeroPt;90 Mcal = new[0].M + 0.001*mycode[0].C + mycode[0].K*(new[0].airmass - 1.0) - ZeroPt; 91 91 color = CalM1 - CalM2 - 0.001*mycode[0].dX; 92 92 factor = color; … … 99 99 } 100 100 // if we want to apply a Mcal -> Mref color correction, we need the additional color term 101 SaveCalibration (Mcal, new[0].dM _PS, CalM0, dCalM, new[0].M_PS - ZeroPt - new[0].dt_PS, Nstar);101 SaveCalibration (Mcal, new[0].dM, CalM0, dCalM, new[0].M - ZeroPt - new[0].dt, Nstar); 102 102 return; 103 103 } … … 121 121 if (MaxN == -1) { 122 122 fprintf (stderr, "no clean stars\n"); 123 image[0].Mcal _PS= 10.000;124 image[0].dMcal _PS= 10.000;123 image[0].Mcal = 10.000; 124 image[0].dMcal = 10.000; 125 125 return; 126 126 } … … 155 155 if (Nkeep < 5) { 156 156 fprintf (stderr, "too few stars\n"); 157 image[0].Mcal _PS= 10.000;158 image[0].dMcal _PS= 10.000;157 image[0].Mcal = 10.000; 158 image[0].dMcal = 10.000; 159 159 return; 160 160 } … … 187 187 Mw = W1 / W2; 188 188 fprintf (stderr, "N: %.0f, mean: %f, wt mean: %f, stdev: %f, precision: %f\n", N, M1, Mw, M2, M2 / sqrt (N)); 189 image[0].Mcal _PS= M1;190 image[0].dMcal _PS= M2 / sqrt (N);189 image[0].Mcal = M1; 190 image[0].dMcal = M2 / sqrt (N); 191 191 image[0].Mxxxx = N; 192 192 } else { 193 193 fprintf (stderr, "too few stars\n"); 194 image[0].Mcal _PS= 10.000;195 image[0].dMcal _PS= 10.000;194 image[0].Mcal = 10.000; 195 image[0].dMcal = 10.000; 196 196 image[0].Mxxxx = 0; 197 197 } -
trunk/Ohana/src/addstar/src/fakeimage.c
r11081 r12332 111 111 image[i+1].NY = Ny; 112 112 113 image[i+1]. source = photcode;113 image[i+1].photcode = photcode; 114 114 115 115 image[i+1].exptime = 0.0; 116 116 117 image[i+1].apmifit _PS= 0.0;118 image[i+1].dapmifit _PS= 0.0;117 image[i+1].apmifit = 0.0; 118 image[i+1].dapmifit = 0.0; 119 119 120 120 image[i+1].detection_limit = 0.0; … … 124 124 image[i+1].tzero = MosaicTime; 125 125 image[i+1].trate = 0; 126 image[i+1].secz _PS= 1.0;126 image[i+1].secz = 1.0; 127 127 image[i+1].ccdnum = 0xff; 128 128 129 image[i+1].Mcal _PS= 0.0;129 image[i+1].Mcal = 0.0; 130 130 image[i+1].Xm = NO_MAG; 131 131 image[i+1].code = 0; … … 173 173 image[0].NY = Dmax - Dmin; 174 174 175 image[0]. source = photcode;175 image[0].photcode = photcode; 176 176 177 177 image[0].exptime = 0.0; 178 image[0].apmifit _PS= 0.0;179 image[0].dapmifit _PS= 0.0;178 image[0].apmifit = 0.0; 179 image[0].dapmifit = 0.0; 180 180 image[0].detection_limit = 0.0; 181 181 image[0].saturation_limit = 0.0; … … 184 184 image[0].tzero = MosaicTime; 185 185 image[0].trate = 0; 186 image[0].secz _PS= 1.0;186 image[0].secz = 1.0; 187 187 image[0].ccdnum = 0xff; 188 image[0].Mcal _PS= 0.0;188 image[0].Mcal = 0.0; 189 189 image[0].Xm = NO_MAG; 190 190 image[0].code = 0; -
trunk/Ohana/src/addstar/src/find_matches.c
r10939 r12332 4 4 5 5 int i, j, n, N, J, status, Nstars; 6 double X, Y,RADIUS, RADIUS2;6 double RADIUS, RADIUS2; 7 7 float *X1, *Y1, *X2, *Y2; 8 8 float dX, dY, dR; … … 10 10 int Nave, NAVE, Nmeas, NMEAS, Nmatch; 11 11 int Nsecfilt, Nsec; 12 float Mcat, *Mval;13 PhotCode *code;14 12 Coords tcoords; 15 13 16 /* photcode data - must by of type DEP; options.photcode is equiv PRI/SEC photcode */ 17 /* this function requires incoming stars to have the same photcode.equiv value */ 14 /* photcode data - must by of type DEP; options.photcode is equiv photcode for all input 15 images this function requires incoming stars to have the same photcode.equiv value. if 16 this value is not a valid photcode (ie, 0), then no modification is made to the average 17 magnitudes (Nsec will be -1) */ 18 18 19 Nsecfilt = GetPhotcodeNsecfilt (); 19 20 Nsec = GetPhotcodeNsec (options.photcode); … … 142 143 /** add measurements for this star **/ 143 144 /** dR,dD now represent arcsec **/ 144 catalog[0].measure[Nmeas].dR _PS= 3600.0*(catalog[0].average[n].R - stars[N].R);145 if (catalog[0].measure[Nmeas].dR _PS> +180.0*3600.0) {145 catalog[0].measure[Nmeas].dR = 3600.0*(catalog[0].average[n].R - stars[N].R); 146 if (catalog[0].measure[Nmeas].dR > +180.0*3600.0) { 146 147 // average on high end of boundary, move star up 147 148 stars[N].R += 360.0; 148 catalog[0].measure[Nmeas].dR _PS= 3600.0*(catalog[0].average[n].R - stars[N].R);149 } 150 if (catalog[0].measure[Nmeas].dR _PS< -180.0*3600.0) {149 catalog[0].measure[Nmeas].dR = 3600.0*(catalog[0].average[n].R - stars[N].R); 150 } 151 if (catalog[0].measure[Nmeas].dR < -180.0*3600.0) { 151 152 // average on low end of boundary, move star down 152 153 stars[N].R -= 360.0; 153 catalog[0].measure[Nmeas].dR _PS= 3600.0*(catalog[0].average[n].R - stars[N].R);154 } 155 if (fabs(catalog[0].measure[Nmeas].dR _PS) > 10*RADIUS) {154 catalog[0].measure[Nmeas].dR = 3600.0*(catalog[0].average[n].R - stars[N].R); 155 } 156 if (fabs(catalog[0].measure[Nmeas].dR) > 10*RADIUS) { 156 157 fprintf (stderr, "error: %10.6f,%10.6f vs %10.6f,%10.6f (%f,%f vs %f,%f)\n", 157 158 catalog[0].average[n].R, catalog[0].average[n].D, … … 160 161 Y1[i], Y2[J]); 161 162 } 162 catalog[0].measure[Nmeas].dD_PS = 3600.0*(catalog[0].average[n].D - stars[N].D); 163 catalog[0].measure[Nmeas].M_PS = stars[N].M; 164 catalog[0].measure[Nmeas].dM_PS = stars[N].dM; /* error in input files stored in thousandths of mag */ 165 catalog[0].measure[Nmeas].Mcal_PS = stars[N].Mcal; 166 catalog[0].measure[Nmeas].t = stars[N].t; 167 catalog[0].measure[Nmeas].averef = n; /* this must be an absolute sequence number, if partial average is loaded */ 168 catalog[0].measure[Nmeas].source = stars[N].code; /* photcode */ 169 catalog[0].measure[Nmeas].dophot = stars[N].dophot; 170 catalog[0].measure[Nmeas].flags = 0; 171 catalog[0].measure[Nmeas].dt_PS = stars[N].dt; 172 catalog[0].measure[Nmeas].airmass_PS = stars[N].airmass; 173 174 catalog[0].measure[Nmeas].Mgal_PS = stars[N].Mgal; 175 catalog[0].measure[Nmeas].FWx = MIN (100*stars[N].fx, NO_MAG); 176 catalog[0].measure[Nmeas].FWy = MIN (100*stars[N].fy, NO_MAG); 177 catalog[0].measure[Nmeas].theta = MIN ((255/360)*stars[N].df, NO_ERR); 163 catalog[0].measure[Nmeas].dD = 3600.0*(catalog[0].average[n].D - stars[N].D); 164 165 /* XXX need to add dX, dY : need to load into stars[N].dX,dY */ 166 /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */ 167 catalog[0].measure[Nmeas].Xccd = stars[N].X; 168 catalog[0].measure[Nmeas].Yccd = stars[N].Y; 169 170 catalog[0].measure[Nmeas].M = stars[N].M; 171 catalog[0].measure[Nmeas].dM = stars[N].dM; /* error in input files stored in thousandths of mag */ 172 catalog[0].measure[Nmeas].Mcal = stars[N].Mcal; 173 catalog[0].measure[Nmeas].t = stars[N].t; 174 catalog[0].measure[Nmeas].averef = n; /* this must be an absolute sequence number, if partial average is loaded */ 175 catalog[0].measure[Nmeas].photcode = stars[N].code; /* photcode */ 176 catalog[0].measure[Nmeas].dophot = stars[N].dophot; 177 catalog[0].measure[Nmeas].flags = 0; 178 catalog[0].measure[Nmeas].dt = stars[N].dt; 179 catalog[0].measure[Nmeas].airmass = stars[N].airmass; 180 181 catalog[0].measure[Nmeas].Mgal = stars[N].Mgal; 182 catalog[0].measure[Nmeas].FWx = MIN (100*stars[N].fx, NO_MAG); 183 catalog[0].measure[Nmeas].FWy = MIN (100*stars[N].fy, NO_MAG); 184 catalog[0].measure[Nmeas].theta = MIN ((0xffff/360.0)*stars[N].df, NO_MAG); 178 185 179 /* it is not valid to pass PRI/SEC/REF photcodes to this routine */ 180 /* check for entries in the secfilt lists */ 181 Mcat = PhotCat (&catalog[0].measure[Nmeas]); 182 Mval = (Nsec == -1) ? &catalog[0].average[n].M : &catalog[0].secfilt[n*Nsecfilt+Nsec].M_PS; 183 if (*Mval == NO_MAG) *Mval = Mcat; 186 /* set the average magnitude if not already set and if photcode.equiv is not 0 */ 184 187 /* in UPDATE mode, this value is not saved; use relphot to recalculate */ 188 if (Nsec > -1) { 189 if (catalog[0].secfilt[n*Nsecfilt+Nsec].M != NO_MAG) { 190 catalog[0].secfilt[n*Nsecfilt+Nsec].M = PhotCat (&catalog[0].measure[Nmeas]); 191 } 192 } 185 193 186 194 /* adds the measurement to the calibration if appropriate color terms are found */ … … 242 250 catalog[0].average[Nave].R = stars[N].R; 243 251 catalog[0].average[Nave].D = stars[N].D; 244 catalog[0].average[Nave].M = NO_MAG; 245 catalog[0].average[Nave].dM = NO_MAG; 252 catalog[0].average[Nave].Xp = 0; 246 253 catalog[0].average[Nave].Nm = 1; 247 254 catalog[0].average[Nave].Nn = 0; 248 catalog[0].average[Nave].Xp = NO_MAG;249 catalog[0].average[Nave].Xm = NO_MAG;250 catalog[0].average[Nave].Xg = NO_MAG;251 255 catalog[0].average[Nave].offset = Nmeas; 252 256 catalog[0].average[Nave].missing = -1; … … 263 267 264 268 for (j = 0; j < Nsecfilt; j++) { 265 catalog[0].secfilt[Nave*Nsecfilt+j].M_PS = NO_MAG; 266 catalog[0].secfilt[Nave*Nsecfilt+j].dM_PS = NO_MAG; 267 catalog[0].secfilt[Nave*Nsecfilt+j].Xm = NO_MAG; 268 } 269 270 catalog[0].measure[Nmeas].dR_PS = 0.0; 271 catalog[0].measure[Nmeas].dD_PS = 0.0; 272 catalog[0].measure[Nmeas].M_PS = stars[N].M; 273 catalog[0].measure[Nmeas].dM_PS = stars[N].dM; 274 catalog[0].measure[Nmeas].Mcal_PS = stars[N].Mcal; 275 catalog[0].measure[Nmeas].t = stars[N].t; 276 catalog[0].measure[Nmeas].averef = Nave; /* XXX EAM : must be absolute Nave if partial read */ 277 catalog[0].measure[Nmeas].source = stars[N].code; /* photcode */ 278 catalog[0].measure[Nmeas].dophot = stars[N].dophot; 279 catalog[0].measure[Nmeas].flags = 0; 280 catalog[0].measure[Nmeas].dt_PS = stars[N].dt; 281 catalog[0].measure[Nmeas].airmass_PS = stars[N].airmass; 282 283 catalog[0].measure[Nmeas].Mgal_PS = stars[N].Mgal; 284 catalog[0].measure[Nmeas].FWx = MIN (100*stars[N].fx, NO_MAG); 285 catalog[0].measure[Nmeas].FWy = MIN (100*stars[N].fy, NO_MAG); 286 catalog[0].measure[Nmeas].theta = MIN ((255/360)*stars[N].df, NO_ERR); 287 288 Mcat = PhotCat (&catalog[0].measure[Nmeas]); 289 Mval = (Nsec == -1) ? &catalog[0].average[Nave].M : &catalog[0].secfilt[Nave*Nsecfilt+Nsec].M_PS; 290 if (*Mval == NO_MAG) *Mval = Mcat; 269 catalog[0].secfilt[Nave*Nsecfilt+j].M = NO_MAG; 270 catalog[0].secfilt[Nave*Nsecfilt+j].dM = NO_MAG; 271 catalog[0].secfilt[Nave*Nsecfilt+j].Xm = NO_MAG; 272 } 273 274 /* XXX need to add dX, dY : need to load into stars[N].dX,dY */ 275 /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */ 276 catalog[0].measure[Nmeas].Xccd = stars[N].X; 277 catalog[0].measure[Nmeas].Yccd = stars[N].Y; 278 279 catalog[0].measure[Nmeas].dR = 0.0; 280 catalog[0].measure[Nmeas].dD = 0.0; 281 catalog[0].measure[Nmeas].M = stars[N].M; 282 catalog[0].measure[Nmeas].dM = stars[N].dM; 283 catalog[0].measure[Nmeas].Mcal = stars[N].Mcal; 284 catalog[0].measure[Nmeas].t = stars[N].t; 285 catalog[0].measure[Nmeas].averef = Nave; /* XXX EAM : must be absolute Nave if partial read */ 286 catalog[0].measure[Nmeas].photcode = stars[N].code; /* photcode */ 287 catalog[0].measure[Nmeas].dophot = stars[N].dophot; 288 catalog[0].measure[Nmeas].flags = 0; 289 catalog[0].measure[Nmeas].dt = stars[N].dt; 290 catalog[0].measure[Nmeas].airmass = stars[N].airmass; 291 292 catalog[0].measure[Nmeas].Mgal = stars[N].Mgal; 293 catalog[0].measure[Nmeas].FWx = MIN (100*stars[N].fx, NO_MAG); 294 catalog[0].measure[Nmeas].FWy = MIN (100*stars[N].fy, NO_MAG); 295 catalog[0].measure[Nmeas].theta = MIN ((0xffff/360.0)*stars[N].df, NO_MAG); 296 /* XXX replace df here with theta, right? */ 297 298 /* set the average magnitude if not already set and the photcode.equiv is not 0 */ 299 /* in UPDATE mode, this value is not saved; use relphot to recalculate */ 300 if (Nsec > -1) { 301 catalog[0].secfilt[Nave*Nsecfilt+Nsec].M = PhotCat (&catalog[0].measure[Nmeas]); 302 } 291 303 292 304 /* next[Nmeas] should always be -1 in this context (it is always the only -
trunk/Ohana/src/addstar/src/find_matches_closest.c
r10939 r12332 4 4 5 5 int i, j, n, N, J, Jmin, status, Nstars; 6 double X, Y, RADIUS, RADIUS2, Rmin, secz;6 double RADIUS, RADIUS2, Rmin; 7 7 float *X1, *Y1, *X2, *Y2; 8 8 float dX, dY, dR; … … 11 11 Coords tcoords; 12 12 int Nsecfilt, Nsec; 13 float Mcat, *Mval, MTIME; 14 PhotCode *code; 15 16 /* photcode data - must by of type DEP; options.photcode is equiv PRI/SEC photcode */ 17 /* this function requires incoming stars to have the same photcode.equiv value */ 13 14 /* photcode data - must by of type DEP; options.photcode is equiv photcode for all input 15 images this function requires incoming stars to have the same photcode.equiv value. if 16 this value is not a valid photcode (ie, 0), then no modification is made to the average 17 magnitudes (Nsec will be -1) */ 18 18 19 Nsecfilt = GetPhotcodeNsecfilt (); 19 20 Nsec = GetPhotcodeNsec (options.photcode); … … 160 161 /** add measurements for this star **/ 161 162 /** dR,dD now represent arcsec **/ 162 catalog[0].measure[Nmeas].dR _PS= 3600.0*(catalog[0].average[n].R - stars[N].R);163 if (catalog[0].measure[Nmeas].dR _PS> +180.0*3600.0) {163 catalog[0].measure[Nmeas].dR = 3600.0*(catalog[0].average[n].R - stars[N].R); 164 if (catalog[0].measure[Nmeas].dR > +180.0*3600.0) { 164 165 // average on high end of boundary, move star up 165 166 stars[N].R += 360.0; 166 catalog[0].measure[Nmeas].dR _PS= 3600.0*(catalog[0].average[n].R - stars[N].R);167 } 168 if (catalog[0].measure[Nmeas].dR _PS< -180.0*3600.0) {167 catalog[0].measure[Nmeas].dR = 3600.0*(catalog[0].average[n].R - stars[N].R); 168 } 169 if (catalog[0].measure[Nmeas].dR < -180.0*3600.0) { 169 170 // average on low end of boundary, move star down 170 171 stars[N].R -= 360.0; 171 catalog[0].measure[Nmeas].dR _PS= 3600.0*(catalog[0].average[n].R - stars[N].R);172 } 173 if (fabs(catalog[0].measure[Nmeas].dR _PS) > 10*RADIUS) {172 catalog[0].measure[Nmeas].dR = 3600.0*(catalog[0].average[n].R - stars[N].R); 173 } 174 if (fabs(catalog[0].measure[Nmeas].dR) > 10*RADIUS) { 174 175 fprintf (stderr, "error: %10.6f,%10.6f vs %10.6f,%10.6f (%f,%f vs %f,%f)\n", 175 176 catalog[0].average[n].R, catalog[0].average[n].D, … … 178 179 Y1[i], Y2[Jmin]); 179 180 } 180 catalog[0].measure[Nmeas].dD_PS = 3600.0*(catalog[0].average[n].D - stars[N].D); 181 catalog[0].measure[Nmeas].M_PS = stars[N].M; 182 catalog[0].measure[Nmeas].dM_PS = stars[N].dM; /* error in input files stored in thousandths of mag */ 183 catalog[0].measure[Nmeas].Mcal_PS = stars[N].Mcal; 184 catalog[0].measure[Nmeas].t = stars[N].t; 185 catalog[0].measure[Nmeas].averef = n; 186 catalog[0].measure[Nmeas].source = stars[N].code; /* photcode */ 187 catalog[0].measure[Nmeas].dophot = stars[N].dophot; 188 catalog[0].measure[Nmeas].flags = 0; 189 catalog[0].measure[Nmeas].dt_PS = stars[N].dt; 190 catalog[0].measure[Nmeas].airmass_PS = stars[N].airmass; 191 192 catalog[0].measure[Nmeas].Mgal_PS = stars[N].Mgal; 193 catalog[0].measure[Nmeas].FWx = MIN (100*stars[N].fx, NO_MAG); 194 catalog[0].measure[Nmeas].FWy = MIN (100*stars[N].fy, NO_MAG); 195 catalog[0].measure[Nmeas].theta = MIN ((255/360)*stars[N].df, NO_ERR); 181 catalog[0].measure[Nmeas].dD = 3600.0*(catalog[0].average[n].D - stars[N].D); 182 183 /* XXX need to add dX, dY : need to load into stars[N].dX,dY */ 184 /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */ 185 catalog[0].measure[Nmeas].Xccd = stars[N].X; 186 catalog[0].measure[Nmeas].Yccd = stars[N].Y; 187 188 catalog[0].measure[Nmeas].M = stars[N].M; 189 catalog[0].measure[Nmeas].dM = stars[N].dM; /* error in input files stored in thousandths of mag */ 190 catalog[0].measure[Nmeas].Mcal = stars[N].Mcal; 191 catalog[0].measure[Nmeas].t = stars[N].t; 192 catalog[0].measure[Nmeas].averef = n; 193 catalog[0].measure[Nmeas].photcode = stars[N].code; /* photcode */ 194 catalog[0].measure[Nmeas].dophot = stars[N].dophot; 195 catalog[0].measure[Nmeas].flags = 0; 196 catalog[0].measure[Nmeas].dt = stars[N].dt; 197 catalog[0].measure[Nmeas].airmass = stars[N].airmass; 198 199 catalog[0].measure[Nmeas].Mgal = stars[N].Mgal; 200 catalog[0].measure[Nmeas].FWx = MIN (100*stars[N].fx, NO_MAG); 201 catalog[0].measure[Nmeas].FWy = MIN (100*stars[N].fy, NO_MAG); 202 catalog[0].measure[Nmeas].theta = MIN ((0xffff/360.0)*stars[N].df, NO_MAG); 196 203 197 /* it is not valid to pass PRI/SEC/REF photcodes to this routine */ 198 /* check for entries in the secfilt lists */ 199 Mcat = PhotCat (&catalog[0].measure[Nmeas]); 200 Mval = (Nsec == -1) ? &catalog[0].average[n].M : &catalog[0].secfilt[n*Nsecfilt+Nsec].M_PS; 201 if (*Mval == NO_MAG) *Mval = Mcat; 204 /* set the average magnitude if not already set and the photcode.equiv is not 0 */ 202 205 /* in UPDATE mode, this value is not saved; use relphot to recalculate */ 206 if (Nsec > -1) { 207 if (catalog[0].secfilt[n*Nsecfilt+Nsec].M != NO_MAG) { 208 catalog[0].secfilt[n*Nsecfilt+Nsec].M = PhotCat (&catalog[0].measure[Nmeas]); 209 } 210 } 203 211 204 212 /* adds the measurement to the calibration if appropriate color terms are found */ … … 240 248 catalog[0].average[Nave].R = stars[N].R; 241 249 catalog[0].average[Nave].D = stars[N].D; 242 catalog[0].average[Nave].M = NO_MAG; 243 catalog[0].average[Nave].dM = NO_MAG; 250 catalog[0].average[Nave].Xp = 0; 244 251 catalog[0].average[Nave].Nm = 1; 245 252 catalog[0].average[Nave].Nn = 0; 246 catalog[0].average[Nave].Xp = NO_MAG;247 catalog[0].average[Nave].Xm = NO_MAG;248 catalog[0].average[Nave].Xg = NO_MAG;249 253 catalog[0].average[Nave].offset = Nmeas; 250 254 catalog[0].average[Nave].missing = -1; … … 261 265 262 266 for (j = 0; j < Nsecfilt; j++) { 263 catalog[0].secfilt[Nave*Nsecfilt+j].M _PS= NO_MAG;264 catalog[0].secfilt[Nave*Nsecfilt+j].dM _PS= NO_MAG;267 catalog[0].secfilt[Nave*Nsecfilt+j].M = NO_MAG; 268 catalog[0].secfilt[Nave*Nsecfilt+j].dM = NO_MAG; 265 269 catalog[0].secfilt[Nave*Nsecfilt+j].Xm = NO_MAG; 266 270 } 267 271 268 catalog[0].measure[Nmeas].dR_PS = 0.0; 269 catalog[0].measure[Nmeas].dD_PS = 0.0; 270 catalog[0].measure[Nmeas].M_PS = stars[N].M; 271 catalog[0].measure[Nmeas].dM_PS = stars[N].dM; 272 catalog[0].measure[Nmeas].Mcal_PS = stars[N].Mcal; 273 catalog[0].measure[Nmeas].t = stars[N].t; 274 catalog[0].measure[Nmeas].averef = Nave; 275 catalog[0].measure[Nmeas].source = stars[N].code; /* photcode */ 276 catalog[0].measure[Nmeas].dophot = stars[N].dophot; 277 catalog[0].measure[Nmeas].flags = 0; 278 catalog[0].measure[Nmeas].dt_PS = stars[N].dt; 279 catalog[0].measure[Nmeas].airmass_PS = stars[N].airmass; 280 281 catalog[0].measure[Nmeas].Mgal_PS = stars[N].Mgal; 282 catalog[0].measure[Nmeas].FWx = MIN (100*stars[N].fx, NO_MAG); 283 catalog[0].measure[Nmeas].FWy = MIN (100*stars[N].fy, NO_MAG); 284 catalog[0].measure[Nmeas].theta = MIN ((255/360)*stars[N].df, NO_ERR); 285 286 Mcat = PhotCat (&catalog[0].measure[Nmeas]); 287 Mval = (Nsec == -1) ? &catalog[0].average[Nave].M : &catalog[0].secfilt[Nave*Nsecfilt+Nsec].M_PS; 288 if (*Mval == NO_MAG) *Mval = Mcat; 272 /* XXX need to add dX, dY : need to load into stars[N].dX,dY */ 273 /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */ 274 catalog[0].measure[Nmeas].Xccd = stars[N].X; 275 catalog[0].measure[Nmeas].Yccd = stars[N].Y; 276 277 catalog[0].measure[Nmeas].dR = 0.0; 278 catalog[0].measure[Nmeas].dD = 0.0; 279 catalog[0].measure[Nmeas].M = stars[N].M; 280 catalog[0].measure[Nmeas].dM = stars[N].dM; 281 catalog[0].measure[Nmeas].Mcal = stars[N].Mcal; 282 catalog[0].measure[Nmeas].t = stars[N].t; 283 catalog[0].measure[Nmeas].averef = Nave; 284 catalog[0].measure[Nmeas].photcode = stars[N].code; /* photcode */ 285 catalog[0].measure[Nmeas].dophot = stars[N].dophot; 286 catalog[0].measure[Nmeas].flags = 0; 287 catalog[0].measure[Nmeas].dt = stars[N].dt; 288 catalog[0].measure[Nmeas].airmass = stars[N].airmass; 289 290 catalog[0].measure[Nmeas].Mgal = stars[N].Mgal; 291 catalog[0].measure[Nmeas].FWx = MIN (100*stars[N].fx, NO_MAG); 292 catalog[0].measure[Nmeas].FWy = MIN (100*stars[N].fy, NO_MAG); 293 catalog[0].measure[Nmeas].theta = MIN ((0xffff/360.0)*stars[N].df, NO_ERR); 294 295 /* set the average magnitude if not already set and the photcode.equiv is not 0 */ 296 /* in UPDATE mode, this value is not saved; use relphot to recalculate */ 297 if (Nsec > -1) { 298 catalog[0].secfilt[Nave*Nsecfilt+Nsec].M = PhotCat (&catalog[0].measure[Nmeas]); 299 } 289 300 290 301 /* next[Nmeas] should always be -1 in this context (it is always the only -
trunk/Ohana/src/addstar/src/find_matches_refstars.c
r8644 r12332 131 131 /** add measurements for this star **/ 132 132 /** *** dR,dD now in arcsec *** **/ 133 catalog[0].measure[Nmeas].dR _PS= 3600.0*(catalog[0].average[n].R - stars[N][0].R);134 catalog[0].measure[Nmeas].dD _PS= 3600.0*(catalog[0].average[n].D - stars[N][0].D);135 catalog[0].measure[Nmeas].M _PS= MIN (stars[N][0].M, NO_MAG);136 catalog[0].measure[Nmeas].dM _PS= MIN (stars[N][0].dM, NO_ERR);137 catalog[0].measure[Nmeas].Mcal _PS= 0;138 catalog[0].measure[Nmeas].t = (TIMEREF == 0) ? stars[N][0].t : TIMEREF; /** careful : time_t vs e_time **/139 catalog[0].measure[Nmeas].averef = n;140 catalog[0].measure[Nmeas]. source= stars[N][0].code;141 catalog[0].measure[Nmeas].dophot = 0;142 catalog[0].measure[Nmeas].flags = 0;143 catalog[0].measure[Nmeas].dt _PS= 0xffff;144 145 catalog[0].measure[Nmeas].Mgal _PS= NO_MAG;146 catalog[0].measure[Nmeas].airmass _PS= 0;147 catalog[0].measure[Nmeas].FWx = NO_MAG;148 catalog[0].measure[Nmeas].FWy = NO_MAG;149 catalog[0].measure[Nmeas].theta = NO_ERR;133 catalog[0].measure[Nmeas].dR = 3600.0*(catalog[0].average[n].R - stars[N][0].R); 134 catalog[0].measure[Nmeas].dD = 3600.0*(catalog[0].average[n].D - stars[N][0].D); 135 catalog[0].measure[Nmeas].M = MIN (stars[N][0].M, NO_MAG); 136 catalog[0].measure[Nmeas].dM = MIN (stars[N][0].dM, NO_ERR); 137 catalog[0].measure[Nmeas].Mcal = 0; 138 catalog[0].measure[Nmeas].t = (TIMEREF == 0) ? stars[N][0].t : TIMEREF; /** careful : time_t vs e_time **/ 139 catalog[0].measure[Nmeas].averef = n; 140 catalog[0].measure[Nmeas].photcode = stars[N][0].code; 141 catalog[0].measure[Nmeas].dophot = 0; 142 catalog[0].measure[Nmeas].flags = 0; 143 catalog[0].measure[Nmeas].dt = 0xffff; 144 145 catalog[0].measure[Nmeas].Mgal = NO_MAG; 146 catalog[0].measure[Nmeas].airmass = 0; 147 catalog[0].measure[Nmeas].FWx = NO_MAG; 148 catalog[0].measure[Nmeas].FWy = NO_MAG; 149 catalog[0].measure[Nmeas].theta = NO_MAG; 150 150 151 /* XXX need to add dX, dY : need to load into stars[N].dX,dY */ 152 /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */ 153 catalog[0].measure[Nmeas].Xccd = 0.0; 154 catalog[0].measure[Nmeas].Yccd = 0.0; 155 151 156 if (ACCEPT_MOTION) { 152 catalog[0].average[n].uR = stars[N][0].uR;153 catalog[0].average[n].uD = stars[N][0].uD;154 catalog[0].average[n].duR = stars[N][0].duR;155 catalog[0].average[n].duD = stars[N][0].duD;156 catalog[0].average[n].P = stars[N][0].P;157 catalog[0].average[n].dP = stars[N][0].dP;157 catalog[0].average[n].uR = stars[N][0].uR; 158 catalog[0].average[n].uD = stars[N][0].uD; 159 catalog[0].average[n].duR = stars[N][0].duR; 160 catalog[0].average[n].duD = stars[N][0].duD; 161 catalog[0].average[n].P = stars[N][0].P; 162 catalog[0].average[n].dP = stars[N][0].dP; 158 163 } 159 164 … … 207 212 catalog[0].average[Nave].R = stars[N][0].R; 208 213 catalog[0].average[Nave].D = stars[N][0].D; 214 catalog[0].average[Nave].Xp = 0; 215 catalog[0].average[Nave].Nm = 1; 216 catalog[0].average[Nave].Nn = 0; 217 catalog[0].average[Nave].offset = Nmeas; 218 catalog[0].average[Nave].missing = -1; 219 catalog[0].average[Nave].code = 0; 209 220 210 221 if (ACCEPT_MOTION) { … … 228 239 } 229 240 230 catalog[0].average[Nave].M = NO_MAG;231 catalog[0].average[Nave].dM = NO_MAG;232 catalog[0].average[Nave].Nm = 1;233 catalog[0].average[Nave].Nn = 0;234 catalog[0].average[Nave].Xp = NO_MAG;235 catalog[0].average[Nave].Xm = NO_MAG;236 catalog[0].average[Nave].Xg = NO_MAG;237 catalog[0].average[Nave].offset = Nmeas;238 catalog[0].average[Nave].missing = -1;239 catalog[0].average[Nave].code = 0;240 241 241 for (j = 0; j < Nsecfilt; j++) { 242 catalog[0].secfilt[Nave*Nsecfilt+j].M_PS = NO_MAG; 243 catalog[0].secfilt[Nave*Nsecfilt+j].dM_PS = NO_MAG; 244 catalog[0].secfilt[Nave*Nsecfilt+j].Xm = NO_MAG; 245 } 246 247 catalog[0].measure[Nmeas].dR_PS = 0.0; 248 catalog[0].measure[Nmeas].dD_PS = 0.0; 249 catalog[0].measure[Nmeas].M_PS = MIN (stars[N][0].M, NO_MAG); 250 catalog[0].measure[Nmeas].dM_PS = MIN (stars[N][0].dM, NO_ERR); 251 catalog[0].measure[Nmeas].Mcal_PS = 0; 252 catalog[0].measure[Nmeas].t = (stars[N][0].t == 0) ? TIMEREF : stars[N][0].t; /** careful : time_t vs e_time **/ 253 catalog[0].measure[Nmeas].averef = Nave; 254 catalog[0].measure[Nmeas].source = stars[N][0].code; 255 catalog[0].measure[Nmeas].dophot = 0; 256 catalog[0].measure[Nmeas].flags = 0; 257 catalog[0].measure[Nmeas].dt_PS = 0xffff; 258 259 catalog[0].measure[Nmeas].Mgal_PS = NO_MAG; 260 catalog[0].measure[Nmeas].airmass_PS = 0; 261 catalog[0].measure[Nmeas].FWx = NO_MAG; 262 catalog[0].measure[Nmeas].FWy = NO_ERR; 263 catalog[0].measure[Nmeas].theta = NO_ERR; 242 catalog[0].secfilt[Nave*Nsecfilt+j].M = NO_MAG; 243 catalog[0].secfilt[Nave*Nsecfilt+j].dM = NO_MAG; 244 catalog[0].secfilt[Nave*Nsecfilt+j].Xm = NO_MAG; 245 } 246 247 catalog[0].measure[Nmeas].dR = 0.0; 248 catalog[0].measure[Nmeas].dD = 0.0; 249 catalog[0].measure[Nmeas].M = MIN (stars[N][0].M, NO_MAG); 250 catalog[0].measure[Nmeas].dM = MIN (stars[N][0].dM, NO_ERR); 251 catalog[0].measure[Nmeas].Mcal = 0; 252 catalog[0].measure[Nmeas].t = (stars[N][0].t == 0) ? TIMEREF : stars[N][0].t; /** careful : time_t vs e_time **/ 253 catalog[0].measure[Nmeas].averef = Nave; 254 catalog[0].measure[Nmeas].photcode = stars[N][0].code; 255 catalog[0].measure[Nmeas].dophot = 0; 256 catalog[0].measure[Nmeas].flags = 0; 257 catalog[0].measure[Nmeas].dt = 0xffff; 258 259 catalog[0].measure[Nmeas].airmass = 0; 260 catalog[0].measure[Nmeas].Mgal = NO_MAG; 261 catalog[0].measure[Nmeas].FWx = NO_MAG; 262 catalog[0].measure[Nmeas].FWy = NO_MAG; 263 catalog[0].measure[Nmeas].theta = NO_MAG; 264 265 /* XXX need to add dX, dY : need to load into stars[N].dX,dY */ 266 /* XXX need to add stargal, Sky, dSky, qPSF, detID, imageID */ 267 catalog[0].measure[Nmeas].Xccd = 0.0; 268 catalog[0].measure[Nmeas].Yccd = 0.0; 264 269 265 270 stars[N][0].found = Nmeas; -
trunk/Ohana/src/addstar/src/find_proper.c
r3339 r12332 111 111 catalog[0].measure[Nmeas].t = 0; /* a flag: if 0, image is not in database */ 112 112 catalog[0].measure[Nmeas].averef = n; 113 catalog[0].measure[Nmeas]. source = USNO_RED;113 catalog[0].measure[Nmeas].photcode = USNO_RED; 114 114 catalog[0].measure[Nmeas+1].dR = catalog[0].measure[Nmeas].dR; 115 115 catalog[0].measure[Nmeas+1].dD = catalog[0].measure[Nmeas].dD; … … 119 119 catalog[0].measure[Nmeas+1].t = 0; /* a flag: if 0, image is not in database */ 120 120 catalog[0].measure[Nmeas+1].averef = n; 121 catalog[0].measure[Nmeas+1]. source = USNO_BLUE;121 catalog[0].measure[Nmeas+1].photcode = USNO_BLUE; 122 122 /* add flag in average to mark as matched with the USNO catalog */ 123 123 catalog[0].average[n].code |= (ID_PROPER | ID_USNO); -
trunk/Ohana/src/addstar/src/gstars.c
r11584 r12332 7 7 int i, j, Nfile, Nheader, NHEADER, Nimage, NIMAGE; 8 8 int Nskip, Nhead, Ndata, done, status, mode, NinStars; 9 char **file ;9 char **file, *name; 10 10 FILE *f; 11 11 glob_t globList; … … 63 63 64 64 ReadImageHeader (header, &image[i], photcode); 65 66 /* find image rootname */ 67 name = filebasename (file[i]); 68 snprintf (image[i].name, 32, name); 69 free (name); 65 70 66 71 switch (mode) { … … 176 181 } 177 182 } 183 // some old format files did not write EXTTYPE. they have a single table in the first 184 // extension matched to the header in the PHU 185 if (Nimage == 0) { 186 extsize[0] = headers[0][0].size + gfits_matrix_size (headers[0]); 187 extsize[1] = headers[1][0].size + gfits_matrix_size (headers[1]); 188 gfits_scan (headers[1], "EXTNAME", "%s", 1, tmpword); 189 if (!strcmp (tmpword, "SMPFILE")) { 190 extdata[Nimage] = strcreate (tmpword); 191 exttype[Nimage] = strcreate ("SMPDATA"); 192 exthead[Nimage] = strcreate ("PHU"); 193 extnum_head[Nimage] = 0; 194 extnum_data[Nimage] = 1; 195 Nimage = 1; 196 } 197 } 198 if (Nimage == 0) Shutdown ("no object data in file"); 199 178 200 if (VERBOSE) fprintf (stderr, "file %s has %d headers, including %d images\n", file[0], Nheader, Nimage); 201 202 /* find image rootname */ 203 name = filebasename (file[0]); 179 204 180 205 // now run through the images, interpret the headers and read the stars … … 185 210 ReadImageHeader (headers[Nhead], &image[i], 0); 186 211 187 if (!strcmp(exthead[i], "PHU")) continue; 212 // XXX use something to set the chip name? EXTNAME? 213 if (!strcmp(exthead[i], "PHU") && (Nimage == 1)) { 214 snprintf (image[i].name, 32, "%s", name); 215 } else { 216 snprintf (image[i].name, 32, "%s.%s", name, exthead[i]); 217 } 218 219 // this is an error we should not encounter 220 if (!strcmp(extdata[i], "PHU")) Shutdown ("error in data segment: PHU cannot be table"); 188 221 189 222 // advance the pointer to the start of the corresponding table block … … 199 232 stars = MergeStars (stars, Nstars, inStars, image[i].nstar); 200 233 } 234 free (name); 201 235 *Nimages = Nimage; 202 236 *images = image; -
trunk/Ohana/src/addstar/src/load2mass_catalog.c
r7780 r12332 32 32 33 33 // XXX for now, set the average mag data to NULL 34 catalog[0].average[Nave].M = NO_MAG;35 catalog[0].average[Nave].dM = NO_MAG;36 34 catalog[0].average[Nave].Nm = 0; 37 35 catalog[0].average[Nave].Nn = 0; 38 36 catalog[0].average[Nave].Xp = NO_MAG; 39 catalog[0].average[Nave].Xm = NO_MAG;40 catalog[0].average[Nave].Xg = NO_MAG;41 37 catalog[0].average[Nave].offset = Nmeas; 42 38 catalog[0].average[Nave].missing = -1; … … 44 40 45 41 for (j = 0; j < Nsec; j++) { 46 catalog[0].secfilt[Nave*Nsec+j].M _PS= NO_MAG;47 catalog[0].secfilt[Nave*Nsec+j].dM _PS= NO_MAG;42 catalog[0].secfilt[Nave*Nsec+j].M = NO_MAG; 43 catalog[0].secfilt[Nave*Nsec+j].dM = NO_MAG; 48 44 catalog[0].secfilt[Nave*Nsec+j].Xm = NO_MAG; 49 45 } … … 51 47 // we now have the min chisq row. use this to supply the other filter values.... 52 48 for (j = 0; j < 3; j++) { 53 catalog[0].measure[Nmeas].dR _PS= 0.0;54 catalog[0].measure[Nmeas].dD _PS= 0.0;55 catalog[0].measure[Nmeas].M _PS= MIN (stars[i+j].M, NO_MAG);56 catalog[0].measure[Nmeas].dM _PS= MIN (stars[i+j].dM, NO_ERR);57 catalog[0].measure[Nmeas].Mcal _PS= 0;49 catalog[0].measure[Nmeas].dR = 0.0; 50 catalog[0].measure[Nmeas].dD = 0.0; 51 catalog[0].measure[Nmeas].M = MIN (stars[i+j].M, NO_MAG); 52 catalog[0].measure[Nmeas].dM = MIN (stars[i+j].dM, NO_ERR); 53 catalog[0].measure[Nmeas].Mcal = 0; 58 54 catalog[0].measure[Nmeas].t = stars[i+j].t; 59 55 catalog[0].measure[Nmeas].averef = Nave; 60 catalog[0].measure[Nmeas]. source = stars[i+j].code;56 catalog[0].measure[Nmeas].photcode = stars[i+j].code; 61 57 catalog[0].measure[Nmeas].dophot = 0; 62 58 catalog[0].measure[Nmeas].flags = 0; 63 catalog[0].measure[Nmeas].dt _PS= 0xffff;59 catalog[0].measure[Nmeas].dt = 0xffff; 64 60 65 catalog[0].measure[Nmeas].Mgal _PS= NO_MAG;66 catalog[0].measure[Nmeas].airmass _PS= 0;61 catalog[0].measure[Nmeas].Mgal = NO_MAG; 62 catalog[0].measure[Nmeas].airmass = 0; 67 63 catalog[0].measure[Nmeas].FWx = NO_MAG; 68 64 catalog[0].measure[Nmeas].FWy = NO_ERR; -
trunk/Ohana/src/addstar/src/replace_match.c
r6683 r12332 7 7 /* search for entry and replace values M, dM, R, D */ 8 8 for (i = 0; i < average[0].Nm; i++) { 9 if (measure[i]. source != star[0].code) continue;10 measure[i].dR _PS= 3600.0*(average[0].R - star[0].R);11 measure[i].dD _PS= 3600.0*(average[0].D - star[0].D);12 measure[i].M _PS= MIN (star[0].M, NO_MAG);13 measure[i].dM _PS= MIN (star[0].dM, NO_ERR);9 if (measure[i].photcode != star[0].code) continue; 10 measure[i].dR = 3600.0*(average[0].R - star[0].R); 11 measure[i].dD = 3600.0*(average[0].D - star[0].D); 12 measure[i].M = MIN (star[0].M, NO_MAG); 13 measure[i].dM = MIN (star[0].dM, NO_ERR); 14 14 star[0].found = average[0].offset + i; 15 15 return (TRUE); -
trunk/Ohana/src/addstar/src/update_coords.c
r6683 r12332 19 19 continue; 20 20 } 21 R = measure[m].dR _PS;22 D = measure[m].dD _PS;21 R = measure[m].dR; 22 D = measure[m].dD; 23 23 r += R; 24 24 d += D; … … 37 37 m = average[0].offset; /* first measurement of this star */ 38 38 for (i = 0; i < average[0].Nm; i++) { 39 measure[m].dR _PS-= r;40 measure[m].dD _PS-= d;39 measure[m].dR -= r; 40 measure[m].dD -= d; 41 41 m = next[m]; 42 42 }
Note:
See TracChangeset
for help on using the changeset viewer.
