Changeset 20936 for trunk/Ohana/src/opihi/dvo/mextract.c
- Timestamp:
- Dec 7, 2008, 3:31:01 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/dvo/mextract.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/dvo/mextract.c
r20819 r20936 6 6 int Nsecfilt, VERBOSE, loadImages, mosaicMode; 7 7 char **cstack, name[1024]; 8 float*values;8 dbValue *values; 9 9 void *Signal; 10 10 11 11 Catalog catalog; 12 12 SkyList *skylist; 13 PhotCode *code;14 13 Vector **vec; 15 14 dbField *fields; … … 18 17 19 18 /* defaults */ 19 vec = NULL; 20 stack = NULL; 21 fields = NULL; 22 values = NULL; 20 23 skylist = NULL; 21 code = NULL; 22 fields = NULL; 23 stack = NULL; 24 selection = NULL; 24 25 25 26 if ((N = get_argument (argc, argv, "-h"))) goto help; … … 49 50 fields = dbCmdlineFields (argc, argv, DVO_TABLE_MEASURE, &last, &Nfields); 50 51 if (fields == NULL) return (FALSE); 52 if (Nfields == 0) { 53 FreeSkyRegionSelection (selection); 54 dbFreeFields (fields, Nfields); 55 dvo_catalog_free (&catalog); 56 goto help; 57 } 51 58 52 59 // examine line for 'where' or 'match to'. 'match to' is forbidden … … 88 95 89 96 /* create storage vector */ 90 ALLOCATE (values, float, Nfields); 97 Npts = 0; 98 NPTS = 1000; 99 ALLOCATE (values, dbValue, Nfields); 91 100 ALLOCATE (vec, Vector *, Nreturn); 92 101 for (i = 0; i < Nreturn; i++) { … … 97 106 } 98 107 if ((vec[i] = SelectVector (name, ANYVECTOR, TRUE)) == NULL) goto escape; 99 } 100 101 Npts = 0; 102 NPTS = 1; 108 ResetVector (vec[i], fields[i].type, NPTS); 109 } 103 110 104 111 // grab data from all selected sky regions … … 139 146 if (!dbBooleanCond (stack, Nstack, values)) continue; 140 147 for (n = 0; n < Nreturn; n++) { 141 vec[n][0].elements[Npts] = values[n]; 148 if (vec[n][0].type == OPIHI_FLT) { 149 vec[n][0].elements.Flt[Npts] = values[n].Flt; 150 } else { 151 vec[n][0].elements.Int[Npts] = values[n].Int; 152 } 142 153 // fprintf (stderr, "keep : field: %s, value: %f\n", fields[n].name, values[n]); 143 154 } … … 146 157 NPTS += 2000; 147 158 for (n = 0; n < Nreturn; n++) { 148 REALLOCATE (vec[n][0].elements , float, NPTS);159 REALLOCATE (vec[n][0].elements.Flt, opihi_flt, NPTS); 149 160 } 150 161 } … … 161 172 162 173 for (n = 0; n < Nreturn; n++) { 163 vec[n][0].Nelements = Npts; 164 REALLOCATE (vec[n][0].elements, float, MAX(1,Npts)); 165 } 166 174 ResetVector (vec[n], fields[n].type, MAX(1,Npts)); 175 } 176 177 if (vec) free (vec); 178 if (values) free (values); 167 179 dbFreeFields (fields, Nfields); 168 180 dbFreeStack (stack, Nstack); … … 174 186 175 187 escape: 188 if (vec) free (vec); 189 free (values); 176 190 dbFreeFields (fields, Nfields); 177 191 dbFreeStack (stack, Nstack);
Note:
See TracChangeset
for help on using the changeset viewer.
