Changeset 15724
- Timestamp:
- Nov 30, 2007, 9:06:52 AM (18 years ago)
- Location:
- branches/eam_branch_20071130/Ohana/src/libdvo
- Files:
-
- 3 edited
-
include/dvo.h (modified) (1 diff)
-
src/dvo_catalog.c (modified) (2 diffs)
-
src/dvo_catalog_split.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20071130/Ohana/src/libdvo/include/dvo.h
r15722 r15724 195 195 Missing *missing; 196 196 SecFilt *secfilt; 197 int Naverage, Nmeasure, Nmissing, Nsecfilt; /* current number of each component */ 198 int Nave_disk, Nmeas_disk, Nmiss_disk; /* number of component on disk */ 199 int Nmeas_off; /* dist seq of first loaded data value */ 200 /* note the different counting for Nsecfilt */ 197 198 int Nsecfilt; /* number of secfilt entries for each average entry */ 199 int Naverage, Nmeasure, Nmissing, Nsecf_mem; /* current number of each component in memory */ 200 int Naves_disk, Nmeas_disk, Nmiss_disk, Nsecf_disk; /* current number of each component on disk */ 201 int Naves_off, Nmeas_off, Nmiss_off, Nsecf_off; /* index of first loaded data value */ 202 203 /* note the different counting for Nsecfilt: 204 number of secfilt rows on disk is: Nave_disk * Nsecfilt 205 number of secfilt rows in mem is: Naverage * Nsecfilt 206 *** that is just silly, and bad: convert to using Nsec_mem, Nsec_disk, Nsec_off. 207 *** unless we always require the secfilt and average entries to be loaded sychronously. 208 */ 201 209 202 210 /* pointers to split data files */ -
branches/eam_branch_20071130/Ohana/src/libdvo/src/dvo_catalog.c
r15509 r15724 237 237 // even if the data is sorted on disk, if we only load the MEAS_META, we are 238 238 // treating it as unsorted (eg, append only) 239 // XXX deprecate this statement? 239 240 if (catalog[0].catflags & LOAD_MEAS_META) { 240 241 catalog[0].sorted = FALSE; … … 276 277 277 278 // write out the data, unlink if empty? 279 // XXX consider conditions in which we can allow a save... 278 280 int dvo_catalog_save (Catalog *catalog, char VERBOSE) { 279 281 -
branches/eam_branch_20071130/Ohana/src/libdvo/src/dvo_catalog_split.c
r15487 r15724 23 23 if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0; 24 24 25 /* save the current number so we can do partial updates */ 26 catalog[0].Naves_disk = Naverage; 27 catalog[0].Nmeas_disk = Nmeasure; 28 catalog[0].Nmiss_disk = Nmissing; 29 catalog[0].Nsecf_disk = Naverage * Nsecfilt; 30 31 /* these values are the number of elements loaded into memory */ 32 catalog[0].Naverage = 0; 33 catalog[0].Nmeasure = 0; 34 catalog[0].Nmissing = 0; 35 catalog[0].Nsecfilt = 0; 36 37 /* by default, an unloaded catalog is ready to accept more entries after the end of the table */ 38 catalog[0].Naves_off = catalog[0].Naves_disk; 39 catalog[0].Nmeas_off = catalog[0].Nmeas_disk; 40 catalog[0].Nmiss_off = catalog[0].Nmiss_disk; 41 catalog[0].Nsecf_off = catalog[0].Nsecf_disk; 42 25 43 /** Nsecfilt is unusual: it does not list the number of data items in the table 26 44 instead, the number of items is Nsecfilt * Naverage. **/ 27 catalog[0].Nsecfilt = Nsecfilt;28 29 /* default values */45 catalog[0].Nsecfilt = Nsecfilt; 46 47 /* default values, but we will assign these a valid value before we exit (even if empty) */ 30 48 catalog[0].average = NULL; 31 49 catalog[0].measure = NULL; … … 56 74 } 57 75 /* old versions of DVO stored one of the average magnitudes in Average. we save this if needed */ 58 catalog[0].average = FtableToAverage (&ftable, & catalog[0].Naverage, &catalog[0].catformat, &primary);76 catalog[0].average = FtableToAverage (&ftable, &Naverage, &catalog[0].catformat, &primary); 59 77 if (Naverage != catalog[0].Naverage) { 60 78 fprintf (stderr, "Warning: mismatch between Naverage in PHU and Table headers (%d vs %d)\n", Naverage, catalog[0].Naverage); 61 79 } 62 80 gfits_free_header (&header); 63 } 81 } else { 82 ALLOCATE (catalog[0].average, Average, 1); 83 } 64 84 65 85 /*** Measure Table ***/ … … 69 89 /* (Full Load) */ 70 90 if (catalog[0].catflags & LOAD_MEAS) { 91 /* in split mode, we need to init & open the corresponding measure file */ 71 92 ALLOCATE (measure, Catalog, 1); 72 93 dvo_catalog_init (measure, TRUE); 94 catalog[0].measure_catalog = measure; 73 95 74 96 /* get split filename from main header (paths relative to cpt file) */ … … 104 126 } 105 127 /* convert data format to internal */ 106 catalog[0].measure = FtableToMeasure (&ftable, & catalog[0].Nmeasure, &catalog[0].catformat);128 catalog[0].measure = FtableToMeasure (&ftable, &Nmeasure, &catalog[0].catformat); 107 129 if (Nmeasure != catalog[0].Nmeasure) { 108 130 fprintf (stderr, "Warning: mismatch between Nmeasure in PHU and Table headers (%d vs %d)\n", Nmeasure, catalog[0].Nmeasure); 109 131 } 110 catalog[0].Nmeas_off = 0;111 132 gfits_free_header (&header); 112 133 gfits_free_matrix (&matrix); 113 } 114 115 /* (Meta Load) */ 116 if (catalog[0].catflags & LOAD_MEAS_META) { 117 ALLOCATE (measure, Catalog, 1); 118 dvo_catalog_init (measure, TRUE); 119 120 /* get split filename from main header (paths relative to cpt file) */ 121 if (!gfits_scan (&catalog[0].header, "MEASURE", "%s", 1, string)) return (FALSE); 122 ALLOCATE (measure[0].filename, char, strlen(path) + strlen(string) + 2); 123 sprintf (measure[0].filename, "%s/%s", path, string); 124 125 /* lock & open catalog file */ 126 if (dvo_catalog_lock (measure, catalog[0].lockmode) != 1) { 127 fprintf (stderr, "cannot access measure file %s\n", measure[0].filename); 128 exit (2); 129 } 130 131 /* read PHU */ 132 if (!gfits_load_header (measure[0].f, &measure[0].header)) { 133 if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", measure[0].filename); 134 return (FALSE); 135 } 136 137 /* allocate dummy data for valid realloc */ 134 } else { 138 135 ALLOCATE (catalog[0].measure, Measure, 1); 139 140 /* set up the table size information */ 141 catalog[0].Nmeasure = 0; /* no rows loaded */ 142 catalog[0].Nmeas_off = Nmeasure; /* start of new entries */ 143 } 144 catalog[0].measure_catalog = measure; 136 } 145 137 146 138 /*** Missing Table ***/ … … 272 264 catalog[0].secfilt_catalog = secfilt; 273 265 274 /* save the current number so we can do partial updates */275 catalog[0].Nave_disk = Naverage;276 catalog[0].Nmeas_disk = Nmeasure;277 catalog[0].Nmiss_disk = Nmissing;278 279 266 return (TRUE); 280 267 }
Note:
See TracChangeset
for help on using the changeset viewer.
