- Timestamp:
- Jan 4, 2016, 1:12:14 PM (11 years ago)
- Location:
- trunk/Ohana/src
- Files:
-
- 1 added
- 10 edited
-
dvomerge/Makefile (modified) (7 diffs)
-
dvomerge/include/dvomerge.h (modified) (3 diffs)
-
dvomerge/src/args.c (modified) (4 diffs)
-
dvomerge/src/cptlist.c (added)
-
dvomerge/src/dvomerge.c (modified) (3 diffs)
-
dvomerge/src/dvomergeFromList.c (modified) (4 diffs)
-
dvomerge/src/dvomergeUpdate.c (modified) (2 diffs)
-
dvomerge/src/dvomergeUpdate_catalogs.c (modified) (3 diffs)
-
dvomerge/src/dvomerge_client.c (modified) (2 diffs)
-
libdvo/include/dvo.h (modified) (1 diff)
-
libdvo/src/skyregion_ops.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/dvomerge/Makefile
r39300 r39301 25 25 dvoutils : $(BIN)/dvoutils.$(ARCH) 26 26 27 # all: dvomerge dvomerge_client dvoconvert dvosecfilt dvosecfilt_client dvorepair dvoverify dvoverify_client dvoutils 28 all: dvoconvert dvosecfilt dvosecfilt_client dvorepair dvoverify dvoverify_client dvoutils 29 30 # $(SRC)/dvomergeContinue.$(ARCH).o 27 all: dvomerge dvomerge_client dvoconvert dvosecfilt dvosecfilt_client dvorepair dvoverify dvoverify_client dvoutils 31 28 32 29 DVOMERGE = \ … … 37 34 $(SRC)/dvomergeUpdate_threaded.$(ARCH).o \ 38 35 $(SRC)/dvomergeHistory.$(ARCH).o \ 39 $(SRC)/dvomergeFromList.$(ARCH).o \40 36 $(SRC)/dvomergeImageIDs.$(ARCH).o \ 41 37 $(SRC)/dvo_image_merge_dbs.$(ARCH).o \ … … 47 43 $(SRC)/args.$(ARCH).o \ 48 44 $(SRC)/psps_ids.$(ARCH).o \ 45 $(SRC)/cptlist.$(ARCH).o \ 49 46 $(SRC)/SkyTablePopulatedRange.$(ARCH).o \ 50 47 $(SRC)/LoadCatalog.$(ARCH).o \ … … 72 69 $(SRC)/args.$(ARCH).o \ 73 70 $(SRC)/psps_ids.$(ARCH).o \ 71 $(SRC)/cptlist.$(ARCH).o \ 74 72 $(SRC)/SkyTablePopulatedRange.$(ARCH).o \ 75 73 $(SRC)/LoadCatalog.$(ARCH).o \ … … 91 89 $(SRC)/help.$(ARCH).o \ 92 90 $(SRC)/args.$(ARCH).o \ 91 $(SRC)/cptlist.$(ARCH).o \ 93 92 $(SRC)/SkyTablePopulatedRange.$(ARCH).o \ 94 93 $(SRC)/LoadCatalog.$(ARCH).o \ … … 105 104 $(SRC)/Shutdown.$(ARCH).o \ 106 105 $(SRC)/help.$(ARCH).o \ 106 $(SRC)/cptlist.$(ARCH).o \ 107 107 $(SRC)/args.$(ARCH).o 108 108 … … 117 117 $(SRC)/Shutdown.$(ARCH).o \ 118 118 $(SRC)/help.$(ARCH).o \ 119 $(SRC)/cptlist.$(ARCH).o \ 119 120 $(SRC)/args.$(ARCH).o 120 121 -
trunk/Ohana/src/dvomerge/include/dvomerge.h
r39300 r39301 45 45 char *UPDATE_CATFORMAT; 46 46 char *UPDATE_CATCOMPRESS; 47 char *RESTRICT_CPT; 47 48 char *CPTLIST_FILENAME; 49 char **CPTLIST; 50 int NCPTLIST; 48 51 49 52 int MATCH_BY_EXTERN_ID; … … 208 211 int dvomergeFromList PROTO((int argc, char **argv)); 209 212 int dvomergeUpdate_threaded PROTO((int argc, char **argv)); 210 int dvomergeUpdate_catalogs PROTO((char *input, char *output, Sky Table *outsky, SkyList *inlist, int NsecfiltInput, int NsecfiltOutput, IDmapType *IDmap, int *secfiltMap));213 int dvomergeUpdate_catalogs PROTO((char *input, char *output, SkyList *inlist, SkyTable *outsky, int NsecfiltInput, int NsecfiltOutput, IDmapType *IDmap, int *secfiltMap)); 211 214 212 215 int dvo_image_match_dbs_by_time_and_photcode PROTO((IDmapType *IDmap, FITS_DB *tgt, FITS_DB *src)); … … 262 265 int dvorepairFixStackIDs (int argc, char **argv); 263 266 267 char **load_cptlist (char *filename, int *nlist); -
trunk/Ohana/src/dvomerge/src/args.c
r39300 r39301 77 77 } 78 78 79 RESTRICT_CPT = NULL; 79 NCPTLIST = 0; 80 CPTLIST = NULL; 81 CPTLIST_FILENAME = NULL; 80 82 if ((N = get_argument (*argc, argv, "-restrict-cpt"))) { 81 83 remove_argument (N, argc, argv); 82 RESTRICT_CPT = strcreate (argv[N]); 84 CPTLIST_FILENAME = strcreate (argv[N]); 85 CPTLIST = load_cptlist (CPTLIST_FILENAME, &NCPTLIST); 83 86 remove_argument (N, argc, argv); 84 87 } … … 122 125 NTHREADS = MAX(0, atoi(argv[N])); 123 126 remove_argument (N, argc, argv); 127 myAbort ("threads deprecated for now"); 124 128 } 125 129 … … 266 270 } 267 271 268 RESTRICT_CPT = NULL; 272 NCPTLIST = 0; 273 CPTLIST = NULL; 269 274 if ((N = get_argument (*argc, argv, "-restrict-cpt"))) { 270 275 remove_argument (N, argc, argv); 271 RESTRICT_CPT = strcreate (argv[N]);276 CPTLIST = load_cptlist (argv[N], &NCPTLIST); 272 277 remove_argument (N, argc, argv); 273 278 } … … 311 316 NTHREADS = MAX(0, atoi(argv[N])); 312 317 remove_argument (N, argc, argv); 318 myAbort ("threads deprecated for now"); 313 319 } 314 320 -
trunk/Ohana/src/dvomerge/src/dvomerge.c
r38553 r39301 11 11 12 12 if (argc == 6) { 13 if (!strcasecmp (argv[2], "and")) { 14 if (VERIFY) { 15 fprintf (stderr, "WARNING / ERROR : dvomerge (input1) and (input2) into (output) : VERIFY mode not implemented\n"); 16 exit (3); 17 } 18 if (IMAGES_ONLY) { 19 fprintf (stderr, "ERROR : dvomerge (input1) and (input2) into (output) : not compatible with '-images-only'\n"); 20 exit (5); 21 } 22 dvomergeCreate (argc, argv); 23 } else { 24 if (VERIFY) { 25 fprintf (stderr, "WARNING / ERROR : dvomerge (input) into (output) from (list) : VERIFY mode not implemented\n"); 26 exit (3); 27 } 28 if (IMAGES_ONLY) { 29 fprintf (stderr, "ERROR : dvomerge (input) input (output) from (list) : not compatible with '-images-only'\n"); 30 exit (5); 31 } 32 dvomergeFromList (argc, argv); 13 if (strcasecmp (argv[2], "and")) dvomerge_usage(); 14 if (VERIFY) { 15 fprintf (stderr, "WARNING / ERROR : dvomerge (input1) and (input2) into (output) : VERIFY mode not implemented\n"); 16 exit (3); 33 17 } 18 if (IMAGES_ONLY) { 19 fprintf (stderr, "ERROR : dvomerge (input1) and (input2) into (output) : not compatible with '-images-only'\n"); 20 exit (5); 21 } 22 dvomergeCreate (argc, argv); 34 23 } 24 35 25 if ((argc == 4) || (argc == 5)) { 36 26 if (NTHREADS) { … … 40 30 } 41 31 } 32 42 33 dvomerge_args_free (); 43 34 ohana_memcheck (TRUE); … … 53 44 we also have varients on Update: 54 45 Continue : dvomerge (in) into (out) continue -- merge only unmerged tables into the existing db 55 From List : dvomerge (in) into (out) from (list) -- merge only specified tables into the existing db56 46 57 47 neither of the 2 above modes update the image table -
trunk/Ohana/src/dvomerge/src/dvomergeFromList.c
r39300 r39301 1 1 # include "dvomerge.h" 2 3 char **load_cptlist (char *filename, int *nlist);4 2 5 3 // merge from list implies 'continue' (ie, we must have already done a partial merge) … … 25 23 listname = argv[5]; 26 24 25 int Ncptlist; 27 26 char *cptlist = load_cptlist (listname, &Ncptlist); 28 27 … … 89 88 90 89 // loop over the populated input regions 91 for (i = 0; i < N list; i++) {92 if (VERBOSE) fprintf (stderr, "input: %s\n", list[i]);90 for (i = 0; i < Ncptlist; i++) { 91 if (VERBOSE) fprintf (stderr, "input: %s\n", cptlist[i]); 93 92 94 sprintf (inputfile, "%s/%s", input, list[i]);95 sprintf (outputfile, "%s/%s", output, list[i]);93 sprintf (inputfile, "%s/%s", input, cptlist[i]); 94 sprintf (outputfile, "%s/%s", output, cptlist[i]); 96 95 97 96 OutputStatus *outstat = OutputStatusInit (1); … … 161 160 } 162 161 163 char **load_cptlist (char *filename, int *nlist) {164 165 int NLIST = 100;166 167 char **list = NULL;168 ALLOCATE(list, char *, NLIST);169 170 int i;171 for (i = 0; i < NLIST; i++) {172 ALLOCATE(list[i], char, DVO_MAX_PATH);173 memset(list[i], 0, DVO_MAX_PATH);174 }175 176 FILE *listfile = fopen(filename, "r");177 myAssert(listfile, "error opening list");178 179 for (i = 0; fscanf (listfile, "%s", list[i]) != EOF; i++) {180 if (i == NLIST - 1) {181 NLIST += 100;182 REALLOCATE(list, char *, NLIST);183 for (j = i + 1; j < NLIST; j++) {184 ALLOCATE(list[j], char, DVO_MAX_PATH);185 memset(list[j], 0, DVO_MAX_PATH);186 }187 }188 }189 *nlist = i;190 fclose(listfile);191 192 return list;193 } -
trunk/Ohana/src/dvomerge/src/dvomergeUpdate.c
r39300 r39301 96 96 SkyTableSetFilenames (insky, input, "cpt"); 97 97 98 // XXX apply this...generate the subset matching the user-selected region98 // generate the subset matching the user-selected region 99 99 inlist = SkyListByPatch (insky, -1, &UserPatch); 100 100 101 101 // modify the list if we are restricting: 102 inlist = SkyListSubset (inlist, cptlist); 102 if (CPTLIST) { 103 inlist = SkyListMatchList (inlist, CPTLIST, NCPTLIST); 104 } 103 105 104 106 // generate an output table populated at the desired depth … … 117 119 SetPhotcodeTable(NULL); 118 120 119 int status = dvomergeUpdate_catalogs (input, output, outsky, inlist, NsecfiltInput, NsecfiltOutput, &IDmap, secfiltMap);121 int status = dvomergeUpdate_catalogs (input, output, inlist, outsky, NsecfiltInput, NsecfiltOutput, &IDmap, secfiltMap); 120 122 121 123 // save the output sky table copy -
trunk/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c
r39299 r39301 12 12 int dvomergeUpdate_parallel_group (HostTableGroup *group, char *absinput, char *absoutput); 13 13 14 int dvomergeUpdate_catalogs (char *input, char *output, Sky Table *outsky, SkyList *inlist, int NsecfiltInput, int NsecfiltOutput, IDmapType *IDmap, int *secfiltMap) {14 int dvomergeUpdate_catalogs (char *input, char *output, SkyList *inlist, SkyTable *outsky, int NsecfiltInput, int NsecfiltOutput, IDmapType *IDmap, int *secfiltMap) { 15 15 16 16 off_t i, j; … … 76 76 outlist = SkyListByBounds (outsky, -1, inlist[0].regions[i][0].Rmin - dPos, inlist[0].regions[i][0].Rmax + dPos, inlist[0].regions[i][0].Dmin - dPos, inlist[0].regions[i][0].Dmax + dPos); 77 77 } 78 79 if (CPTLIST) { 80 outlist = SkyListMatchList (outlist, CPTLIST, NCPTLIST); 81 } 82 83 // XXX validate MATCHED_TABLES 84 myAssert (outlist->Nregions == inlist->Nregions, "oops"); 78 85 79 86 OutputStatus *outstat = OutputStatusInit (outlist->Nregions); … … 303 310 if (UPDATE_CATFORMAT) { strextend (&command, "-update-catformat %s", UPDATE_CATFORMAT); } 304 311 if (UPDATE_CATCOMPRESS) { strextend (&command, "-update-catcompress %s", UPDATE_CATCOMPRESS); } 312 if (CPTLIST_FILENAME) { strextend (&command, "-restrict-cpt %s", CPTLIST_FILENAME); } 305 313 if (REPAIR_BY_OBJID) { strextend (&command, "-repair-by-objid"); } 306 314 -
trunk/Ohana/src/dvomerge/src/dvomerge_client.c
r38986 r39301 75 75 inlist = SkyListByPatch (insky, -1, &UserPatch); 76 76 77 // modify the list if we are restricting: 78 if (CPTLIST) { 79 inlist = SkyListMatchList (inlist, CPTLIST, NCPTLIST); 80 } 81 77 82 // generate an output table populated at the desired depth 78 83 outsky = SkyTableLoadOptimal (output, NULL, GSCFILE, TRUE, SKY_DEPTH, VERBOSE); … … 86 91 if (REPLACE_TYCHO) replace_tycho_init(); 87 92 88 dvomergeUpdate_catalogs (input, output, outsky, inlist, NsecfiltInput, NsecfiltOutput, IDmap, secfiltMap);93 dvomergeUpdate_catalogs (input, output, inlist, outsky, NsecfiltInput, NsecfiltOutput, IDmap, secfiltMap); 89 94 90 95 exit (0); -
trunk/Ohana/src/libdvo/include/dvo.h
r39293 r39301 1071 1071 SkyTable *SkyTableLoadOptimal PROTO((char *catdir, char *SKYFILE, char *GSCFILE, int readwrite, int depth, int VERBOSE)); 1072 1072 int SkyTableSetDepth PROTO((SkyTable *sky, int depth)); 1073 SkyList *SkyListMatchList PROTO((SkyList *inlist, char **cptlist, int Ncptlist)); 1073 1074 SkyList *SkyRegionByIndex PROTO((SkyTable *table, int index)); 1074 1075 SkyList *SkyRegionByCPT PROTO((SkyTable *table, char *filename)); -
trunk/Ohana/src/libdvo/src/skyregion_ops.c
r38553 r39301 154 154 } 155 155 } 156 list[0].Nregions = N; 157 return (list); 158 } 159 160 /* find regions at all levels which match list of names */ 161 SkyList *SkyListMatchList (SkyList *inlist, char **cptlist, int Ncptlist) { 162 163 int i, j; 164 SkyList *list; 165 166 int N = 0; 167 int NREGIONS = 10; 168 ALLOCATE (list, SkyList, 1); 169 ALLOCATE (list[0].regions, SkyRegion *, NREGIONS); 170 ALLOCATE (list[0].filename, char *, NREGIONS); 171 list[0].Nregions = N; 172 list[0].ownElements = FALSE; // this list is only holding a view to the elements 173 strcpy (list[0].hosts, inlist[0].hosts); 174 175 SkyRegion **regions = inlist[0].regions; 176 177 for (i = 0; i < inlist[0].Nregions; i++) { 178 int found = FALSE; 179 for (j = 0; !found && (j < Ncptlist); j++) { 180 int Nchar = strlen (cptlist[j]); 181 if (strncasecmp (regions[i][0].name, cptlist[j], Nchar)) continue; 182 183 list[0].regions[N] = regions[i]; 184 list[0].filename[N] = inlist[0].filename[i]; 185 N++; 186 if (N >= NREGIONS) { 187 NREGIONS += 10; 188 REALLOCATE (list[0].regions, SkyRegion *, NREGIONS); 189 REALLOCATE (list[0].filename, char *, NREGIONS); 190 } 191 found = TRUE; 192 } 193 // we do not care if one of the regions does not match. do we care if any of the 194 // cptfile do not match? 195 } 196 SkyListFree (inlist); 197 156 198 list[0].Nregions = N; 157 199 return (list);
Note:
See TracChangeset
for help on using the changeset viewer.
