Changeset 6683 for trunk/Ohana/src/addstar
- Timestamp:
- Mar 26, 2006, 10:46:32 AM (21 years ago)
- Location:
- trunk/Ohana/src/addstar
- Files:
-
- 11 edited
-
include/addstar.h (modified) (3 diffs)
-
src/addstar.c (modified) (2 diffs)
-
src/args.c (modified) (2 diffs)
-
src/find_matches.c (modified) (8 diffs)
-
src/find_matches_closest.c (modified) (8 diffs)
-
src/find_matches_refstars.c (modified) (5 diffs)
-
src/gettycho.c (modified) (4 diffs)
-
src/getusnob.c (modified) (5 diffs)
-
src/greference.c (modified) (1 diff)
-
src/replace_match.c (modified) (1 diff)
-
src/update_coords.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/addstar/include/addstar.h
r6675 r6683 69 69 double SNLIMIT; 70 70 int ACCEPT_ASTROM; // accept even bad astrometry solutions (NASTRO == 0) 71 int ACCEPT_MOTION; // accept reference proper motion measurements 71 72 int TEXTMODE; // force input file to be loaded as RAW 72 73 int SUBPIX; // apply a subpix correction … … 125 126 double get_subpix PROTO((double x, double y)); 126 127 Stars *getgsc PROTO((SkyRegion *patch, int *NSTARS)); 127 Stars *gettycho PROTO((SkyRegion *catstats, int photcode, double epoch,int *Nstars));128 Stars *gettycho PROTO((SkyRegion *catstats, int photcode, int *Nstars)); 128 129 Stars *getusno PROTO((SkyRegion *catstats, int photcode, int *Nstars)); 129 Stars *getusnob PROTO((SkyRegion *catstats, int photcode, double epoch,int *Nstars));130 Stars *getusnob PROTO((SkyRegion *catstats, int photcode, int *Nstars)); 130 131 Image *gimages PROTO((FITS_DB *db, Image *image, Coords *mosaic, int *Npimage)); 131 132 Stars *grefcat PROTO((char *Refcat, SkyRegion *catstats, int photcode, int *nstars)); … … 188 189 189 190 /** 190 there is an inconsistency to be resolved: fixed structures (like Image)191 need a fixed bit-length time (e_time), but these functions all use the192 UNIX time_t types, which may be 32 or 64 bits, depending on the machine.193 This can be resolved by using time_t with these functions, but casting194 between e_time and time_t when necessary (ie, cannot return data to an195 e_time pointer from one of these functions)191 there is an inconsistency to be resolved: fixed structures (like Image) 192 need a fixed bit-length time (e_time), but these functions all use the 193 UNIX time_t types, which may be 32 or 64 bits, depending on the machine. 194 This can be resolved by using time_t with these functions, but casting 195 between e_time and time_t when necessary (ie, cannot return data to an 196 e_time pointer from one of these functions) 196 197 **/ 197 198 -
trunk/Ohana/src/addstar/src/addstar.c
r6236 r6683 42 42 43 43 switch (options.mode) { 44 case M_IMAGE:45 stars = gstars (argv[1], &Nstars, options.photcode, &image);46 if ((DUMP != NULL) && !strcmp (DUMP, "rawstars")) dump_rawstars (stars, Nstars);47 RegisterMosaic (MOSAIC);48 skylist = SkyListByImage (sky, -1, &image);49 overlap = gimages (&db, &image, MOSAIC, &Noverlap);50 break;51 case M_REFLIST:52 stars = grefstars (argv[1], options.photcode, &Nstars);53 skylist = SkyListForStars (sky, -1, stars, Nstars);54 break;55 case M_REFCAT:56 skylist = SkyListByPatch (sky, -1, &UserPatch);57 break;44 case M_IMAGE: 45 stars = gstars (argv[1], &Nstars, options.photcode, &image); 46 if ((DUMP != NULL) && !strcmp (DUMP, "rawstars")) dump_rawstars (stars, Nstars); 47 RegisterMosaic (MOSAIC); 48 skylist = SkyListByImage (sky, -1, &image); 49 overlap = gimages (&db, &image, MOSAIC, &Noverlap); 50 break; 51 case M_REFLIST: 52 stars = grefstars (argv[1], options.photcode, &Nstars); 53 skylist = SkyListForStars (sky, -1, stars, Nstars); 54 break; 55 case M_REFCAT: 56 skylist = SkyListByPatch (sky, -1, &UserPatch); 57 break; 58 58 } 59 59 if (options.only_match || options.existing_regions) { … … 97 97 98 98 switch (options.mode) { 99 case M_IMAGE:100 Nsubset = Nstars;101 if (options.closest) {102 find_matches_closest (skylist[0].regions[i], stars, Nstars, &catalog, &image, overlap, Noverlap, MOSAIC, options);103 } else {104 find_matches (skylist[0].regions[i], stars, Nstars, &catalog, &image, overlap, Noverlap, MOSAIC, options);105 }106 break;107 case M_REFCAT:108 stars = grefcat (argv[1], skylist[0].regions[i], options.photcode, &Nstars);109 case M_REFLIST:110 subset = find_subset (skylist[0].regions[i], stars, Nstars, &Nsubset);111 find_matches_refstars (skylist[0].regions[i], subset, Nsubset, &catalog, options);112 if (Nsubset) free (subset);113 break;99 case M_IMAGE: 100 Nsubset = Nstars; 101 if (options.closest) { 102 find_matches_closest (skylist[0].regions[i], stars, Nstars, &catalog, &image, overlap, Noverlap, MOSAIC, options); 103 } else { 104 find_matches (skylist[0].regions[i], stars, Nstars, &catalog, &image, overlap, Noverlap, MOSAIC, options); 105 } 106 break; 107 case M_REFCAT: 108 stars = grefcat (argv[1], skylist[0].regions[i], options.photcode, &Nstars); 109 case M_REFLIST: 110 subset = find_subset (skylist[0].regions[i], stars, Nstars, &Nsubset); 111 find_matches_refstars (skylist[0].regions[i], subset, Nsubset, &catalog, options); 112 if (Nsubset) free (subset); 113 break; 114 114 } 115 115 -
trunk/Ohana/src/addstar/src/args.c
r5585 r6683 190 190 if ((N = get_argument (argc, argv, "-accept"))) { 191 191 ACCEPT_ASTROM = TRUE; 192 remove_argument (N, &argc, argv); 193 } 194 if ((N = get_argument (argc, argv, "-accept-astrom"))) { 195 ACCEPT_ASTROM = TRUE; 196 remove_argument (N, &argc, argv); 197 } 198 /* accept proper-motion data from reference */ 199 ACCEPT_MOTION = FALSE; 200 if ((N = get_argument (argc, argv, "-accept-motion"))) { 201 ACCEPT_MOTION = TRUE; 192 202 remove_argument (N, &argc, argv); 193 203 } … … 258 268 fprintf (stderr, " -skyprobe : specify skyprobe mode\n"); 259 269 fprintf (stderr, " -accept : accept bad astrometry from header\n"); 270 fprintf (stderr, " -accept-astrom : accept bad astrometry from header\n"); 271 fprintf (stderr, " -accept-motion : accept proper-motion data from reference\n"); 260 272 fprintf (stderr, " -force : force read of database with inconsistent info\n"); 261 273 fprintf (stderr, " -v : verbose mode\n"); -
trunk/Ohana/src/addstar/src/find_matches.c
r5443 r6683 71 71 /* build spatial index (RA sort) */ 72 72 for (i = 0; i < Nave; i++) { 73 fRD_to_XY (&X2[i], &Y2[i], catalog[0].average[i].R _PS, catalog[0].average[i].D_PS, &tcoords);73 fRD_to_XY (&X2[i], &Y2[i], catalog[0].average[i].R, catalog[0].average[i].D, &tcoords); 74 74 N2[i] = i; 75 75 catalog[0].found[N2[i]] = -1; … … 138 138 /** add measurements for this star **/ 139 139 /** dR,dD now represent arcsec **/ 140 catalog[0].measure[Nmeas].dR_PS = 3600.0*(catalog[0].average[n].R _PS- stars[N].R);141 catalog[0].measure[Nmeas].dD_PS = 3600.0*(catalog[0].average[n].D _PS- stars[N].D);140 catalog[0].measure[Nmeas].dR_PS = 3600.0*(catalog[0].average[n].R - stars[N].R); 141 catalog[0].measure[Nmeas].dD_PS = 3600.0*(catalog[0].average[n].D - stars[N].D); 142 142 catalog[0].measure[Nmeas].M_PS = MIN (stars[N].M + MTIME, NO_MAG); 143 143 catalog[0].measure[Nmeas].dM_PS = MIN (stars[N].dM, NO_ERR); /* error in input files stored in thousandths of mag */ … … 159 159 /* check for entries in the secfilt lists */ 160 160 Mcat = PhotCat (&catalog[0].measure[Nmeas]); 161 Mval = (Nsec == -1) ? &catalog[0].average[n].M _PS: &catalog[0].secfilt[n*Nsecfilt+Nsec].M_PS;161 Mval = (Nsec == -1) ? &catalog[0].average[n].M : &catalog[0].secfilt[n*Nsecfilt+Nsec].M_PS; 162 162 if (*Mval == NO_MAG) *Mval = Mcat; 163 163 /* in UPDATE mode, this value is not saved; use relphot to recalculate */ … … 213 213 214 214 /* should the catalog star be on this image? project into image coords */ 215 if (!in_image (catalog[0].average[n].R _PS, catalog[0].average[n].D_PS, image)) continue;215 if (!in_image (catalog[0].average[n].R, catalog[0].average[n].D, image)) continue; 216 216 add_miss_link (&catalog[0].average[n], next_miss, Nmiss); 217 217 218 218 /* calculate time of exposure for this coordinate in the image */ 219 RD_to_XY (&X, &Y, catalog[0].average[n].R _PS, catalog[0].average[n].D_PS, &image[0].coords);219 RD_to_XY (&X, &Y, catalog[0].average[n].R, catalog[0].average[n].D, &image[0].coords); 220 220 catalog[0].missing[Nmiss].t = image[0].tzero + 1e-4*Y*image[0].trate; /* trate is in 0.1 msec / row */ 221 221 catalog[0].average[n].Nn ++; … … 245 245 secz = airmass (image[0].secz_PS, stars[N].R, stars[N].D, image[0].sidtime, image[0].latitude); 246 246 247 catalog[0].average[Nave].R _PS= stars[N].R;248 catalog[0].average[Nave].D _PS= stars[N].D;249 catalog[0].average[Nave].M _PS= NO_MAG;250 catalog[0].average[Nave].dM _PS= NO_MAG;247 catalog[0].average[Nave].R = stars[N].R; 248 catalog[0].average[Nave].D = stars[N].D; 249 catalog[0].average[Nave].M = NO_MAG; 250 catalog[0].average[Nave].dM = NO_MAG; 251 251 catalog[0].average[Nave].Nm = 1; 252 252 catalog[0].average[Nave].Nn = 0; … … 257 257 catalog[0].average[Nave].missing = -1; 258 258 catalog[0].average[Nave].code = 0; 259 260 catalog[0].average[Nave].dR = 0; 261 catalog[0].average[Nave].dD = 0; 262 catalog[0].average[Nave].uR = 0; 263 catalog[0].average[Nave].uD = 0; 264 catalog[0].average[Nave].duR = 0; 265 catalog[0].average[Nave].duD = 0; 266 catalog[0].average[Nave].P = 0; 267 catalog[0].average[Nave].dP = 0; 259 268 260 269 for (j = 0; j < Nsecfilt; j++) { … … 283 292 284 293 Mcat = PhotCat (&catalog[0].measure[Nmeas]); 285 Mval = (Nsec == -1) ? &catalog[0].average[Nave].M _PS: &catalog[0].secfilt[Nave*Nsecfilt+Nsec].M_PS;294 Mval = (Nsec == -1) ? &catalog[0].average[Nave].M : &catalog[0].secfilt[Nave*Nsecfilt+Nsec].M_PS; 286 295 if (*Mval == NO_MAG) *Mval = Mcat; 287 296 … … 295 304 } 296 305 if (!FindMosaicForImage (overlap, Noverlap, j)) continue; 297 if (!in_image (catalog[0].average[Nave].R _PS, catalog[0].average[Nave].D_PS, &overlap[j])) continue;306 if (!in_image (catalog[0].average[Nave].R, catalog[0].average[Nave].D, &overlap[j])) continue; 298 307 add_miss_link (&catalog[0].average[Nave], next_miss, Nmiss); 299 308 300 309 /* get time of exposure of this portion of the image */ 301 RD_to_XY (&X, &Y, catalog[0].average[Nave].R _PS, catalog[0].average[Nave].D_PS, &overlap[j].coords);310 RD_to_XY (&X, &Y, catalog[0].average[Nave].R, catalog[0].average[Nave].D, &overlap[j].coords); 302 311 catalog[0].missing[Nmiss].t = overlap[j].tzero + 1e-4*Y*overlap[j].trate; /* rough guess at time */ 303 312 catalog[0].average[Nave].Nn ++; -
trunk/Ohana/src/addstar/src/find_matches_closest.c
r5443 r6683 71 71 /* build spatial index (RA sort) */ 72 72 for (i = 0; i < Nave; i++) { 73 fRD_to_XY (&X2[i], &Y2[i], catalog[0].average[i].R _PS, catalog[0].average[i].D_PS, &tcoords);73 fRD_to_XY (&X2[i], &Y2[i], catalog[0].average[i].R, catalog[0].average[i].D, &tcoords); 74 74 N2[i] = i; 75 75 catalog[0].found[N2[i]] = -1; … … 154 154 /** add measurements for this star **/ 155 155 /** dR,dD now represent arcsec **/ 156 catalog[0].measure[Nmeas].dR_PS = 3600.0*(catalog[0].average[n].R _PS- stars[N].R);157 catalog[0].measure[Nmeas].dD_PS = 3600.0*(catalog[0].average[n].D _PS- stars[N].D);156 catalog[0].measure[Nmeas].dR_PS = 3600.0*(catalog[0].average[n].R - stars[N].R); 157 catalog[0].measure[Nmeas].dD_PS = 3600.0*(catalog[0].average[n].D - stars[N].D); 158 158 catalog[0].measure[Nmeas].M_PS = MIN (stars[N].M + MTIME, NO_MAG); 159 159 catalog[0].measure[Nmeas].dM_PS = MIN (stars[N].dM, NO_ERR); /* error in input files stored in thousandths of mag */ … … 175 175 /* check for entries in the secfilt lists */ 176 176 Mcat = PhotCat (&catalog[0].measure[Nmeas]); 177 Mval = (Nsec == -1) ? &catalog[0].average[n].M _PS: &catalog[0].secfilt[n*Nsecfilt+Nsec].M_PS;177 Mval = (Nsec == -1) ? &catalog[0].average[n].M : &catalog[0].secfilt[n*Nsecfilt+Nsec].M_PS; 178 178 if (*Mval == NO_MAG) *Mval = Mcat; 179 179 /* in UPDATE mode, this value is not saved; use relphot to recalculate */ … … 211 211 212 212 /* should the catalog star be on this image? project into image coords */ 213 if (!in_image (catalog[0].average[n].R _PS, catalog[0].average[n].D_PS, image)) continue;213 if (!in_image (catalog[0].average[n].R, catalog[0].average[n].D, image)) continue; 214 214 add_miss_link (&catalog[0].average[n], next_miss, Nmiss); 215 215 216 216 /* calculate time of exposure for this coordinate in the image */ 217 RD_to_XY (&X, &Y, catalog[0].average[n].R _PS, catalog[0].average[n].D_PS, &image[0].coords);217 RD_to_XY (&X, &Y, catalog[0].average[n].R, catalog[0].average[n].D, &image[0].coords); 218 218 catalog[0].missing[Nmiss].t = image[0].tzero + 1e-4*Y*image[0].trate; /* trate is in 0.1 msec / row */ 219 219 catalog[0].average[n].Nn ++; … … 243 243 secz = airmass (image[0].secz_PS, stars[N].R, stars[N].D, image[0].sidtime, image[0].latitude); 244 244 245 catalog[0].average[Nave].R _PS= stars[N].R;246 catalog[0].average[Nave].D _PS= stars[N].D;247 catalog[0].average[Nave].M _PS= NO_MAG;248 catalog[0].average[Nave].dM _PS= NO_MAG;245 catalog[0].average[Nave].R = stars[N].R; 246 catalog[0].average[Nave].D = stars[N].D; 247 catalog[0].average[Nave].M = NO_MAG; 248 catalog[0].average[Nave].dM = NO_MAG; 249 249 catalog[0].average[Nave].Nm = 1; 250 250 catalog[0].average[Nave].Nn = 0; … … 255 255 catalog[0].average[Nave].missing = -1; 256 256 catalog[0].average[Nave].code = 0; 257 258 catalog[0].average[Nave].dR = 0; 259 catalog[0].average[Nave].dD = 0; 260 catalog[0].average[Nave].uR = 0; 261 catalog[0].average[Nave].uD = 0; 262 catalog[0].average[Nave].duR = 0; 263 catalog[0].average[Nave].duD = 0; 264 catalog[0].average[Nave].P = 0; 265 catalog[0].average[Nave].dP = 0; 257 266 258 267 for (j = 0; j < Nsecfilt; j++) { … … 281 290 282 291 Mcat = PhotCat (&catalog[0].measure[Nmeas]); 283 Mval = (Nsec == -1) ? &catalog[0].average[Nave].M _PS: &catalog[0].secfilt[Nave*Nsecfilt+Nsec].M_PS;292 Mval = (Nsec == -1) ? &catalog[0].average[Nave].M : &catalog[0].secfilt[Nave*Nsecfilt+Nsec].M_PS; 284 293 if (*Mval == NO_MAG) *Mval = Mcat; 285 294 … … 293 302 } 294 303 if (!FindMosaicForImage (overlap, Noverlap, j)) continue; 295 if (!in_image (catalog[0].average[Nave].R _PS, catalog[0].average[Nave].D_PS, &overlap[j])) continue;304 if (!in_image (catalog[0].average[Nave].R, catalog[0].average[Nave].D, &overlap[j])) continue; 296 305 add_miss_link (&catalog[0].average[Nave], next_miss, Nmiss); 297 306 298 307 /* get time of exposure of this portion of the image */ 299 RD_to_XY (&X, &Y, catalog[0].average[Nave].R _PS, catalog[0].average[Nave].D_PS, &overlap[j].coords);308 RD_to_XY (&X, &Y, catalog[0].average[Nave].R, catalog[0].average[Nave].D, &overlap[j].coords); 300 309 catalog[0].missing[Nmiss].t = overlap[j].tzero + 1e-4*Y*overlap[j].trate; /* rough guess at time */ 301 310 catalog[0].average[Nave].Nn ++; -
trunk/Ohana/src/addstar/src/find_matches_refstars.c
r5443 r6683 62 62 63 63 for (i = 0; i < Nave; i++) { 64 fRD_to_XY (&X2[i], &Y2[i], catalog[0].average[i].R _PS, catalog[0].average[i].D_PS, &tcoords);64 fRD_to_XY (&X2[i], &Y2[i], catalog[0].average[i].R, catalog[0].average[i].D, &tcoords); 65 65 N2[i] = i; 66 66 catalog[0].found[N2[i]] = -1; … … 128 128 /** add measurements for this star **/ 129 129 /** *** dR,dD now in arcsec *** **/ 130 catalog[0].measure[Nmeas].dR_PS = 3600.0*(catalog[0].average[n].R _PS- stars[N][0].R);131 catalog[0].measure[Nmeas].dD_PS = 3600.0*(catalog[0].average[n].D _PS- stars[N][0].D);130 catalog[0].measure[Nmeas].dR_PS = 3600.0*(catalog[0].average[n].R - stars[N][0].R); 131 catalog[0].measure[Nmeas].dD_PS = 3600.0*(catalog[0].average[n].D - stars[N][0].D); 132 132 catalog[0].measure[Nmeas].M_PS = MIN (stars[N][0].M, NO_MAG); 133 133 catalog[0].measure[Nmeas].dM_PS = MIN (stars[N][0].dM, NO_ERR); 134 134 catalog[0].measure[Nmeas].Mcal_PS = 0; 135 catalog[0].measure[Nmeas].t = (TIMEREF == 0) ? stars[N][0].t : TIMEREF; /** careful : time_t vs e_time **/136 catalog[0].measure[Nmeas].averef = n;137 catalog[0].measure[Nmeas].source = stars[N][0].code;138 catalog[0].measure[Nmeas].dophot = 0;139 catalog[0].measure[Nmeas].flags = 0;140 catalog[0].measure[Nmeas].dt_PS = 0xffff;135 catalog[0].measure[Nmeas].t = (TIMEREF == 0) ? stars[N][0].t : TIMEREF; /** careful : time_t vs e_time **/ 136 catalog[0].measure[Nmeas].averef = n; 137 catalog[0].measure[Nmeas].source = stars[N][0].code; 138 catalog[0].measure[Nmeas].dophot = 0; 139 catalog[0].measure[Nmeas].flags = 0; 140 catalog[0].measure[Nmeas].dt_PS = 0xffff; 141 141 142 142 catalog[0].measure[Nmeas].Mgal_PS = NO_MAG; … … 146 146 catalog[0].measure[Nmeas].theta = NO_ERR; 147 147 148 if (ACCEPT_MOTION) { 149 catalog[0].average[n].uR = stars[N][0].uR; 150 catalog[0].average[n].uD = stars[N][0].uD; 151 catalog[0].average[n].duR = stars[N][0].duR; 152 catalog[0].average[n].duD = stars[N][0].duD; 153 catalog[0].average[n].P = stars[N][0].P; 154 catalog[0].average[n].dP = stars[N][0].dP; 155 } 156 148 157 /** don't update average / secfilt values for REF photcodes **/ 149 158 … … 193 202 if (stars[N][0].found >= 0) continue; 194 203 195 catalog[0].average[Nave].R_PS = stars[N][0].R; 196 catalog[0].average[Nave].D_PS = stars[N][0].D; 197 catalog[0].average[Nave].M_PS = NO_MAG; 198 catalog[0].average[Nave].dM_PS = NO_MAG; 204 catalog[0].average[Nave].R = stars[N][0].R; 205 catalog[0].average[Nave].D = stars[N][0].D; 206 207 if (ACCEPT_MOTION) { 208 catalog[0].average[Nave].dR = stars[N][0].dR; 209 catalog[0].average[Nave].dD = stars[N][0].dD; 210 catalog[0].average[Nave].uR = stars[N][0].uR; 211 catalog[0].average[Nave].uD = stars[N][0].uD; 212 catalog[0].average[Nave].duR = stars[N][0].duR; 213 catalog[0].average[Nave].duD = stars[N][0].duD; 214 catalog[0].average[Nave].P = stars[N][0].P; 215 catalog[0].average[Nave].dP = stars[N][0].dP; 216 } else { 217 catalog[0].average[Nave].dR = 0; 218 catalog[0].average[Nave].dD = 0; 219 catalog[0].average[Nave].uR = 0; 220 catalog[0].average[Nave].uD = 0; 221 catalog[0].average[Nave].duR = 0; 222 catalog[0].average[Nave].duD = 0; 223 catalog[0].average[Nave].P = 0; 224 catalog[0].average[Nave].dP = 0; 225 } 226 227 catalog[0].average[Nave].M = NO_MAG; 228 catalog[0].average[Nave].dM = NO_MAG; 199 229 catalog[0].average[Nave].Nm = 1; 200 230 catalog[0].average[Nave].Nn = 0; … … 217 247 catalog[0].measure[Nmeas].dM_PS = MIN (stars[N][0].dM, NO_ERR); 218 248 catalog[0].measure[Nmeas].Mcal_PS = 0; 219 catalog[0].measure[Nmeas].t = (stars[N][0].t == 0) ? TIMEREF : stars[N][0].t; /** careful : time_t vs e_time **/220 catalog[0].measure[Nmeas].averef = Nave;221 catalog[0].measure[Nmeas].source = stars[N][0].code;222 catalog[0].measure[Nmeas].dophot = 0;223 catalog[0].measure[Nmeas].flags = 0;249 catalog[0].measure[Nmeas].t = (stars[N][0].t == 0) ? TIMEREF : stars[N][0].t; /** careful : time_t vs e_time **/ 250 catalog[0].measure[Nmeas].averef = Nave; 251 catalog[0].measure[Nmeas].source = stars[N][0].code; 252 catalog[0].measure[Nmeas].dophot = 0; 253 catalog[0].measure[Nmeas].flags = 0; 224 254 catalog[0].measure[Nmeas].dt_PS = 0xffff; 225 255 -
trunk/Ohana/src/addstar/src/gettycho.c
r6675 r6683 6 6 static SkyTable *tychoTable = NULL; 7 7 8 Stars *gettycho (SkyRegion *catstats, int photcode, double epoch,int *nstars) {8 Stars *gettycho (SkyRegion *catstats, int photcode, int *nstars) { 9 9 10 10 int i, j, nitems; … … 14 14 int NTYCHO, Ntycho; 15 15 int firstRow, firstByte; 16 Stars *stars;17 16 short int TYCHO_B, TYCHO_V; 17 e_time TychoEpoch; 18 18 SkyRegion *region; 19 19 SkyList *skylist; 20 Stars *stars; 20 21 21 22 /* require photcode */ … … 47 48 48 49 ALLOCATE (buffer, char, NITEM*NBYTE); 50 51 TychoEpoch = date_to_sec ("1991/04/02,07:30:00"); 49 52 50 53 for (i = 0; i < skylist[0].Nregions; i++) { … … 80 83 if (stars[Ntycho].D > UserPatch.Dmax) continue; 81 84 82 stars[Ntycho].t = 0; 85 stars[Ntycho].dR = 1000 * atof (&line[57]); 86 stars[Ntycho].dD = 1000 * atof (&line[64]); 87 88 /* XXX : we need to apply uR,uD to R,D to advance to 2000.0 */ 89 stars[Ntycho].uR = atof (&line[41]); 90 stars[Ntycho].uD = atof (&line[49]); 91 92 stars[Ntycho].duR = atof (&line[69]); 93 stars[Ntycho].duD = atof (&line[75]); 94 95 stars[Ntycho].P = 0; 96 stars[Ntycho].dP = 0; 97 98 /* Tycho uses J2000 equinox and 1991.25 epoch for coordinates */ 99 /* the magnitudes have no temporal information */ 100 stars[Ntycho].t = TychoEpoch; 83 101 stars[Ntycho].found = -1; 84 102 -
trunk/Ohana/src/addstar/src/getusnob.c
r6675 r6683 4 4 # define NELEM 20 5 5 6 Stars *getusnob (SkyRegion *catstats, int photcode, double epoch,int *nstars) {6 Stars *getusnob (SkyRegion *catstats, int photcode, int *nstars) { 7 7 8 8 long int offset; … … 13 13 FILE *f; 14 14 double dec; 15 double uR, uD;16 15 float m1, m2, mag; 17 16 int iDEC0, iDEC1, iRA0, iRA1; 18 17 int spd, spd_start, spd_end; 19 18 int NUSNO, Nusno, Nstars; 19 short int USNO_RED, USNO_BLUE; 20 e_time USNOepoch; 20 21 Stars *stars; 21 short int USNO_RED, USNO_BLUE;22 22 23 23 /* require photcode */ … … 110 110 } 111 111 112 USNOepoch = date_to_sec ("2000/01/01,00:00:00"); 113 112 114 buf = buffer; 113 115 /* print out data from slice within RA and DEC range */ … … 118 120 if (buf[1] > iDEC1) continue; 119 121 122 /* USNO coords are reported for J2000 / epoch 2000.0 */ 120 123 /* extract the basic stellar data */ 121 124 bzero (&stars[Nusno], sizeof(Stars)); 122 stars[Nusno].R = buf[0]/360000.0; 123 stars[Nusno].D = buf[1]/360000.0 - 90.0; 124 stars[Nusno].dM = NO_ERR; 125 stars[Nusno].t = 0; 125 stars[Nusno].R = buf[0]/360000.0; 126 stars[Nusno].D = buf[1]/360000.0 - 90.0; 127 128 /* XXX uR cos(D) or just uR ??? */ 129 stars[Nusno].uR = 2.0 * ((buf[2] % 10000) - 5000); 130 stars[Nusno].uD = 2.0 * ((buf[2]/10000 % 10000) - 5000); 131 132 stars[Nusno].duR = (buf[3] % 1000); 133 stars[Nusno].duD = (buf[3]/1000 % 1000); 134 135 stars[Nusno].dR = 0.001 * (buf[4] % 1000); 136 stars[Nusno].dD = 0.001 * (buf[4]/1000 % 1000); 137 138 stars[Nusno].P = 0; 139 stars[Nusno].dP = 0; 140 141 /* USNO magnitude errors are reported as a fixed 0.3 mag */ 142 stars[Nusno].dM = 0.3; 126 143 stars[Nusno].found = -1; 127 144 145 /* USNO-B uses J2000 equinox and 2000.0 epoch for coordinates */ 146 /* the magnitudes have no temporal information */ 147 stars[Nusno].t = USNOepoch; 148 128 149 /* one pass of addstar does either r or b */ 129 if (photcode == USNO_RED) { 130 m1 = fabs(0.01 * (buf[7] % 10000)); /* 1st red mag */ 150 if (photcode == USNO_BLUE) { 151 m1 = fabs(0.01 * (buf[5] % 10000)); /* 1st blue mag */ 152 m2 = fabs(0.01 * (buf[7] % 10000)); /* 1st blue mag */ 153 stars[Nusno].code = USNO_BLUE; 154 } else { 155 m1 = fabs(0.01 * (buf[6] % 10000)); /* 1st red mag */ 131 156 m2 = fabs(0.01 * (buf[8] % 10000)); /* 2nd red mag */ 132 157 stars[Nusno].code = USNO_RED; 133 } else {134 m1 = fabs(0.01 * (buf[5] % 10000)); /* 1st blue mag */135 m2 = fabs(0.01 * (buf[6] % 10000)); /* 1st blue mag */136 stars[Nusno].code = USNO_BLUE;137 158 } 138 159 … … 143 164 mag = (m1) ? m1 : m2; 144 165 } 166 stars[Nusno].M = (mag == 0.0) ? 32.0 : mag; 145 167 146 uR = (buf[2] % 10000);147 uR = (uR - 5000.0) * 0.002 / 3600.0;148 uD = ((buf[2] / 10000) % 10000);149 uD = (uD - 5000.0) * 0.002 / 3600.0;150 151 /* need to carry the proper motions */152 stars[Nusno].M = (mag == 0.0) ? 32.0 : mag;153 stars[Nusno].R += uR*(epoch - 2000.0);154 stars[Nusno].D += uD*(epoch - 2000.0);155 168 Nusno ++; 156 169 CHECK_REALLOCATE (stars, Stars, NUSNO, Nusno, 5000); -
trunk/Ohana/src/addstar/src/greference.c
r6675 r6683 21 21 /* get stars from the USNO B catalog for the given region */ 22 22 if (!strcasecmp (Refcat, "USNOB")) { 23 stars = getusnob (region, photcode, 2000.0,&Nstars);23 stars = getusnob (region, photcode, &Nstars); 24 24 } 25 25 26 26 /* get stars from the USNO B catalog for the given region */ 27 27 if (!strcasecmp (Refcat, "TYCHO")) { 28 stars = gettycho (region, photcode, 2000.0,&Nstars);28 stars = gettycho (region, photcode, &Nstars); 29 29 } 30 30 -
trunk/Ohana/src/addstar/src/replace_match.c
r5328 r6683 8 8 for (i = 0; i < average[0].Nm; i++) { 9 9 if (measure[i].source != star[0].code) continue; 10 measure[i].dR_PS = 3600.0*(average[0].R _PS- star[0].R);11 measure[i].dD_PS = 3600.0*(average[0].D _PS- star[0].D);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 12 measure[i].M_PS = MIN (star[0].M, NO_MAG); 13 13 measure[i].dM_PS = MIN (star[0].dM, NO_ERR); -
trunk/Ohana/src/addstar/src/update_coords.c
r5239 r6683 33 33 r = r / Npt; /* these are corrections in 1/100 arcsec to RA and DEC */ 34 34 d = d / Npt; 35 average[0].R _PS-= r / 3600.0;36 average[0].D _PS-= d / 3600.0;35 average[0].R -= r / 3600.0; 36 average[0].D -= d / 3600.0; 37 37 m = average[0].offset; /* first measurement of this star */ 38 38 for (i = 0; i < average[0].Nm; i++) {
Note:
See TracChangeset
for help on using the changeset viewer.
