Changeset 14287 for trunk/Ohana/src/opihi/dvo/mextract.c
- Timestamp:
- Jul 18, 2007, 8:46:45 AM (19 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/dvo/mextract.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/dvo/mextract.c
r14191 r14287 4 4 5 5 int i, j, k, m, n, N, N1, Npts, NPTS, last, Nfields, Nreturn, Ncstack, Nstack; 6 int param, mode, Nsecfilt;6 int Nsecfilt, VERBOSE, loadImages, mosaicMode; 7 7 char *RegionName, *RegionList, *p; 8 8 double *M1; 9 9 char **cstack, name[1024]; 10 10 float *values; 11 void *Signal; 11 12 12 13 Catalog catalog; … … 22 23 RegionList = NULL; 23 24 code = NULL; 24 mode = MAG_REL;25 25 fields = NULL; 26 26 stack = NULL; 27 28 VERBOSE = FALSE; 29 if ((N = get_argument (argc, argv, "-v"))) { 30 remove_argument (N, &argc, argv); 31 VERBOSE = TRUE; 32 } 27 33 28 34 dvo_catalog_init (&catalog, TRUE); … … 50 56 // construct the db Boolean math stack (frees cstack) 51 57 stack = dbRPN (Ncstack, cstack, &Nstack); 58 if ((Ncstack > 0) && (Nstack < 1)) { 59 print_error (); 60 goto escape; 61 } 52 62 53 63 Nreturn = Nfields; … … 59 69 60 70 // XXX is this still needed? 61 // if (!SetImageSelection (param, ((RegionName == NULL) && (RegionList == NULL)))) goto escape; 71 loadImages = FALSE; 72 mosaicMode = FALSE; 73 for (i = 0; !loadImages && (i < Nfields); i++) { 74 if (fields[i].ID == MEAS_XCCD) loadImages = TRUE; 75 if (fields[i].ID == MEAS_YCCD) loadImages = TRUE; 76 if (fields[i].ID == MEAS_XMOSAIC) loadImages = mosaicMode = TRUE; 77 if (fields[i].ID == MEAS_YMOSAIC) loadImages = mosaicMode = TRUE; 78 } 79 if (loadImages && !SetImageSelection (mosaicMode, ((RegionName == NULL) && (RegionList == NULL)))) goto escape; 62 80 63 81 /* create storage vector */ … … 76 94 NPTS = 1; 77 95 78 // XXX need to add interrupt test to this loop 79 for (i = 0; i < skylist[0].Nregions; i++) { 96 // grab data from all selected sky regions 97 Signal = signal (SIGINT, handle_interrupt); 98 interrupt = FALSE; 99 for (i = 0; (i < skylist[0].Nregions) && !interrupt; i++) { 80 100 /* lock, load, unlock catalog */ 81 101 catalog.filename = skylist[0].filename[i]; … … 83 103 catalog.Nsecfilt = Nsecfilt; 84 104 105 if (VERBOSE) gprint (GP_ERR, "trying %s (%d of %d)\n", catalog.filename, i, skylist[0].Nregions); 106 85 107 // an error exit status here is a significant error 86 108 if (!dvo_catalog_open (&catalog, NULL, FALSE, "r")) { 87 fprintf (stderr, "ERROR: failure to open catalog file %s\n", catalog.filename);109 gprint (GP_ERR, "ERROR: failure to open catalog file %s\n", catalog.filename); 88 110 exit (2); 89 111 } … … 92 114 /* XXX need to call dvo_catalog_chipcoords here passing the loaded images */ 93 115 94 for (j = 0; j < catalog.Naverage; j++) {116 for (j = 0; (j < catalog.Naverage) && !interrupt; j++) { 95 117 m = catalog.average[j].offset; 96 118 for (k = 0; k < catalog.average[j].Nm; k++, m++) { … … 117 139 dvo_catalog_free (&catalog); 118 140 } 141 signal (SIGINT, Signal); 142 interrupt = FALSE; 143 119 144 for (n = 0; n < Nreturn; n++) { 120 145 vec[n][0].Nelements = Npts; 121 146 REALLOCATE (vec[n][0].elements, float, MAX(1,Npts)); 122 147 } 123 124 148 dbFreeFields (fields, Nfields); 125 149 dbFreeStack (stack, Nstack); 150 126 151 FreeImageSelection (); 127 152 SkyListFree (skylist, ((RegionName != NULL) || (RegionList != NULL))); 153 128 154 if (RegionName != NULL) free (RegionName); 129 155 if (RegionList != NULL) free (RegionList);
Note:
See TracChangeset
for help on using the changeset viewer.
