Changeset 42146
- Timestamp:
- Mar 28, 2022, 3:25:41 PM (4 years ago)
- Location:
- trunk/Ohana/src/addstar
- Files:
-
- 6 edited
-
include/WISE.h (modified) (3 diffs)
-
src/args_loadwise.c (modified) (5 diffs)
-
src/loadwise.c (modified) (1 diff)
-
src/loadwise_ops.c (modified) (2 diffs)
-
src/loadwise_rawdata.c (modified) (7 diffs)
-
src/loadwise_star_full.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/addstar/include/WISE.h
r38986 r42146 21 21 short WISE_W1, WISE_W2, WISE_W3, WISE_W4; 22 22 23 enum {MODE_NONE, MODE_ ALLWISE, MODE_ALLSKY, MODE_PRELIM};23 enum {MODE_NONE, MODE_CATWISE, MODE_ALLWISE, MODE_ALLSKY, MODE_PRELIM}; 24 24 int MODE; 25 25 26 AddstarClientOptions args_loadwise (int argc, char **argv, AddstarClientOptions options);26 AddstarClientOptions args_loadwise (int *argc, char **argv, AddstarClientOptions options); 27 27 28 28 int loadwise_rawdata (SkyList *skytable, char *filename, AddstarClientOptions options); … … 38 38 int loadwise_star_allsky (Measure *measure, char *line, int Nmax); 39 39 int loadwise_star_allwise (Measure *measure, char *line, int Nmax); 40 40 int loadwise_star_catwise (Measure *measure, char *line, int Nmax, double Rs, double Ds); 41 41 42 42 char *nextWISEfield (char *line); … … 49 49 int setWISE_dup_flag (Measure *measure, char qual); 50 50 int setWISE_use_flag (Measure *measure, char qual); 51 int setWISE_sat_flag (Measure *measure, char *ptr); 52 53 int setCatWISE_sat_flag (Measure *measure, char *ptr, int start, int end); 54 int setCatWISE_blend_flag (Measure *measure, char *line); 51 55 52 56 char *skipNbounds (char *line, char bound, int Nbound, int Nbyte); 57 58 char *getLineSegment (char *line, int start, int end); 59 double getDoubleRAW (char *line, int start, int end); 60 double getDoubleNAN (char *line, int start, int end); -
trunk/Ohana/src/addstar/src/args_loadwise.c
r38062 r42146 3 3 static void help (void); 4 4 5 AddstarClientOptions args_loadwise (int argc, char **argv, AddstarClientOptions options) {5 AddstarClientOptions args_loadwise (int *argc, char **argv, AddstarClientOptions options) { 6 6 7 7 int N; 8 8 9 9 /* check for help request */ 10 if (get_argument ( argc, argv, "-help") ||11 get_argument ( argc, argv, "-h")) {10 if (get_argument (*argc, argv, "-help") || 11 get_argument (*argc, argv, "-h")) { 12 12 help (); 13 13 } … … 29 29 /* only add to existing regions */ 30 30 options.existing_regions = FALSE; 31 if ((N = get_argument ( argc, argv, "-existing-regions"))) {31 if ((N = get_argument (*argc, argv, "-existing-regions"))) { 32 32 options.existing_regions = TRUE; 33 remove_argument (N, &argc, argv);33 remove_argument (N, argc, argv); 34 34 } 35 35 /* only add to existing objects */ 36 36 options.only_match = FALSE; 37 if ((N = get_argument ( argc, argv, "-only-match"))) {37 if ((N = get_argument (*argc, argv, "-only-match"))) { 38 38 options.only_match = TRUE; 39 remove_argument (N, &argc, argv);39 remove_argument (N, argc, argv); 40 40 } 41 41 /* replace measurement, don't duplicate (ref/cat only) */ 42 42 options.replace = FALSE; 43 if ((N = get_argument ( argc, argv, "-replace"))) {43 if ((N = get_argument (*argc, argv, "-replace"))) { 44 44 options.replace = TRUE; 45 remove_argument (N, &argc, argv);45 remove_argument (N, argc, argv); 46 46 } 47 47 48 48 /* extra error messages */ 49 49 VERBOSE = FALSE; 50 if ((N = get_argument ( argc, argv, "-v"))) {50 if ((N = get_argument (*argc, argv, "-v"))) { 51 51 VERBOSE = TRUE; 52 remove_argument (N, &argc, argv);52 remove_argument (N, argc, argv); 53 53 } 54 54 55 55 /* load the prelim data dump */ 56 MODE = MODE_ ALLWISE;57 if ((N = get_argument ( argc, argv, "-mode"))) {58 MODE = MODE_NONE;59 remove_argument (N, &argc, argv);56 MODE = MODE_NONE; 57 if ((N = get_argument (*argc, argv, "-mode"))) { 58 remove_argument (N, argc, argv); 59 if (!strcasecmp(argv[N], "catwise")) MODE = MODE_CATWISE; 60 60 if (!strcasecmp(argv[N], "allwise")) MODE = MODE_ALLWISE; 61 61 if (!strcasecmp(argv[N], "allsky")) MODE = MODE_ALLSKY; … … 65 65 exit (2); 66 66 } 67 remove_argument (N, &argc, argv);67 remove_argument (N, argc, argv); 68 68 } 69 69 … … 85 85 DUMP = NULL; 86 86 87 if ( argc < 2) {87 if (*argc < 2) { 88 88 fprintf (stderr, "USAGE: loadwise [options] (wisefile) [..more files]\n"); 89 89 exit (2); … … 94 94 static void help () { 95 95 96 fprintf (stderr, "USAGE: loadwise [ options] (wisefile) [..more files]\n");96 fprintf (stderr, "USAGE: loadwise [-mode MODE] [options] (wisefile) [..more files]\n"); 97 97 fprintf (stderr, " add data from WISE catalog to DVO\n\n"); 98 99 fprintf (stderr, " MODE may be : catwise, allwise, allsky, prelim\n"); 98 100 99 101 fprintf (stderr, " optional flags:\n"); -
trunk/Ohana/src/addstar/src/loadwise.c
r38986 r42146 22 22 SetSignals (); 23 23 options = ConfigInit (&argc, argv); 24 options = args_loadwise ( argc, argv, options);24 options = args_loadwise (&argc, argv, options); 25 25 26 26 // load the full sky description table: -
trunk/Ohana/src/addstar/src/loadwise_ops.c
r33653 r42146 17 17 char *ptr = line; 18 18 19 ptr = skipNbounds (ptr, '|', 1, Nmax); 20 *R = strtod (ptr, NULL); 21 ptr = skipNbounds (ptr, '|', 1, Nmax); 22 *D = strtod (ptr, NULL); 19 if (MODE == MODE_CATWISE) { 20 // copy the string ranges and then use strtod (not necessary?) 21 *R = strtod (&ptr[47], NULL); // safe to use the strtod on the line because it is white-space separated 22 *D = strtod (&ptr[59], NULL); 23 } else { 24 ptr = skipNbounds (ptr, '|', 1, Nmax); 25 *R = strtod (ptr, NULL); 26 ptr = skipNbounds (ptr, '|', 1, Nmax); 27 *D = strtod (ptr, NULL); 28 } 23 29 if (*D > 90) Shutdown ("weird DEC value: something is wrong"); 24 30 … … 91 97 } 92 98 99 /* return a pointer to the first char after Nbound of value bound */ 100 char *getLineSegment (char *line, int start, int end) { 101 102 // do NOT damage the buffer by seting the end byte to NULL 103 if (0) { line[end] = 0; } 104 char *ptr = &line[start]; 105 return (ptr); 106 } 107 108 double getDoubleRAW (char *line, int start, int end) { 109 char *ptr = getLineSegment(line, start, end); 110 double value = strtod (ptr, NULL); 111 return value; 112 } 113 114 double getDoubleNAN (char *line, int start, int end) { 115 char *endpoint = NULL; 116 char *ptr = getLineSegment(line, start, end); 117 double value = strtod (ptr, &endpoint); 118 if (endpoint == ptr) { value = NAN; } 119 return value; 120 } 121 93 122 /* watch for patches which cross 0,360 boundary */ 94 123 SkyTable *loadWISE_acc (char *path, char *accel) { -
trunk/Ohana/src/addstar/src/loadwise_rawdata.c
r38986 r42146 28 28 getWISE_setup (); 29 29 30 int NMeasPerStar = (MODE == MODE_CATWISE) ? 2 : 4; 31 30 32 ALLOCATE (buffer, char, NBYTE); 31 33 … … 34 36 if (f == NULL) Shutdown ("can't read WISE data file: %s", filename); 35 37 // test if this is a raw datafile or gzipped... 38 39 int skipHeader = TRUE; 36 40 37 41 Nextra = 0; // number excess bytes from lsat partial row … … 59 63 Dmax = -90.0; 60 64 65 // XXX buffer is being reread instead of continuing. 66 61 67 // scan through entire buffer for star coords 62 68 while (1) { 69 70 if (skipHeader && (MODE == MODE_CATWISE)) { 71 if (*p == '\\') goto skip_header; 72 if (*p == '|') goto skip_header; 73 } 74 if (skipHeader && (MODE == MODE_CATWISE)) { 75 // once we get past the header, do not skip any more 76 skipHeader = FALSE; 77 } 78 63 79 getWISE_coords (p, &tstars[Ntstars].R, &tstars[Ntstars].D, Nbyte - offset); 64 80 tstars[Ntstars].offset = offset; // offset within scan … … 74 90 Ntstars ++; 75 91 CHECK_REALLOCATE (tstars, WISE_Stars, NTSTARS, Ntstars, 10000); 92 93 skip_header: 76 94 77 95 /* start of the next line */ … … 143 161 if (tstars[j].D > UserPatch.Dmax) continue; 144 162 163 // offset is bytes to start of line from start of buffer 145 164 offset = tstars[j].offset; 146 165 147 166 dvo_average_init (&newcat->average[Nave]); 148 for (k = 0; k < 4; k++) {167 for (k = 0; k < NMeasPerStar; k++) { 149 168 dvo_measure_init (&newcat->measure[Nmeas+k]); 150 169 } … … 163 182 loadwise_star_allwise (&newcat->measure[Nmeas], &buffer[offset], Nbyte - offset); 164 183 break; 184 case MODE_CATWISE: 185 loadwise_star_catwise (&newcat->measure[Nmeas], &buffer[offset], Nbyte - offset, tstars[j].R, tstars[j].D); 186 break; 165 187 default: 166 188 break; … … 169 191 tstars[j].flag = TRUE; 170 192 171 newcat->average[Nave].Nmeasure = 4;193 newcat->average[Nave].Nmeasure = NMeasPerStar; 172 194 newcat->average[Nave].measureOffset = Nmeas; 173 195 174 196 Nave ++; 175 Nmeas += 4;197 Nmeas += NMeasPerStar; 176 198 177 199 CHECK_REALLOCATE (newcat->average, Average, NAVE, Nave, 1000); -
trunk/Ohana/src/addstar/src/loadwise_star_full.c
r38986 r42146 2 2 # include "WISE.h" 3 3 4 int setWISE_ph_qual (Measure *measure, char qual);5 4 int setWISE_var_flag_allsky (Measure *measure, char qual); 6 5 int setWISE_ext_flag_allsky (Measure *measure, char ptr); 7 6 int setWISE_var_flag_prelim (Measure *measure, char qual); 8 7 int setWISE_ext_flag_prelim (Measure *measure, char ptr); 9 int setWISE_cc_flag (Measure *measure, char qual);10 int setWISE_sat_flag (Measure *measure, char *ptr);11 8 int setWISE_blend_flag (Measure *measure, char *ptr); 9 10 // fill in the data for a CatWISE double star. takes a pointer to the start of the line the 11 // RA and DEC have already been set 12 int loadwise_star_catwise (Measure *measure, char *line, int Nmax, double Rs, double Ds) { 13 14 int i; 15 char *ptr; 16 17 if (line == NULL) Shutdown ("format error in WISE"); 18 19 ptr = line; 20 21 /*** CATWISE has fixed width data, not pipe-separated, etc ***/ 22 23 // https://irsa.ipac.caltech.edu/data/WISE/CatWISE/gator_docs/catwise_colDescriptions.html 24 25 // We are supplied a pointer (line) to the start of a full line of data. The CatWISE 26 // format uses fixed-width fields with white-space separators. The ra & dec values have 27 // already been extracted. 28 29 measure[0].R = Rs; 30 measure[0].D = Ds; 31 measure[1].R = Rs; 32 measure[1].D = Ds; 33 34 // I can assign dRA and dDEC to dX and dY if I can consistently set posangle and pltscale 35 measure[0].dXccd = ToShortPixels(getDoubleRAW (line, 71, 79) + 0.005); // sig_ra -- add 5/1000 to avoid truncation 36 measure[0].dYccd = ToShortPixels(getDoubleRAW (line, 80, 88) + 0.005); // sig_dec 37 measure[0].posangle = 0.0; 38 measure[0].pltscale = 1.0; 39 40 // we only know a single set of values for both bands 41 measure[1].dXccd = measure[0].dXccd; 42 measure[1].dYccd = measure[0].dYccd; 43 measure[1].posangle = measure[0].posangle; 44 measure[1].pltscale = measure[0].pltscale; 45 46 measure[0].Xccd = getDoubleRAW (line, 98, 106); // wx 47 measure[0].Yccd = getDoubleRAW (line, 107, 115); // wy 48 measure[1].Xccd = measure[0].Xccd; 49 measure[1].Yccd = measure[0].Yccd; 50 51 // W1 52 measure[0].M = getDoubleNAN (line, 248, 254); // w1mpro 53 measure[0].dM = getDoubleNAN (line, 255, 264); // w1sigmpro 54 measure[0].psfChisq = getDoubleRAW (line, 265, 275); // w1rchi2 55 measure[0].psfQF = measure[0].psfChisq; 56 measure[0].photFlags = 0; 57 58 // W2 59 measure[1].M = getDoubleNAN (line, 276, 282); // w2mpro 60 measure[1].dM = getDoubleNAN (line, 283, 292); // w2sigmpro 61 measure[1].psfChisq = getDoubleRAW (line, 293, 303); // w2rchi2 62 measure[1].psfQF = measure[1].psfChisq; 63 measure[1].photFlags = 0; 64 65 setCatWISE_blend_flag (measure, line); // w1sat 66 67 setCatWISE_sat_flag (&measure[0], line, 323, 330); // w1sat 68 setCatWISE_sat_flag (&measure[1], line, 331, 338); // w2sat 69 70 // cc_flags? 1642 - 1657 71 // setWISE_cc_flag (&measure[0], ptr[i]); // cc_flags 72 73 // set ext flags for all 4 measures 74 // setCatWISE_ext_flag_allsky (measure, ptr[0]); // ext_flg 75 76 // setWISE_var_flag_allsky (&measure[0], ptr[i]); // var_flg 77 78 // setWISE_ph_qual (&measure[i], ptr[i]); // ph_qual 79 80 double mjdmean = getDoubleRAW (line, 1126, 1138); // MeanObsMJD 81 82 // the release is based on data taken in the period 14 January 2010 to 29 April 2010 83 if (mjdmean == 0.0) { 84 measure[0].t = 0; 85 } else { 86 measure[0].t = ohana_mjd_to_sec (mjdmean); 87 } 88 measure[1].t = measure[0].t; 89 90 measure[0].photcode = WISE_W1; 91 measure[0].detID = 0; 92 measure[0].imageID = 0; 93 94 measure[1].photcode = WISE_W2; 95 measure[1].detID = 0; 96 measure[1].imageID = 0; 97 98 return TRUE; 99 } 12 100 13 101 // fill in the data for a WISE quad star. takes a pointer to the start of the line the … … 458 546 } 459 547 548 int setCatWISE_blend_flag (Measure *measure, char *line) { 549 550 // na 551 int nb = atoi(getLineSegment(line, 315, 318)); // nb 552 int na = atoi(getLineSegment(line, 319, 322)); // na 553 554 if (nb != 1) { 555 if (na == 0) { 556 measure[0].photFlags |= FLAG_BLEND_ACTIVE; 557 measure[1].photFlags |= FLAG_BLEND_ACTIVE; 558 } else { 559 measure[0].photFlags |= FLAG_BLEND_PASSIVE; 560 measure[1].photFlags |= FLAG_BLEND_PASSIVE; 561 } 562 } 563 return TRUE; 564 } 565 460 566 int setWISE_sat_flag (Measure *measure, char *ptr) { 461 567 … … 465 571 } 466 572 return TRUE; 573 } 574 575 int setCatWISE_sat_flag (Measure *measure, char *ptr, int start, int end) { 576 577 float sat = getDoubleRAW (ptr, start, end); 578 if (sat > 0.0) { 579 measure[0].photFlags |= FLAG_SATURATED_PIX; 580 } 581 return TRUE; 467 582 } 468 583
Note:
See TracChangeset
for help on using the changeset viewer.
