Changeset 36627 for branches/eam_branches/ipp-20140206/ippTools/src
- Timestamp:
- Apr 1, 2014, 11:03:38 AM (12 years ago)
- Location:
- branches/eam_branches/ipp-20140206
- Files:
-
- 12 edited
-
. (modified) (1 prop)
-
ippTools/src (modified) (1 prop)
-
ippTools/src/detselect.c (modified) (3 diffs)
-
ippTools/src/detselect.h (modified) (1 diff)
-
ippTools/src/detselectConfig.c (modified) (2 diffs)
-
ippTools/src/difftool.c (modified) (2 diffs)
-
ippTools/src/disttool.c (modified) (1 diff)
-
ippTools/src/fftool.c (modified) (8 diffs)
-
ippTools/src/fftool.h (modified) (1 diff)
-
ippTools/src/fftoolConfig.c (modified) (2 diffs)
-
ippTools/src/laptool.c (modified) (2 diffs)
-
ippTools/src/remotetool.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140206
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20140206/ippTools/src
- Property svn:ignore
-
old new 48 48 releasetool 49 49 fftool 50 remotetool 51
-
- Property svn:ignore
-
branches/eam_branches/ipp-20140206/ippTools/src/detselect.c
r31058 r36627 29 29 static bool searchMode(pxConfig *config); 30 30 static bool selectMode(pxConfig *config); 31 static bool showMode(pxConfig *config); 32 31 33 32 34 # define MODECASE(caseName, func) \ … … 50 52 MODECASE(DETSELECT_MODE_SEARCH, searchMode); 51 53 MODECASE(DETSELECT_MODE_SELECT, selectMode); 54 MODECASE(DETSELECT_MODE_SHOW, showMode); 52 55 default: 53 56 psAbort("invalid option (this should not happen)"); … … 241 244 return true; 242 245 } 246 247 static bool showMode(pxConfig *config) 248 { 249 PS_ASSERT_PTR_NON_NULL(config, false); 250 251 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 252 253 psMetadata *where = psMetadataAlloc(); 254 255 PXOPT_COPY_STR(config->args, where, "-inst", "camera", "=="); 256 PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "=="); 257 PXOPT_COPY_STR(config->args, where, "-det_type", "det_type", "=="); 258 PXOPT_COPY_STR(config->args, where, "-type", "det_type", "=="); 259 260 psString query = pxDataGet("detselect_show.sql"); 261 if (!query) { 262 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 263 return false; 264 } 265 266 // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE 267 if (where && psListLength(where->list)) { 268 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 269 psStringAppend(&query, " AND %s", whereClause); 270 psFree(whereClause); 271 } 272 psFree(where); 273 274 // we choose the single detrend image which matches all criteria and has 275 // the latest insertion date 276 277 psStringAppend(&query, " ORDER BY registered DESC, iteration DESC"); 278 279 if (!p_psDBRunQuery(config->dbh, query)) { 280 psError(PS_ERR_UNKNOWN, false, "database error"); 281 psFree(query); 282 return false; 283 } 284 psFree(query); 285 286 psArray *output = p_psDBFetchResult(config->dbh); 287 if (!output) { 288 psError(PS_ERR_UNKNOWN, false, "database error"); 289 return false; 290 } 291 if (!psArrayLength(output)) { 292 // XXX check psError here 293 psError(PS_ERR_UNKNOWN, false, "no detRun rows found"); 294 psFree(output); 295 return true; 296 } 297 298 // negative simple so the default is true 299 if (!ippdbPrintMetadatas(stdout, output, "detRun", !simple)) { 300 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 301 psFree(output); 302 return false; 303 } 304 305 psFree(output); 306 return(true); 307 } -
branches/eam_branches/ipp-20140206/ippTools/src/detselect.h
r18561 r36627 27 27 DETSELECT_MODE_SEARCH, 28 28 DETSELECT_MODE_SELECT, 29 DETSELECT_MODE_SHOW 29 30 } detselectMode; 30 31 -
branches/eam_branches/ipp-20140206/ippTools/src/detselectConfig.c
r18561 r36627 65 65 psMetadataAddStr(selectArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 66 66 psMetadataAddBool(selectArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 67 68 // -show 69 psMetadata *showArgs = psMetadataAlloc(); 70 psMetadataAddStr(showArgs, PS_LIST_TAIL, "-inst", 0, "search by camera", NULL); 71 psMetadataAddStr(showArgs, PS_LIST_TAIL, "-telescope", 0, "search by telescope", NULL); 72 psMetadataAddStr(showArgs, PS_LIST_TAIL, "-det_type", 0, "search by detrend type", NULL); 73 psMetadataAddStr(showArgs, PS_LIST_TAIL, "-type", 0, "search by detrend type (alias for -det_type)", NULL); 74 psMetadataAddBool(showArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 67 75 68 76 psMetadata *argSets = psMetadataAlloc(); … … 71 79 PXOPT_ADD_MODE("-search", "search for an appropriate detrend", DETSELECT_MODE_SEARCH, searchArgs); 72 80 PXOPT_ADD_MODE("-select", "retreive detrend information", DETSELECT_MODE_SELECT, selectArgs); 81 PXOPT_ADD_MODE("-show", "show all active detrends of this type with constraints", DETSELECT_MODE_SHOW, showArgs); 73 82 74 83 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) { -
branches/eam_branches/ipp-20140206/ippTools/src/difftool.c
r36019 r36627 1349 1349 if (!mdok) { 1350 1350 psError(PXTOOLS_ERR_PROG, false, "exp_id not found"); 1351 if (!psDBRollback(config->dbh)) { 1352 psError(PS_ERR_UNKNOWN, false, "database error"); 1353 } 1354 return false; 1355 } 1356 psString warpDataGroup = psMetadataLookupStr(&mdok, row, "warpDataGroup"); 1357 if (!mdok) { 1358 psError(PXTOOLS_ERR_PROG, false, "warpDataGroup not found"); 1351 1359 if (!psDBRollback(config->dbh)) { 1352 1360 psError(PS_ERR_UNKNOWN, false, "database error"); … … 1391 1399 workdir, 1392 1400 label, 1393 data_group ? data_group : label,1401 data_group ? data_group : warpDataGroup, 1394 1402 dist_group, 1395 1403 reduction, -
branches/eam_branches/ipp-20140206/ippTools/src/disttool.c
r36248 r36627 413 413 414 414 magic = false; 415 } else if (!strcmp(stage, "ff")) { 416 runJoinStr = "fullForceRun.ff_id"; 417 query = pxDataGet("disttool_definebyquery_ff.sql"); 418 if (!query) { 419 psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement"); 420 psFree(where); 421 return(false); 422 } 423 424 if (label) { 425 psStringAppend(&query, " AND (fullForceRun.label = '%s') ", label); 426 } 427 if (dist_group) { 428 psStringAppend(&query, " AND (fullForceRun.dist_group = '%s') ", dist_group); 429 } 430 431 magic = false; 415 432 } else { 416 433 psError(PS_ERR_UNKNOWN, true, "unknown value for stage: %s", stage); -
branches/eam_branches/ipp-20140206/ippTools/src/fftool.c
r36441 r36627 44 44 static bool updatesummaryMode(pxConfig *config); 45 45 static bool summaryMode(pxConfig *config); 46 static bool exportrunMode(pxConfig *config); 47 static bool importrunMode(pxConfig *config); 48 static bool summaryMode(pxConfig *config); 46 49 47 50 static bool setfullForceRunState(pxConfig *config, psS64 sky_id, const char *state); … … 77 80 MODECASE(FFTOOL_MODE_UPDATESUMMARY, updatesummaryMode); 78 81 MODECASE(FFTOOL_MODE_SUMMARY, summaryMode); 82 MODECASE(FFTOOL_MODE_EXPORTRUN, exportrunMode); 83 MODECASE(FFTOOL_MODE_IMPORTRUN, importrunMode); 79 84 default: 80 85 psAbort("invalid option (this should not happen)"); … … 134 139 135 140 psMetadata *warpWhereMD = psMetadataAlloc(); 136 pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_label", " warpRun.label", "LIKE");137 pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_data_group"," warpRun.data_group", "LIKE");138 PXOPT_COPY_S64(config->args, warpWhereMD, "-select_warp_id", " warpRun.warp_id", "==");141 pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_label", "fullForceRun.label", "LIKE"); 142 pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_data_group","fullForceRun.data_group", "LIKE"); 143 PXOPT_COPY_S64(config->args, warpWhereMD, "-select_warp_id", "fullForceRun.warp_id", "=="); 139 144 if (!psListLength(warpWhereMD->list)) { 140 145 psError(PXTOOLS_ERR_CONFIG, false, "warp search parameters are required"); … … 150 155 } 151 156 152 PXOPT_COPY_STR(config->args, warpWhereMD, "-select_tess_id", " warpRun.tess_id", "==");153 pxAddLabelSearchArgs(config, warpWhereMD, "-select_filter", " warpRun.filter", "LIKE");157 PXOPT_COPY_STR(config->args, warpWhereMD, "-select_tess_id", "fullForceRun.tess_id", "=="); 158 pxAddLabelSearchArgs(config, warpWhereMD, "-select_filter", "fullForceRun.filter", "LIKE"); 154 159 if (!pxskycellAddWhere(config, warpWhereMD)) { 155 160 psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments"); … … 175 180 psString whereClause = psDBGenerateWhereConditionSQL(skycalWhereMD, NULL); 176 181 psStringAppend(&where, "\nAND %s", whereClause); 177 psStringAppend(&select, where);182 psStringAppend(&select, " %s", where); 178 183 psFree(whereClause); 179 184 psFree(skycalWhereMD); … … 504 509 PXOPT_COPY_STR(config->args, where, "-tess_id", "stackRun.tess_id", "LIKE"); 505 510 PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "LIKE"); 511 PXOPT_COPY_STR(config->args, where, "-filter", "stackRun.filter", "LIKE"); 506 512 PXOPT_COPY_S16(config->args, where, "-fault", "staticskyResult.fault", "=="); 507 513 pxskycellAddWhere(config, where); … … 864 870 PXOPT_COPY_STR(config->args, where, "-tess_id", "stackRun.tess_id", "LIKE"); 865 871 PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "LIKE"); 872 PXOPT_COPY_STR(config->args, where, "-filter", "stackRun.filter", "LIKE"); 866 873 PXOPT_COPY_S16(config->args, where, "-fault", "staticskyResult.fault", "=="); 867 874 pxskycellAddWhere(config, where); … … 933 940 return true; 934 941 } 942 943 bool exportrunMode(pxConfig *config) 944 { 945 typedef struct ExportTable { 946 char tableName[80]; 947 char sqlFilename[80]; 948 } ExportTable; 949 950 PS_ASSERT_PTR_NON_NULL(config, NULL); 951 952 // PXOPT_LOOKUP_S64(det_id, config->args, "-warp_id", true, false); 953 PXOPT_LOOKUP_STR(outfile, config->args, "-outfile", true, false); 954 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 955 // PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false); 956 957 FILE *f = fopen (outfile, "w"); 958 if (f == NULL) { 959 psError(PS_ERR_UNKNOWN, false, "failed to open output file"); 960 return false; 961 } 962 963 if (!pxExportVersion(config, f)) { 964 psError(PS_ERR_UNKNOWN, false, "failed to write dbversion output file"); 965 return false; 966 } 967 psMetadata *where = psMetadataAlloc(); 968 PXOPT_COPY_S64(config->args, where, "-ff_id", "ff_id", "=="); 969 970 ExportTable tables [] = { 971 {"fullForceRun", "fftool_export_run.sql"}, 972 {"fullForceInput", "fftool_export_input.sql"}, 973 {"fullForceResult", "fftool_export_result.sql"}, 974 {"fullForceSummary", "fftool_export_summary.sql"}, 975 }; 976 977 int numTables = sizeof(tables)/sizeof(tables[0]); 978 979 for (int i=0; i < numTables; i++) { 980 psString query = pxDataGet(tables[i].sqlFilename); 981 if (!query) { 982 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 983 return false; 984 } 985 986 if (where && psListLength(where->list)) { 987 psString whereClause = psDBGenerateWhereSQL(where, NULL); 988 psStringAppend(&query, " %s", whereClause); 989 psFree(whereClause); 990 } 991 992 // treat limit == 0 as "no limit" 993 if (limit) { 994 psString limitString = psDBGenerateLimitSQL(limit); 995 psStringAppend(&query, " %s", limitString); 996 psFree(limitString); 997 } 998 999 if (!p_psDBRunQuery(config->dbh, query)) { 1000 psError(PS_ERR_UNKNOWN, false, "database error"); 1001 psFree(query); 1002 return false; 1003 } 1004 psFree(query); 1005 1006 psArray *output = p_psDBFetchResult(config->dbh); 1007 if (!output) { 1008 psError(PS_ERR_UNKNOWN, false, "database error"); 1009 return false; 1010 } 1011 if (!psArrayLength(output)) { 1012 psError(PS_ERR_UNKNOWN, true, "no rows found"); 1013 psFree(output); 1014 return false; 1015 } 1016 1017 // we must write the export table in non-simple (true) format 1018 if (!ippdbPrintMetadatas(f, output, tables[i].tableName, true)) { 1019 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1020 psFree(output); 1021 return false; 1022 } 1023 psFree(output); 1024 } 1025 1026 fclose (f); 1027 1028 return true; 1029 } 1030 1031 bool importrunMode(pxConfig *config) 1032 { 1033 unsigned int nFail; 1034 1035 int numImportTables = 3; 1036 1037 char tables[3] [80] = {"fullForceInput", "fullForceResult", "fullForceSummary"}; 1038 1039 PS_ASSERT_PTR_NON_NULL(config, NULL); 1040 1041 PXOPT_LOOKUP_STR(infile, config->args, "-infile", true, false); 1042 1043 psMetadata *input = psMetadataConfigRead (NULL, &nFail, infile, false); 1044 1045 #ifdef notdef 1046 fprintf (stderr, "---- input ----\n"); 1047 psMetadataPrint (stderr, input, 1); 1048 #endif 1049 1050 if (!pxCheckImportVersion(config, input)) { 1051 psError(PS_ERR_UNKNOWN, false, "pxCheckImportVersion failed"); 1052 return false; 1053 } 1054 1055 psMetadataItem *item = psMetadataLookup (input, "fullForceRun"); 1056 psAssert (item, "entry not in input?"); 1057 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 1058 1059 psMetadataItem *entry = psListGet (item->data.list, 0); 1060 assert (entry); 1061 assert (entry->type == PS_DATA_METADATA); 1062 fullForceRunRow *fullForceRun = fullForceRunObjectFromMetadata (entry->data.md); 1063 fullForceRunInsertObject (config->dbh, fullForceRun); 1064 1065 // fprintf (stdout, "---- warp run ----\n"); 1066 // psMetadataPrint (stderr, entry->data.md, 1); 1067 1068 for (int i = 0; i < numImportTables; i++) { 1069 item = psMetadataLookup (input, tables[i]); 1070 psAssert (item, "entry not in input?"); 1071 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 1072 1073 switch (i) { 1074 case 0: 1075 for (int i = 0; i < item->data.list->n; i++) { 1076 entry = psListGet (item->data.list, i); 1077 assert (entry); 1078 assert (entry->type == PS_DATA_METADATA); 1079 fullForceInputRow *fullForceInput = fullForceInputObjectFromMetadata (entry->data.md); 1080 fullForceInputInsertObject (config->dbh, fullForceInput); 1081 1082 // fprintf (stdout, "---- row %d ----\n", i); 1083 // psMetadataPrint (stderr, entry->data.md, 1); 1084 } 1085 break; 1086 1087 case 1: 1088 for (int i = 0; i < item->data.list->n; i++) { 1089 entry = psListGet (item->data.list, i); 1090 assert (entry); 1091 assert (entry->type == PS_DATA_METADATA); 1092 fullForceResultRow *fullForceResult = fullForceResultObjectFromMetadata (entry->data.md); 1093 fullForceResultInsertObject (config->dbh, fullForceResult); 1094 1095 // fprintf (stdout, "---- row %d ----\n", i); 1096 // psMetadataPrint (stderr, entry->data.md, 1); 1097 } 1098 break; 1099 1100 case 2: 1101 for (int i = 0; i < item->data.list->n; i++) { 1102 entry = psListGet (item->data.list, i); 1103 assert (entry); 1104 assert (entry->type == PS_DATA_METADATA); 1105 fullForceSummaryRow *fullForceSummary = fullForceSummaryObjectFromMetadata (entry->data.md); 1106 fullForceSummaryInsertObject (config->dbh, fullForceSummary); 1107 1108 // fprintf (stdout, "---- row %d ----\n", i); 1109 // psMetadataPrint (stderr, entry->data.md, 1); 1110 } 1111 break; 1112 } 1113 } 1114 return true; 1115 } -
branches/eam_branches/ipp-20140206/ippTools/src/fftool.h
r36441 r36627 36 36 FFTOOL_MODE_REVERTSUMMARY, 37 37 FFTOOL_MODE_UPDATESUMMARY, 38 FFTOOL_MODE_SUMMARY 38 FFTOOL_MODE_SUMMARY, 39 FFTOOL_MODE_EXPORTRUN, 40 FFTOOL_MODE_IMPORTRUN, 39 41 } fftoolMode; 40 42 -
branches/eam_branches/ipp-20140206/ippTools/src/fftoolConfig.c
r36441 r36627 186 186 pxskycellAddArguments(revertsummaryArgs); 187 187 188 // -exportrun 189 psMetadata *exportrunArgs = psMetadataAlloc(); 190 psMetadataAddS64(exportrunArgs, PS_LIST_TAIL, "-ff_id", 0, "export this full force ID (required)", 0); 191 psMetadataAddStr(exportrunArgs, PS_LIST_TAIL, "-outfile", 0, "export to this file (required)", NULL); 192 psMetadataAddU64(exportrunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 193 // psMetadataAddBool(exportrunArgs, PS_LIST_TAIL, "-clean", 0, "export run in cleaned state", false); 194 195 // -importrun 196 psMetadata *importrunArgs = psMetadataAlloc(); 197 psMetadataAddStr(importrunArgs, PS_LIST_TAIL, "-infile", 0, "import from this file (required)", NULL); 198 199 200 188 201 psFree(now); 189 202 … … 203 216 PXOPT_ADD_MODE("-revertsummary", "revert faulted summary", FFTOOL_MODE_REVERTSUMMARY, revertsummaryArgs); 204 217 PXOPT_ADD_MODE("-summary", "list summary results", FFTOOL_MODE_SUMMARY, summaryArgs); 218 PXOPT_ADD_MODE("-exportrun", "list summary results", FFTOOL_MODE_EXPORTRUN, exportrunArgs); 219 PXOPT_ADD_MODE("-importrun", "list summary results", FFTOOL_MODE_IMPORTRUN, importrunArgs); 205 220 206 221 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) { -
branches/eam_branches/ipp-20140206/ippTools/src/laptool.c
r35568 r36627 1170 1170 // we only want projection cells which do not already of an entry 1171 1171 psStringAppend(&query, "\nWHERE lapGroup.projection_cell IS NULL\n"); 1172 psStringAppend(&query, "\nORDER by projection_cell\n"); 1172 // Projection cell's don't have a convienient order. Queue runs in the order of lap_id 1173 // psStringAppend(&query, "\nORDER by projection_cell\n"); 1174 psStringAppend(&query, "\nORDER by lap_id_0\n"); 1173 1175 1174 1176 if (limit) { … … 1289 1291 psFree(whereClause); 1290 1292 } 1293 psStringAppend(&query, "\nGROUP by projection_cell ORDER by MIN(lap_id)"); 1291 1294 if (limit) { 1292 1295 psString limitString = psDBGenerateLimitSQL(limit); -
branches/eam_branches/ipp-20140206/ippTools/src/remotetool.c
r36536 r36627 149 149 psFree(limitString); 150 150 } 151 if (!p_psDBRunQuery F(config->dbh, query)) {151 if (!p_psDBRunQuery(config->dbh, query)) { 152 152 psError(PS_ERR_UNKNOWN, false, "database error"); 153 153 psFree(query); … … 313 313 { 314 314 PS_ASSERT_PTR_NON_NULL(config, false); 315 PXOPT_LOOKUP_S64(remote_id, config->args, "-remote_id", true, false);315 // PXOPT_LOOKUP_S64(remote_id, config->args, "-remote_id", true, false); 316 316 317 317 psMetadata *where = psMetadataAlloc(); … … 341 341 { 342 342 PS_ASSERT_PTR_NON_NULL(config, false); 343 PXOPT_LOOKUP_S64(remote_id, config->args, "-remote_id", true, false);343 // PXOPT_LOOKUP_S64(remote_id, config->args, "-remote_id", true, false); 344 344 345 345 psMetadata *where = psMetadataAlloc();
Note:
See TracChangeset
for help on using the changeset viewer.
