Changeset 33538
- Timestamp:
- Mar 15, 2012, 3:00:09 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20111122/Ohana/src/opihi/dvo/skycoverage.c
r32632 r33538 1 1 # include "dvoshell.h" 2 2 3 // enum to define possible modes 4 enum {COVERAGE, DENSITY, MIN_UBERCAL, MIN_DMAG_SYS, MIN_MCAL, MAX_MCAL}; 5 3 6 int wordhash (char *word); 4 7 5 8 int skycoverage (int argc, char **argv) { 6 9 7 int WITH_MOSAIC, SOLO_MOSAIC, ShowDensity;10 int WITH_MOSAIC, SOLO_MOSAIC, mode; 8 11 off_t i, Nimage; 9 12 int N, status, TimeSelect, ByName, xs, ys; … … 60 63 } 61 64 62 ShowDensity = FALSE;65 mode = COVERAGE; 63 66 if ((N = get_argument (argc, argv, "-density"))) { 64 67 remove_argument (N, &argc, argv); 65 ShowDensity = TRUE; 68 mode = DENSITY; 69 } 70 if ((N = get_argument (argc, argv, "-min-ubercal"))) { 71 remove_argument (N, &argc, argv); 72 mode = MIN_UBERCAL; 73 } 74 if ((N = get_argument (argc, argv, "-min-dmag-sys"))) { 75 remove_argument (N, &argc, argv); 76 mode = MIN_DMAG_SYS; 77 } 78 if ((N = get_argument (argc, argv, "-min-mcal"))) { 79 remove_argument (N, &argc, argv); 80 mode = MIN_MCAL; 81 } 82 if ((N = get_argument (argc, argv, "-max-mcal"))) { 83 remove_argument (N, &argc, argv); 84 mode = MAX_MCAL; 66 85 } 67 86 … … 194 213 V = (float *)buf[0].matrix.buffer; 195 214 215 // init the V array (depends on mode) 196 216 for (ys = 0; ys < Ny; ys++) { 197 217 for (xs = 0; xs < Nx; xs++) { … … 199 219 status &= (r >= 0); 200 220 status &= (r <= 360); 221 // are we in a part of the projection covering the sky or not? 201 222 if (status) { 202 V[ys*Nx + xs] = ShowDensity ? 0 : 2; 223 switch (mode) { 224 case COVERAGE: 225 V[ys*Nx + xs] = 2; 226 break; 227 case DENSITY: 228 V[ys*Nx + xs] = 0; 229 break; 230 case MIN_UBERCAL: 231 case MIN_DMAG_SYS: 232 case MIN_MCAL: 233 V[ys*Nx + xs] = 1E6; 234 break; 235 case MAX_MCAL: 236 V[ys*Nx + xs] = -1E6; 237 break; 238 } 203 239 } else { 204 V[ys*Nx + xs] = ShowDensity ? NAN : 0; 240 switch (mode) { 241 case COVERAGE: 242 V[ys*Nx + xs] = 0; 243 break; 244 case DENSITY: 245 case MIN_UBERCAL: 246 case MIN_DMAG_SYS: 247 case MIN_MCAL: 248 case MAX_MCAL: 249 V[ys*Nx + xs] = NAN; 250 break; 251 } 205 252 } 206 253 } … … 257 304 xs = (int)Xs; 258 305 ys = (int)Ys; 259 if (ShowDensity) { 306 switch (mode) { 307 case COVERAGE: 308 V[ys*Nx + xs] = 1; 309 break; 310 case DENSITY: 260 311 V[ys*Nx + xs] += 1; 261 } else { 262 V[ys*Nx + xs] = 1; 312 break; 313 case MIN_UBERCAL: 314 V[ys*Nx + xs] = MIN(V[ys*Nx + xs], image[i].ubercalDist); 315 break; 316 case MIN_DMAG_SYS: 317 V[ys*Nx + xs] = MIN(V[ys*Nx + xs], image[i].dMagSys); 318 break; 319 case MIN_MCAL: 320 V[ys*Nx + xs] = MIN(V[ys*Nx + xs], image[i].Mcal); 321 break; 322 case MAX_MCAL: 323 V[ys*Nx + xs] = MAX(V[ys*Nx + xs], image[i].Mcal); 324 break; 263 325 } 264 326 }
Note:
See TracChangeset
for help on using the changeset viewer.
