Changeset 20266
- Timestamp:
- Oct 19, 2008, 1:51:08 PM (18 years ago)
- Location:
- trunk/Ohana/src/getstar
- Files:
-
- 3 edited
-
include/getstar.h (modified) (1 diff)
-
src/args.c (modified) (1 diff)
-
src/select_by_region.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/getstar/include/getstar.h
r16061 r20266 27 27 int SKY_DEPTH; 28 28 29 int MaxDensityUse; 30 float MaxDensityValue; 31 int MinMagUse; 32 float MinMagValue; 29 33 int MagLimitUse; 30 34 float MagLimitValue; -
trunk/Ohana/src/getstar/src/args.c
r19823 r20266 44 44 remove_argument (N, &argc, argv); 45 45 MagLimitValue = atof (argv[N]); 46 remove_argument (N, &argc, argv); 47 } 48 49 MaxDensityUse = FALSE; 50 if ((N = get_argument (argc, argv, "-max-density"))) { 51 if (MagLimitUse) { 52 fprintf (stderr, "-maglim and -max-density are mutually exclusive; ignoring -maglim"); 53 // MagLimitValue will be overridded by a density-based limit 54 } 55 MaxDensityUse = TRUE; 56 remove_argument (N, &argc, argv); 57 MaxDensityValue = atof (argv[N]); 58 remove_argument (N, &argc, argv); 59 } 60 61 MinMagUse = FALSE; 62 if ((N = get_argument (argc, argv, "-minmag"))) { 63 MinMagUse = TRUE; 64 remove_argument (N, &argc, argv); 65 MinMagValue = atof (argv[N]); 46 66 remove_argument (N, &argc, argv); 47 67 } -
trunk/Ohana/src/getstar/src/select_by_region.c
r16810 r20266 6 6 int i, j, n, Nm, offset, m, Nsecfilt, code, Nsec; 7 7 int Nave, NAVE, Nmeas, NMEAS; 8 double R, D ;8 double R, D, AREA; 9 9 float mag; 10 10 … … 37 37 NMEAS = output[0].Nmeasure + 1000; 38 38 REALLOCATE (output[0].measure, Measure, NMEAS); 39 40 // if MaxDensityUse is set, we need to determine the MagLimitValue for this catalog by 41 // examining the magnitude distribution. generate a magnitude histogram 42 if (MaxDensityUse) { 43 int bin, Nmax, Nbins, Nsum, *Nmag; 44 float MagMin, MagMax, dMag; 45 double Rmin, Rmax, Dmin, Dmax; 46 47 MagLimitUse = TRUE; // we will use the MagLimit implied by the mag distribution below 48 49 gfits_scan (&catalog[0].header, "RA0", "%lf", 1, &Rmin); 50 gfits_scan (&catalog[0].header, "DEC0", "%lf", 1, &Dmin); 51 gfits_scan (&catalog[0].header, "RA1", "%lf", 1, &Rmax); 52 gfits_scan (&catalog[0].header, "DEC1", "%lf", 1, &Dmax); 53 54 if (VERBOSE) fprintf (stderr, "extracting from catalog covering region %f,%f to %f,%f\n", Rmin, Dmin, Rmax, Dmax); 55 56 AREA = fabs(Dmax - Dmin) * fabs(Rmax - Rmin) * cos (0.5*RAD_DEG*(Dmax + Dmin)); 57 assert (AREA > 0); 58 59 Nmax = MaxDensityValue * AREA; 60 61 dMag = 0.1; 62 MagMin = 0.0; 63 MagMax = 32.0; 64 Nbins = (MagMax - MagMin) / dMag; 65 ALLOCATE (Nmag, int, Nbins); 66 bzero (Nmag, Nbins * sizeof(int)); 67 68 for (i = 0; i < catalog[0].Naverage; i++) { 69 n = catalog[0].measure[i].averef; 70 mag = NAN; 71 if (Nsec != -1) { 72 mag = catalog[0].secfilt[i*Nsecfilt + Nsec].M; 73 } else { 74 offset = catalog[0].average[i].measureOffset; 75 for (m = 0; m < catalog[0].average[i].Nmeasure; m++) { 76 if (catalog[0].measure[offset + m].photcode == code) { 77 mag = PhotRel (&catalog[0].measure[offset + m], &catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt]); 78 break; 79 } 80 } 81 } 82 if (isnan(mag)) continue; 83 84 bin = (mag - MagMin) / dMag; 85 if (bin < 0) continue; 86 if (bin >= Nbins) continue; 87 88 Nmag[bin] ++; 89 } 90 91 if (!MinMagUse) MinMagValue = MagMin; 92 bin = (MinMagValue - MagMin) / dMag; 93 bin = MIN (MAX (0, bin), Nbins); 94 95 Nsum = 0; 96 for (i = bin; (i < Nbins) && (Nsum < Nmax); i++) { 97 Nsum += Nmag[i]; 98 } 99 MagLimitValue = i*dMag + MagMin; 100 if (VERBOSE) fprintf (stderr, "using %d stars in mag range %f - %f\n", Nsum, MinMagValue, MagLimitValue); 101 } 39 102 40 103 for (i = 0; i < catalog[0].Naverage; i++) {
Note:
See TracChangeset
for help on using the changeset viewer.
