Changeset 36976
- Timestamp:
- Jul 7, 2014, 10:57:27 AM (12 years ago)
- Location:
- branches/eam_branches/ipp-20140610/Ohana/src/relphot
- Files:
-
- 12 edited
-
include/relphot.h (modified) (2 diffs)
-
src/BrightCatalog.c (modified) (4 diffs)
-
src/ImageOps.c (modified) (14 diffs)
-
src/MeanMagIO.c (modified) (6 diffs)
-
src/MosaicOps.c (modified) (24 diffs)
-
src/StarOps.c (modified) (8 diffs)
-
src/args.c (modified) (1 diff)
-
src/assign_images.c (modified) (1 diff)
-
src/bcatalog.c (modified) (6 diffs)
-
src/initialize.c (modified) (4 diffs)
-
src/setMrelCatalog.c (modified) (6 diffs)
-
src/share_mean_mags.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140610/Ohana/src/relphot/include/relphot.h
r36632 r36976 48 48 float dMsys; 49 49 unsigned short nFitPhotom; 50 short Xm;50 float Mchisq; 51 51 float secz; 52 52 float ubercalDist; … … 119 119 float M; 120 120 float dM; 121 float Xm;121 float Mchisq; 122 122 int Nsec; 123 123 unsigned int objID; -
branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/BrightCatalog.c
r36903 r36976 182 182 183 183 // need to create and assign to flat-field correction 184 GET_COLUMN(M, "MAG", float);185 GET_COLUMN(dM, "MAG_ERR", float);186 GET_COLUMN( Xm,"MAG_CHI", float);187 GET_COLUMN(flags, "FLAGS", int);188 GET_COLUMN(Ncode, "NCODE", short);189 GET_COLUMN(Nused, "NUSED", short);190 GET_COLUMN(Mmin, "MAG_MIN", float);191 GET_COLUMN(Mmax, "MAG_MAX", float);184 GET_COLUMN(M, "MAG", float); 185 GET_COLUMN(dM, "MAG_ERR", float); 186 GET_COLUMN(Mchisq, "MAG_CHI", float); 187 GET_COLUMN(flags, "FLAGS", int); 188 GET_COLUMN(Ncode, "NCODE", short); 189 GET_COLUMN(Nused, "NUSED", short); 190 GET_COLUMN(Mmin, "MAG_MIN", float); 191 GET_COLUMN(Mmax, "MAG_MAX", float); 192 192 gfits_free_header (&theader); 193 193 gfits_free_table (&ftable); … … 196 196 ALLOCATE (secfilt, SecFilt, Nrow); 197 197 for (i = 0; i < Nrow; i++) { 198 secfilt[i].M = M[i];199 secfilt[i].dM = dM[i];200 secfilt[i]. Xm = Xm[i];201 secfilt[i].flags = flags[i];202 secfilt[i].Ncode = Ncode[i];203 secfilt[i].Nused = Nused[i];204 secfilt[i].Mmin = Mmin[i];205 secfilt[i].Mmax = Mmax[i];198 secfilt[i].M = M[i]; 199 secfilt[i].dM = dM[i]; 200 secfilt[i].Mchisq = Mchisq[i]; 201 secfilt[i].flags = flags[i]; 202 secfilt[i].Ncode = Ncode[i]; 203 secfilt[i].Nused = Nused[i]; 204 secfilt[i].Mmin = Mmin[i]; 205 secfilt[i].Mmax = Mmax[i]; 206 206 } 207 207 fprintf (stderr, "loaded data for %lld secfilt\n", (long long) Nrow); 208 208 209 free (M );210 free (dM );211 free ( Xm);212 free (flags );213 free (Ncode );214 free (Nused );215 free (Mmin );216 free (Mmax );209 free (M ); 210 free (dM ); 211 free (Mchisq); 212 free (flags ); 213 free (Ncode ); 214 free (Nused ); 215 free (Mmin ); 216 free (Mmax ); 217 217 catalog->secfilt = secfilt; 218 218 // assert Nsecfilt * Naverage = Nrow? … … 447 447 float *M ; ALLOCATE (M , float, Nsec); 448 448 float *dM ; ALLOCATE (dM , float, Nsec); 449 float * Xm ; ALLOCATE (Xm, float, Nsec);449 float *Mchisq ; ALLOCATE (Mchisq , float, Nsec); 450 450 int *flags ; ALLOCATE (flags , int, Nsec); 451 451 short *Ncode ; ALLOCATE (Ncode , short, Nsec); … … 457 457 SecFilt *secfilt = catalog->secfilt; 458 458 for (i = 0; i < Nsec; i++) { 459 M [i] = secfilt[i]. M ;460 dM [i] = secfilt[i]. dM ;461 Xm [i] = secfilt[i]. Xm;462 flags [i] = secfilt[i]. flags ;463 Ncode [i] = secfilt[i]. Ncode ;464 Nused [i] = secfilt[i]. Nused ;465 Mmin [i] = secfilt[i]. Mmin ;466 Mmax [i] = secfilt[i]. Mmax ;459 M [i] = secfilt[i].M ; 460 dM [i] = secfilt[i].dM ; 461 Mchisq[i] = secfilt[i].Mchisq ; 462 flags [i] = secfilt[i].flags ; 463 Ncode [i] = secfilt[i].Ncode ; 464 Nused [i] = secfilt[i].Nused ; 465 Mmin [i] = secfilt[i].Mmin ; 466 Mmax [i] = secfilt[i].Mmax ; 467 467 } 468 468 469 469 // add the columns to the output array 470 gfits_set_bintable_column (&theader, &ftable, "MAG", M , Nsec);471 gfits_set_bintable_column (&theader, &ftable, "MAG_ERR", dM , Nsec);472 gfits_set_bintable_column (&theader, &ftable, "MAG_CHI", Xm, Nsec);473 gfits_set_bintable_column (&theader, &ftable, "FLAGS", flags , Nsec);474 gfits_set_bintable_column (&theader, &ftable, "NCODE", Ncode , Nsec);475 gfits_set_bintable_column (&theader, &ftable, "NUSED", Nused , Nsec);476 gfits_set_bintable_column (&theader, &ftable, "MAG_MIN", Mmin , Nsec);477 gfits_set_bintable_column (&theader, &ftable, "MAG_MAX", Mmax , Nsec);470 gfits_set_bintable_column (&theader, &ftable, "MAG", M , Nsec); 471 gfits_set_bintable_column (&theader, &ftable, "MAG_ERR", dM , Nsec); 472 gfits_set_bintable_column (&theader, &ftable, "MAG_CHI", Mchisq, Nsec); 473 gfits_set_bintable_column (&theader, &ftable, "FLAGS", flags , Nsec); 474 gfits_set_bintable_column (&theader, &ftable, "NCODE", Ncode , Nsec); 475 gfits_set_bintable_column (&theader, &ftable, "NUSED", Nused , Nsec); 476 gfits_set_bintable_column (&theader, &ftable, "MAG_MIN", Mmin , Nsec); 477 gfits_set_bintable_column (&theader, &ftable, "MAG_MAX", Mmax , Nsec); 478 478 479 479 free (M ); 480 480 free (dM ); 481 free ( Xm);481 free (Mchisq ); 482 482 free (flags ); 483 483 free (Ncode ); -
branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/ImageOps.c
r36936 r36976 701 701 double MaxOffset, MaxScatter, MedOffset; 702 702 703 if (FREEZE_IMAGES) return;703 // if (FREEZE_IMAGES) return; 704 704 705 705 if (VERBOSE) fprintf (stderr, "marking poor images\n"); … … 712 712 for (i = N = 0; i < Nimage; i++) { 713 713 if (image[i].flags & IMAGE_BAD) continue; 714 715 int isGPC1cam = ((image[i].photcode >= 10000) && (image[i].photcode <= 10500)); 716 if (FREEZE_IMAGES && isGPC1cam) continue; 717 714 718 mlist[N] = image[i].Mcal; 715 719 slist[N] = image[i].dMcal; … … 803 807 Graphdata graphdata; 804 808 805 if (FREEZE_IMAGES) return;809 // if (FREEZE_IMAGES) return; 806 810 807 811 ALLOCATE (xlist, double, Nimage); … … 816 820 float mindMcal = +100.0; 817 821 float maxdMcal = -100.0; 818 for (i = 0; i < Nimage; i++) { 819 Mlist[i] = image[i].Mcal; 820 dlist[i] = image[i].dMcal; 821 xlist[i] = image[i].secz; 822 823 int Nplot = 0; 824 825 for (i = 0; i < Nimage; i++) { 826 827 int isGPC1cam = ((image[i].photcode >= 10000) && (image[i].photcode <= 10500)); 828 if (FREEZE_IMAGES && isGPC1cam) continue; 829 830 Mlist[Nplot] = image[i].Mcal; 831 dlist[Nplot] = image[i].dMcal; 832 xlist[Nplot] = image[i].secz; 822 833 minAirmass = MIN (image[i].secz, minAirmass); 823 834 maxAirmass = MAX (image[i].secz, maxAirmass); … … 826 837 mindMcal = MIN (image[i].dMcal, mindMcal); 827 838 maxdMcal = MAX (image[i].dMcal, maxdMcal); 839 840 Nplot ++; 828 841 } 829 842 … … 858 871 for (i = 0; i < NBIN; i++) xlist[i] = 0.00025*i; 859 872 bzero (Mlist, NBIN*sizeof(double)); 860 for (i = 0; i < Nimage; i++) { 873 874 for (i = 0; i < Nimage; i++) { 875 int isGPC1cam = ((image[i].photcode >= 10000) && (image[i].photcode <= 10500)); 876 if (FREEZE_IMAGES && isGPC1cam) continue; 861 877 bin = image[i].dMcal / 0.00025; 862 878 bin = MAX (0, MIN (NBIN - 1, bin)); … … 883 899 StatType stats; 884 900 bzero (&stats, sizeof (StatType)); 885 if (FREEZE_IMAGES) return (stats); 901 902 // we no longer blindly apply FREEZE_IMAGES to all images, only to mosaics 903 // if (FREEZE_IMAGES) return (stats); 886 904 887 905 ALLOCATE (list, double, Nimage); … … 891 909 for (i = 0; i < Nimage; i++) { 892 910 if (image[i].flags & IMAGE_BAD) continue; 911 912 int isGPC1cam = ((image[i].photcode >= 10000) && (image[i].photcode <= 10500)); 913 if (FREEZE_IMAGES && isGPC1cam) continue; 893 914 894 915 N = 0; … … 926 947 927 948 bzero (&stats, sizeof (StatType)); 928 if (FREEZE_IMAGES) return (stats);949 // if (FREEZE_IMAGES) return (stats); 929 950 930 951 ALLOCATE (list, double, Nimage); … … 935 956 936 957 if (image[i].flags & IMAGE_BAD) continue; 958 959 int isGPC1cam = ((image[i].photcode >= 10000) && (image[i].photcode <= 10500)); 960 if (FREEZE_IMAGES && isGPC1cam) continue; 937 961 938 962 list[n] = pow (10.0, 0.01*image[i].Xm); … … 956 980 957 981 bzero (&stats, sizeof (StatType)); 958 if (FREEZE_IMAGES) return (stats);982 // if (FREEZE_IMAGES) return (stats); 959 983 960 984 ALLOCATE (list, double, Nimage); … … 965 989 966 990 if (image[i].flags & IMAGE_BAD) continue; 991 992 int isGPC1cam = ((image[i].photcode >= 10000) && (image[i].photcode <= 10500)); 993 if (FREEZE_IMAGES && isGPC1cam) continue; 967 994 968 995 list[n] = image[i].Mcal; … … 986 1013 987 1014 bzero (&stats, sizeof (StatType)); 988 if (FREEZE_IMAGES) return (stats);1015 // if (FREEZE_IMAGES) return (stats); 989 1016 990 1017 ALLOCATE (list, double, Nimage); … … 995 1022 996 1023 if (image[i].flags & IMAGE_BAD) continue; 1024 1025 int isGPC1cam = ((image[i].photcode >= 10000) && (image[i].photcode <= 10500)); 1026 if (FREEZE_IMAGES && isGPC1cam) continue; 997 1027 998 1028 list[n] = image[i].dMcal; -
branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/MeanMagIO.c
r36630 r36976 60 60 GET_COLUMN (M, "MAG", float); 61 61 GET_COLUMN (dM, "MAG_ERR", float); 62 GET_COLUMN ( Xm,"MAG_CHISQ", float);62 GET_COLUMN (Mchisq, "MAG_CHISQ", float); 63 63 GET_COLUMN (Nsec, "NSEC", int); 64 64 GET_COLUMN (objID, "OBJ_ID", int); … … 73 73 ALLOCATE (meanmags, MeanMag, Nrow); 74 74 for (i = 0; i < Nrow; i++) { 75 meanmags[i].M = M [i];76 meanmags[i].dM = dM [i];77 meanmags[i]. Xm = Xm[i];78 meanmags[i].Nsec = Nsec [i];79 meanmags[i].objID = objID [i];80 meanmags[i].catID = catID [i];75 meanmags[i].M = M [i]; 76 meanmags[i].dM = dM [i]; 77 meanmags[i].Mchisq = Mchisq [i]; 78 meanmags[i].Nsec = Nsec [i]; 79 meanmags[i].objID = objID [i]; 80 meanmags[i].catID = catID [i]; 81 81 } 82 82 fprintf (stderr, "loaded data for %lld objects (* filters)\n", (long long) Nrow); 83 83 84 free (M );85 free (dM );86 free ( Xm);87 free (Nsec );88 free (objID );89 free (catID );84 free (M ); 85 free (dM ); 86 free (Mchisq); 87 free (Nsec ); 88 free (objID ); 89 free (catID ); 90 90 91 91 *nmeanmags = Nrow; … … 125 125 gfits_create_table (&theader, &ftable); 126 126 127 float *M, *dM, * Xm;127 float *M, *dM, *Mchisq; 128 128 int *Nsec; 129 129 unsigned int *objID, *catID; … … 132 132 ALLOCATE (M, float, Nmeanmags); 133 133 ALLOCATE (dM, float, Nmeanmags); 134 ALLOCATE ( Xm,float, Nmeanmags);134 ALLOCATE (Mchisq, float, Nmeanmags); 135 135 ALLOCATE (Nsec, int, Nmeanmags); 136 136 ALLOCATE (objID, unsigned int, Nmeanmags); … … 139 139 // assign the storage arrays 140 140 for (i = 0; i < Nmeanmags; i++) { 141 M [i] = meanmags[i].M;142 dM [i] = meanmags[i].dM;143 Xm [i] = meanmags[i].Xm;144 Nsec [i] = meanmags[i].Nsec;145 objID [i] = meanmags[i].objID;146 catID [i] = meanmags[i].catID;141 M [i] = meanmags[i].M ; 142 dM [i] = meanmags[i].dM ; 143 Mchisq[i] = meanmags[i].Mchisq; 144 Nsec [i] = meanmags[i].Nsec ; 145 objID [i] = meanmags[i].objID ; 146 catID [i] = meanmags[i].catID ; 147 147 } 148 148 … … 150 150 gfits_set_bintable_column (&theader, &ftable, "MAG", M, Nmeanmags); 151 151 gfits_set_bintable_column (&theader, &ftable, "MAG_ERR", dM, Nmeanmags); 152 gfits_set_bintable_column (&theader, &ftable, "MAG_CHISQ", Xm,Nmeanmags);152 gfits_set_bintable_column (&theader, &ftable, "MAG_CHISQ", Mchisq, Nmeanmags); 153 153 gfits_set_bintable_column (&theader, &ftable, "NSEC", Nsec, Nmeanmags); 154 154 gfits_set_bintable_column (&theader, &ftable, "OBJ_ID", objID, Nmeanmags); 155 155 gfits_set_bintable_column (&theader, &ftable, "CAT_ID", catID, Nmeanmags); 156 156 157 free (M );158 free (dM );159 free ( Xm);160 free (Nsec );161 free (objID );162 free (catID );157 free (M ); 158 free (dM ); 159 free (Mchisq); 160 free (Nsec ); 161 free (objID ); 162 free (catID ); 163 163 164 164 FILE *f = fopen (filename, "w"); -
branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/MosaicOps.c
r36910 r36976 96 96 97 97 /* a new mosaic, define ranges -- preserve the original values incase this image is not used */ 98 mosaic[Nmosaic].start = start;99 mosaic[Nmosaic].stop = stop;100 mosaic[Nmosaic].Mcal = 0.0; // note : mosaic stores only offsets relative to the original image values101 mosaic[Nmosaic].dMcal = 0.0; // note : at the end, mosaic.Mcal is added back to the input images102 mosaic[Nmosaic].dMsys = 0.0;103 mosaic[Nmosaic]. Xm= 0.0;98 mosaic[Nmosaic].start = start; 99 mosaic[Nmosaic].stop = stop; 100 mosaic[Nmosaic].Mcal = 0.0; // note : mosaic stores only offsets relative to the original image values 101 mosaic[Nmosaic].dMcal = 0.0; // note : at the end, mosaic.Mcal is added back to the input images 102 mosaic[Nmosaic].dMsys = 0.0; 103 mosaic[Nmosaic].Mchisq = 0.0; 104 104 mosaic[Nmosaic].flags = image[i].flags; 105 mosaic[Nmosaic].secz = image[i].secz;105 mosaic[Nmosaic].secz = image[i].secz; 106 106 mosaic[Nmosaic].photcode = GetPhotcodeEquivCodebyCode (image[i].photcode); 107 107 … … 172 172 // generate a list of all subset image start times 173 173 ALLOCATE (startTimes, unsigned int, Nsubset); 174 int Nmoschip = 0; 174 175 for (i = 0; i < Nsubset; i++) { 175 startTimes[i] = subset[i].tzero; 176 } 177 sort_times (startTimes, Nsubset); 176 int isGPC1cam = ((subset[i].photcode >= 10000) && (subset[i].photcode <= 10500)); 177 if (!isGPC1cam) { 178 continue; 179 } 180 startTimes[Nmoschip] = subset[i].tzero; 181 Nmoschip ++; 182 } 183 sort_times (startTimes, Nmoschip); 178 184 MARKTIME("create array of all image obstimes: %f sec\n", dtime); 179 185 … … 184 190 185 191 // generate a list of the unique start times (these define the mosaics) 186 for (i = 0; i < N subset; i++) {192 for (i = 0; i < Nmoschip; i++) { 187 193 if (startTimes[i] < startTimesMosaic[Nmosaic]) { 188 194 fprintf (stderr, "error?\n"); … … 210 216 for (i = 0; i < Nmosaic; i++) { 211 217 /* a new mosaic, define ranges */ 212 mosaic[i].start = startTimesMosaic[i];213 mosaic[i].stop = 0;214 mosaic[i].Mcal = 0.0;215 mosaic[i].dMcal = 0.0;216 mosaic[i].dMsys = 0.0;217 mosaic[i]. Xm= 0.0;218 mosaic[i].flags = 0;219 mosaic[i].secz = NAN;218 mosaic[i].start = startTimesMosaic[i]; 219 mosaic[i].stop = 0; 220 mosaic[i].Mcal = 0.0; 221 mosaic[i].dMcal = 0.0; 222 mosaic[i].dMsys = 0.0; 223 mosaic[i].Mchisq = 0.0; 224 mosaic[i].flags = 0; 225 mosaic[i].secz = NAN; 220 226 mosaic[i].photcode = 0; 221 mosaic[i].skipCal = FALSE;227 mosaic[i].skipCal = FALSE; 222 228 223 229 memset (&mosaic[i].coords, 0, sizeof(Coords)); … … 238 244 } 239 245 240 /* select valid mosaic images by photcode */ 241 pname = GetPhotcodeNamebyCode (image[i].photcode); 242 if (!pname) continue; 243 status = strncmp (pname, MOSAICNAME, strlen (MOSAICNAME)); 244 if (status) continue; 246 // this is gpc1-specific. needs a more general solution 247 int isGPC1cam = ((image[i].photcode >= 10000) && (image[i].photcode <= 10500)); 248 if (!isGPC1cam) { 249 continue; 250 } 251 252 if (0) { 253 // XXX this version fails if we have stack and fforce data: GPC1.g.SkyChip 254 /* select valid mosaic images by photcode */ 255 pname = GetPhotcodeNamebyCode (image[i].photcode); 256 if (!pname) continue; 257 status = strncmp (pname, MOSAICNAME, strlen (MOSAICNAME)); 258 if (status) continue; 259 } 245 260 246 261 /* set image time range */ … … 262 277 263 278 // assign each image to a mosaic 279 int Nsimple = 0; 264 280 for (i = 0; i < Nsubset; i++) { 265 281 ImageToMosaic[i] = -1; 266 282 267 /* select valid mosaic images by photcode */ 268 pname = GetPhotcodeNamebyCode (subset[i].photcode); 269 status = strncmp (pname, MOSAICNAME, strlen (MOSAICNAME)); 270 if (status) continue; 283 // this is gpc1-specific. needs a more general solution 284 int isGPC1cam = ((subset[i].photcode >= 10000) && (subset[i].photcode <= 10500)); 285 if (!isGPC1cam) { 286 Nsimple ++; 287 continue; 288 } 289 290 if (0) { 291 // XXX this version fails if we have stack and fforce data: GPC1.g.SkyChip 292 /* select valid mosaic images by photcode */ 293 pname = GetPhotcodeNamebyCode (subset[i].photcode); 294 status = strncmp (pname, MOSAICNAME, strlen (MOSAICNAME)); 295 if (status) continue; 296 } 271 297 272 298 start = subset[i].tzero; … … 302 328 mosaic[j].Mcal = 0.0; 303 329 mosaic[j].dMcal = 0.0; 304 mosaic[j]. Xm= 0.0;330 mosaic[j].Mchisq = 0.0; 305 331 mosaic[j].dMsys = subset[i].flags; 306 332 mosaic[j].flags = subset[i].flags; … … 316 342 initMosaicGrid (subset, Nsubset); 317 343 318 fprintf (stderr, "matched %d images to %d mosaics \n", (int) Nsubset, (int) Nmosaic);344 fprintf (stderr, "matched %d images to %d mosaics, %d simple chips not matched to mosaics\n", (int) (Nsubset - Nsimple), (int) Nmosaic, (int) Nsimple); 319 345 return; 320 346 } … … 384 410 mosaic[i].dMcal = 0.0; 385 411 mosaic[i].dMsys = 0.0; 386 mosaic[i]. Xm= 0.0;412 mosaic[i].Mchisq = 0.0; 387 413 mosaic[i].flags = 0; 388 414 mosaic[i].secz = NAN; … … 443 469 mosaic[j].Mcal = 0.0; 444 470 mosaic[j].dMcal = 0.0; 445 mosaic[j]. Xm= 0.0;471 mosaic[j].Mchisq = 0.0; 446 472 mosaic[j].dMsys = image[i].flags; 447 473 mosaic[j].flags = image[i].flags; … … 566 592 Mcal += image[m].Mcal; 567 593 dMcal += image[m].dMcal; 568 Xm += image[m]. Xm;594 Xm += image[m].Mchisq; 569 595 570 596 // for ubercal images, we (elsewhere) keep Mcal frozen … … 573 599 image[m].Mcal = 0.0; 574 600 image[m].dMcal = NAN; 575 image[m]. Xm= NAN_S_SHORT;601 image[m].Mchisq = NAN_S_SHORT; 576 602 } 577 603 … … 617 643 mosaic[i].coords.pc2_1 = 0.0; 618 644 619 mosaic[i].Mcal = Mcal / MosaicN_Image[i];620 mosaic[i].dMcal = dMcal / MosaicN_Image[i];621 mosaic[i]. Xm= Xm / MosaicN_Image[i];645 mosaic[i].Mcal = Mcal / MosaicN_Image[i]; 646 mosaic[i].dMcal = dMcal / MosaicN_Image[i]; 647 mosaic[i].Mchisq = Xm / MosaicN_Image[i]; 622 648 } 623 649 return; … … 669 695 Mcal += image[m].Mcal; 670 696 dMcal += image[m].dMcal; 671 Xm += image[m]. Xm;697 Xm += image[m].Mchisq; 672 698 673 699 // XXX: how does this work with UBERCAL? We want to keep the Mcal values supplied by ubercal, but … … 679 705 680 706 /* we are using mosaic.Mcal, not image.Mcal. reset image.Mcal */ 681 image[m].Mcal = 0.0;682 image[m].dMcal = NAN;683 image[m]. Xm = NAN_S_SHORT;707 image[m].Mcal = 0.0; 708 image[m].dMcal = NAN; 709 image[m].Mchiqs = NAN; 684 710 } 685 711 dS /= MosaicN_Image[i]; … … 697 723 RD_to_XY (&dX, &dY, Rmax, Dmax, &mosaic[i].coords); 698 724 699 mosaic[i].Mcal = Mcal / MosaicN_Image[i];700 mosaic[i].dMcal = dMcal / MosaicN_Image[i];701 mosaic[i]. Xm= Xm / MosaicN_Image[i];725 mosaic[i].Mcal = Mcal / MosaicN_Image[i]; 726 mosaic[i].dMcal = dMcal / MosaicN_Image[i]; 727 mosaic[i].Mchisq = Xm / MosaicN_Image[i]; 702 728 } 703 729 if (!USE_GRID) return; … … 729 755 image[im].Mcal += mosaic[i].Mcal; 730 756 image[im].dMcal = mosaic[i].dMcal; 731 image[im]. Xm = mosaic[i].Xm;757 image[im].Mchisq = mosaic[i].Mchisq; 732 758 image[im].dMagSys = mosaic[i].dMsys; 733 759 image[im].nFitPhotom = mosaic[i].nFitPhotom; … … 840 866 mosID = ImageToMosaic[idx]; 841 867 if (mosID < 0) { 842 Image *image = getimage(idx); 843 fprintf (stderr, "unmatched image %s\n", image[0].name); 868 // Image *image = getimage(idx); 869 // fprintf (stderr, "unmatched image %s\n", image[0].name); 870 // skip measurements from simple chips (not matched to a mosaic by definition) 844 871 return; 845 872 } … … 882 909 if (!MOSAIC_ZEROPT) return (0); 883 910 911 // unassigned measurements belong to simple chips 884 912 i = MeasureToMosaic[cat][meas]; 885 if (i == -1) return ( NAN);913 if (i == -1) return (0.0); 886 914 887 915 if (mosaic[i].flags & IMAGE_BAD) return (NAN); … … 1219 1247 myMosaic[0].dMcal = stats.error; 1220 1248 myMosaic[0].nFitPhotom = N; 1221 myMosaic[0]. Xm = 100.0*log10(stats.chisq);1249 myMosaic[0].Mchisq = stats.chisq; 1222 1250 1223 1251 if (testImage) { … … 1239 1267 1240 1268 if (testImage) { 1241 fprintf (stderr, "%f %f : % d %f\n", myMosaic[0].Mcal, myMosaic[0].dMsys, myMosaic[0].Xm, pow(10.0, 0.01*myMosaic[0].Xm));1269 fprintf (stderr, "%f %f : %f\n", myMosaic[0].Mcal, myMosaic[0].dMsys, myMosaic[0].Mchisq); 1242 1270 } 1243 1271 … … 1699 1727 if (mosaic[i].flags & IMAGE_BAD) continue; 1700 1728 if (mosaic[i].skipCal) continue; 1701 list[n] = pow(10.0, 0.01*mosaic[i].Xm);1729 list[n] = mosaic[i].Mchisq; 1702 1730 dlist[n] = 1; 1703 1731 n++; … … 1784 1812 off_t i, j, m, c, N, Nimage; 1785 1813 double *xlist, *ylist; 1786 // double Xmin, Xmax, Ymin, Ymax;1787 1814 char string[64]; 1788 1815 Graphdata graphdata; … … 1803 1830 for (i = 0; i < Nmosaic; i++) { 1804 1831 N = 0; 1805 // Xmin = Ymin = +360.0;1806 // Xmax = Ymax = -360.0;1807 1832 for (j = 0; j < N_onMosaic[i]; j++) { 1808 1833 -
branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/StarOps.c
r36917 r36976 153 153 int i; 154 154 155 fprintf (stderr, "this version of setMrel is invalid for now\n");156 exit (1);155 // fprintf (stderr, "this version of setMrel is invalid for now\n"); 156 // exit (1); 157 157 158 158 int Nsecfilt = GetPhotcodeNsecfilt (); … … 673 673 liststats (list, dlist, wlist, N, &stats); 674 674 675 catalog[Nc].secfilt[Nsecfilt*j+Nsec].M = stats.mean;676 catalog[Nc].secfilt[Nsecfilt*j+Nsec].dM = stats.error;677 catalog[Nc].secfilt[Nsecfilt*j+Nsec]. Xm = (stats.Nmeas > 1) ? 100.0*log10(stats.chisq + 1e-4) : NAN_S_SHORT;675 catalog[Nc].secfilt[Nsecfilt*j+Nsec].M = stats.mean; 676 catalog[Nc].secfilt[Nsecfilt*j+Nsec].dM = stats.error; 677 catalog[Nc].secfilt[Nsecfilt*j+Nsec].Mchisq = (stats.Nmeas > 1) ? stats.chisq : NAN; 678 678 679 679 // when running -averages, we have no information about the images, so we cannot set this … … 953 953 954 954 int i, j, Ndel, Nave, Ntot, mark, Ns, Nscat, Nchi, Nnan; 955 float dM , Xm;955 float dM; 956 956 double Chisq, MaxScatter, MaxChisq; 957 957 double *xlist, *slist, *dlist; … … 981 981 for (j = 0; j < catalog[i].Naverage; j++) { 982 982 if ( catalog[i].secfilt[Nsecfilt*j+Nsec].flags & STAR_BAD ) continue; 983 Xm = catalog[i].secfilt[Nsecfilt*j+Nsec].Xm; 984 if (Xm == -1) continue; 985 Chisq = pow (10.0, 0.01*Xm); 986 xlist[Ntot] = Chisq; 983 Mchisq = catalog[i].secfilt[Nsecfilt*j+Nsec].Mchisq; 984 xlist[Ntot] = Mchisq; 987 985 slist[Ntot] = catalog[i].secfilt[Nsecfilt*j+Nsec].dM; 988 986 dlist[Ntot] = 1; … … 1002 1000 for (j = 0; j < catalog[i].Naverage; j++) { 1003 1001 dM = catalog[i].secfilt[Nsecfilt*j+Nsec].dM; 1004 Xm = catalog[i].secfilt[Nsecfilt*j+Nsec].Xm; 1005 Chisq = pow (10.0, 0.01*Xm); 1006 mark = (dM > MaxScatter) || (Xm == NAN_S_SHORT) || (Chisq > MaxChisq); 1002 Mchisq = catalog[i].secfilt[Nsecfilt*j+Nsec].Mchisq; 1003 mark = (dM > MaxScatter) || (isnan(Mchisq) || (Mchisq > MaxChisq); 1007 1004 if (mark) { 1008 1005 catalog[i].secfilt[Nsecfilt*j+Nsec].flags |= ID_STAR_POOR; 1009 1006 Ndel ++; 1010 if (dM > MaxScatter) { Nscat ++; }1011 if ( Xm == NAN_S_SHORT){ Nnan ++; }1012 if ( Chisq > MaxChisq) { Nchi ++; }1007 if (dM > MaxScatter) { Nscat ++; } 1008 if (isnan(Mchisq)) { Nnan ++; } 1009 if (Mchisq > MaxChisq) { Nchi ++; } 1013 1010 } else { 1014 1011 catalog[i].secfilt[Nsecfilt*j+Nsec].flags &= ~ID_STAR_POOR; … … 1236 1233 1237 1234 off_t j, Ntot; 1238 int i, n , Xm;1235 int i, n; 1239 1236 double *list, *dlist; 1240 1237 StatType stats; … … 1257 1254 if (catalog[i].secfilt[Nsecfilt*j+Nsec].flags & STAR_BAD) continue; 1258 1255 1259 Xm = catalog[i].secfilt[Nsecfilt*j+Nsec].Xm;1260 if ( Xm == NAN_S_SHORT) continue;1261 list[n] = pow (10.0, 0.01*Xm);1256 Mchisq = catalog[i].secfilt[Nsecfilt*j+Nsec].Mchisq; 1257 if (isnan(Mchisq)) continue; 1258 list[n] = Mchisq; 1262 1259 dlist[n] = 1; 1263 1260 n++; … … 1380 1377 if (catalog[i].secfilt[Nsecfilt*j+Nsec].flags & STAR_BAD) continue; 1381 1378 xlist[N] = catalog[i].secfilt[Nsecfilt*j+Nsec].M; 1382 value = catalog[i].secfilt[Nsecfilt*j+Nsec]. Xm;1383 if ( value == NAN_S_SHORT) continue;1384 ylist[N] = 0.01*value;1379 value = catalog[i].secfilt[Nsecfilt*j+Nsec].Mchisq; 1380 if (isnan(value)) continue; 1381 ylist[N] = value; 1385 1382 N++; 1386 1383 } -
branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/args.c
r36630 r36976 227 227 } 228 228 229 SHOW_PARAMS = FALSE;229 SHOW_PARAMS = TRUE; 230 230 if ((N = get_argument (argc, argv, "-params"))) { 231 231 remove_argument (N, &argc, argv); 232 SHOW_PARAMS = TRUE;232 SHOW_PARAMS = FALSE; 233 233 } 234 234 -
branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/assign_images.c
r36630 r36976 27 27 makeMosaics (image, Nimage); 28 28 29 // center coords and Mcal, dMcal, Xmfor the mosaics29 // center coords and Mcal, dMcal, Mchisq for the mosaics 30 30 setMosaicCenters (image, Nimage); 31 31 MARKTIME("set mosaic coordinates and Mcal values: %f sec\n", dtime); -
branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/bcatalog.c
r36910 r36976 22 22 ALLOCATE (subcatalog[0].secfilt, SecFilt, NAVERAGE*Nsecfilt); 23 23 Nmeasure = Naverage = 0; 24 25 int NmMax = 0; 26 int NmMin = catalog[0].Nmeasure; 24 27 25 28 Ncode = Ntime = Ndophot = Nmag = Nsigma = Nimag = Nfew = Npsfqf = Ngalaxy = Nnan = Nbad = Npoor = 0; … … 82 85 // subcatalog[0].secfilt[Nsecfilt*Naverage+Nsec].dM = NAN; 83 86 // subcatalog[0].secfilt[Nsecfilt*Naverage+Nsec].Mstdev = NAN_S_SHORT; 84 // subcatalog[0].secfilt[Nsecfilt*Naverage+Nsec]. Xm= NAN;87 // subcatalog[0].secfilt[Nsecfilt*Naverage+Nsec].Mchisq = NAN; 85 88 // subcatalog[0].secfilt[Nsecfilt*Naverage+Nsec].M_20 = NAN_S_SHORT; 86 89 // subcatalog[0].secfilt[Nsecfilt*Naverage+Nsec].M_80 = NAN_S_SHORT; … … 187 190 } 188 191 myAssert (Nmeasure < NMEASURE, "realloc failure"); 189 } 192 } // end of catalog.average.Nmeasure loop 190 193 191 194 // skip object if it is likely to be a galaxy … … 212 215 continue; 213 216 } 217 NmMin = MIN (Nm, NmMin); 218 NmMax = MAX (Nm, NmMax); 214 219 215 220 // for w-band photometry (& other cases?) convert gri photometry … … 242 247 subcatalog[0].Nsecf_mem = Naverage * catalog[0].Nsecfilt; 243 248 249 if (VERBOSE) { 250 fprintf (stderr, "using "OFF_T_FMT" stars ("OFF_T_FMT" measures) of "OFF_T_FMT" ("OFF_T_FMT" measures) for catalog %s, %d < Nm < %d\n", 251 subcatalog[0].Naverage, subcatalog[0].Nmeasure, catalog[0].Naverage, catalog[0].Nmeasure, catalog[0].filename, NmMin, NmMax); 252 fprintf (stderr, "rejections: %d stars have too few measures:\n %d code, %d time, %d dophot, %d mag, %d sigma, %d imag, %d psfqf, %d Nnan, %d galaxies, %d bad, %d poor\n", 253 Nfew, Ncode, Ntime, Ndophot, Nmag, Nsigma, Nimag, Npsfqf, Nnan, Ngalaxy, Nbad, Npoor); 254 } 255 244 256 // limit the total number of stars in the catalog 245 257 if (MaxDensityUse) { … … 247 259 } 248 260 249 if (VERBOSE) {250 fprintf (stderr, "using "OFF_T_FMT" stars ("OFF_T_FMT" measures) of "OFF_T_FMT" for catalog %s\n",251 subcatalog[0].Naverage, subcatalog[0].Nmeasure, i, catalog[0].filename);252 fprintf (stderr, "rejections: %d code, %d time, %d dophot, %d mag, %d sigma, %d imag, %d few, %d psfqf, %d Nnan, %d galaxies, %d bad, %d poor\n",253 Ncode, Ntime, Ndophot, Nmag, Nsigma, Nimag, Nfew, Npsfqf, Nnan, Ngalaxy, Nbad, Npoor);254 }255 261 return (TRUE); 256 262 } -
branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/initialize.c
r36630 r36976 36 36 37 37 if (SHOW_PARAMS) { 38 fprintf (stderr, "current parameter settings:\n"); 38 int Ns; 39 fprintf (stderr, "subset selection criteria:\n"); 40 fprintf (stderr, " photcodes "); 41 for (Ns = 0; Ns < Nphotcodes; Ns++) { 42 if (Ns == Nphotcodes - 1) { 43 fprintf (stderr, "%s\n", photcodes[Ns][0].name); 44 } else { 45 fprintf (stderr, "%s, ", photcodes[Ns][0].name); 46 } 47 } 39 48 if (TimeSelect) { 40 49 fprintf (stderr, "TimeSelect: TRUE (%s - %s)\n", ohana_sec_to_date (TSTART), ohana_sec_to_date (TSTOP)); … … 42 51 fprintf (stderr, "TimeSelect: FALSE\n"); 43 52 } 53 if (DophotSelect) { 54 fprintf (stderr, "DophotSelect: TRUE (%d)\n", DophotValue); 55 } else { 56 fprintf (stderr, "DophotSelect: FALSE\n"); 57 } 58 fprintf (stderr, "PSF_QF limit: 0.85 (hardwired)\n"); 59 60 // fprintf (stderr, "Photom Bad Mask: 0x%08x, Photom Poor Mask: 0x%08x\n"); 61 62 fprintf (stderr, "MAG_LIM: %f, SIGMA_LIM: %f\n", MAG_LIM, SIGMA_LIM); 63 fprintf (stderr, "INST_MAG_MIN: %f, INST_MAG_MAX: %f\n", ImagMin, ImagMax); 64 65 fprintf (stderr, "STAR_TOOFEW: %d\n", STAR_TOOFEW); 66 44 67 fprintf (stderr, "VERBOSE: %d, PLOTSTUFF: %d\n", VERBOSE, PLOTSTUFF); 45 68 fprintf (stderr, "GRID_X: %d, GRID_Y: %d, BINNING: %d == Nmx: %d, Nmy: %d\n", … … 49 72 (int)(RELPHOT_GRID_X/RELPHOT_GRID_BINNING), (int)(RELPHOT_GRID_Y/RELPHOT_GRID_BINNING)); 50 73 51 fprintf (stderr, "MAG_LIM %lf\n", MAG_LIM);52 74 fprintf (stderr, "STAR_SCATTER %lf\n", STAR_SCATTER); 53 75 fprintf (stderr, "IMAGE_SCATTER %lf\n", IMAGE_SCATTER); … … 56 78 fprintf (stderr, "GSCFILE %s\n", GSCFILE); 57 79 fprintf (stderr, "CATDIR %s\n", CATDIR); 58 exit (0);59 80 } 60 81 -
branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/setMrelCatalog.c
r36945 r36976 354 354 liststats (Mpsflist, dpsflist, wpsflist, Npsf, psfstats); 355 355 356 secfilt[Nsec].M = psfstats->mean;357 secfilt[Nsec].dM = psfstats->error;358 secfilt[Nsec]. Xm = (psfstats->Nmeas > 1) ? 100.0*log10(psfstats->chisq + 1e-4) : NAN_S_SHORT;356 secfilt[Nsec].M = psfstats->mean; 357 secfilt[Nsec].dM = psfstats->error; 358 secfilt[Nsec].Mchisq = (psfstats->Nmeas > 1) ? psfstats->chisq : NAN; 359 359 360 360 // when running -averages, we have no information about the images, so we cannot set this … … 613 613 secfilt[Nsec].dFapStk = zpFactor * measure[k].dFluxAp; 614 614 615 secfilt[Nsec].MpsfStk = (measure[k].FluxPSF > 0.0) ? zp -2.5*log10(measure[k].FluxPSF) : NAN;616 secfilt[Nsec].MkronStk = (measure[k].FluxKron > 0.0) ? zp -2.5*log10(measure[k].FluxKron) : NAN;617 secfilt[Nsec].MapStk = (measure[k].FluxAp > 0.0) ? zp -2.5*log10(measure[k].FluxAp) : NAN;615 secfilt[Nsec].MpsfStk = (measure[k].FluxPSF > 0.0) ? 8.9 - 2.5*log10(secfilt[Nsec].FpsfStk) : NAN; 616 secfilt[Nsec].MkronStk = (measure[k].FluxKron > 0.0) ? 8.9 - 2.5*log10(secfilt[Nsec].FkronStk) : NAN; 617 secfilt[Nsec].MapStk = (measure[k].FluxAp > 0.0) ? 8.9 - 2.5*log10(secfilt[Nsec].FapStk) : NAN; 618 618 619 619 secfilt[Nsec].stackDetectID = ID; … … 716 716 if (isnan(Mcal)) SKIP_THIS_MEAS(Ncal); 717 717 } 718 float Fcal = MagToFlux( Mcal);718 float Fcal = MagToFlux(-Mcal); 719 719 720 720 // in the calculations below, … … 767 767 secfilt[Nsec].sFpsfWrp = psfstats->sigma; // Mstdev is in millimags (not enough space for more precision) 768 768 secfilt[Nsec].NusedWrp = psfstats->Nmeas; 769 secfilt[Nsec].MpsfWrp = isnan(secfilt[Nsec].FpsfWrp) ? NAN : -2.5*log(secfilt[Nsec].FpsfWrp); // XXX need to add zero-point769 secfilt[Nsec].MpsfWrp = isnan(secfilt[Nsec].FpsfWrp) ? NAN : 8.9 - 2.5*log10(secfilt[Nsec].FpsfWrp); // 8.9 since flux is in Jy 770 770 771 771 // NOTE : use the modified weight for apmags as well as psf mags … … 775 775 secfilt[Nsec].sFapWrp = Nap > 0 ? apstats->sigma : NAN; 776 776 secfilt[Nsec].NusedApWrp = Nap; 777 secfilt[Nsec].MapWrp = isnan(secfilt[Nsec].FapWrp) ? NAN : -2.5*log(secfilt[Nsec].FapWrp); // XXX need to add zero-point777 secfilt[Nsec].MapWrp = isnan(secfilt[Nsec].FapWrp) ? NAN : 8.9 - 2.5*log10(secfilt[Nsec].FapWrp); // 8.9 since flux is in Jy 778 778 779 779 liststats (Fkronlist, dkronlist, wkronlist, Nkron, kronstats); … … 782 782 secfilt[Nsec].sFkronWrp = Nkron > 0 ? kronstats->sigma : NAN; 783 783 secfilt[Nsec].NusedKronWrp = Nkron; 784 secfilt[Nsec].MkronWrp = isnan(secfilt[Nsec].FkronWrp) ? NAN : -2.5*log(secfilt[Nsec].FkronWrp); // XXX need to add zero-point784 secfilt[Nsec].MkronWrp = isnan(secfilt[Nsec].FkronWrp) ? NAN : 8.9 - 2.5*log10(secfilt[Nsec].FkronWrp); // 8.9 since flux is in Jy 785 785 } 786 786 return (TRUE); -
branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/share_mean_mags.c
r36630 r36976 123 123 meanmags->M = secfilt->M; 124 124 meanmags->dM = secfilt->dM; 125 meanmags-> Xm = secfilt->Xm;125 meanmags->Mchisq = secfilt->Mchisq; 126 126 meanmags->Nsec = Nsec; // key to secfilt entry 127 127
Note:
See TracChangeset
for help on using the changeset viewer.
