Changeset 18468
- Timestamp:
- Jul 11, 2008, 8:30:31 AM (18 years ago)
- Location:
- branches/eam_branch_20080706/ippTools
- Files:
-
- 9 added
- 22 edited
-
share/dettool_addprocessedexp.sql (added)
-
share/dettool_childlessrun.sql (added)
-
share/dettool_definebydetrun.sql (added)
-
share/dettool_input.sql (added)
-
share/dettool_normalizedimfile.sql (added)
-
share/dettool_pending.sql (added)
-
share/dettool_processedimfile.sql (added)
-
share/dettool_stacked.sql (added)
-
share/dettool_tonormalize.sql (added)
-
src/caltoolConfig.c (modified) (1 diff)
-
src/camtool.c (modified) (15 diffs)
-
src/camtoolConfig.c (modified) (2 diffs)
-
src/chiptoolConfig.c (modified) (1 diff)
-
src/detselect.c (modified) (4 diffs)
-
src/detselect.h (modified) (1 diff)
-
src/detselectConfig.c (modified) (2 diffs)
-
src/dettool.c (modified) (50 diffs)
-
src/dettoolConfig.c (modified) (3 diffs)
-
src/difftoolConfig.c (modified) (1 diff)
-
src/flatcorrConfig.c (modified) (1 diff)
-
src/guidetoolConfig.c (modified) (1 diff)
-
src/magictoolConfig.c (modified) (1 diff)
-
src/pstamptoolConfig.c (modified) (1 diff)
-
src/pxconfig.c (modified) (2 diffs)
-
src/pxconfig.h (modified) (1 diff)
-
src/pxinjectConfig.c (modified) (1 diff)
-
src/pxtools.h (modified) (1 diff)
-
src/pztoolConfig.c (modified) (1 diff)
-
src/regtoolConfig.c (modified) (2 diffs)
-
src/stacktoolConfig.c (modified) (1 diff)
-
src/warptoolConfig.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20080706/ippTools/src/caltoolConfig.c
r18172 r18468 106 106 psFree(modes); 107 107 108 // setup search criterion109 #define addWhereStr(name) \110 { \111 psString str = NULL; \112 bool status = false; \113 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \114 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\115 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \116 psFree(config); \117 return NULL; \118 } \119 } \120 }121 122 108 // generate SQL where clause 123 109 config->where = psMetadataAlloc(); 124 110 125 addWhereStr(det_id); 126 { 127 // XXX this is broke because you can't specify -iteration 0 128 psMetadataItem *item = psMetadataLookup(config->args, "-iteration"); 129 if (item && psStrcasestr(item->comment, "found")) { 130 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, "iteration", 0, "==", item->data.S32)) { 131 psError(PS_ERR_UNKNOWN, false, "failed to add item iteration"); 132 psFree(config); 133 return NULL; 134 } 135 } 136 } 137 138 addWhereStr(det_id); 139 140 // convert '-code' to 'fault' 141 { 142 psS16 fault = 0; 143 bool status = false; 144 if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) { 145 if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) { 146 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 147 psFree(config); 148 return NULL; 149 } 150 } 151 } 111 PXOPT_ADD_WHERE_STR(det_id); 112 PXOPT_ADD_WHERE_S32(iteration); 113 PXOPT_ADD_WHERE_S16_ALIAS("-code", "fault"); 152 114 153 115 if (config->where->list->n < 1) { -
branches/eam_branch_20080706/ippTools/src/camtool.c
r18467 r18468 110 110 PXOPT_COPY_STR(config->args, where, "-reduction", "reduction", "=="); 111 111 PXOPT_COPY_STR(config->args, where, "-filter", "filter", "=="); 112 113 112 PXOPT_COPY_F64(config->args, where, "-airmass_min", "airmass", ">="); 114 113 PXOPT_COPY_F64(config->args, where, "-airmass_max", "airmass", "<"); … … 162 161 } 163 162 163 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 164 164 if (where && psListLength(where->list)) { 165 165 psString whereClause = psDBGenerateWhereSQL(where, NULL); … … 263 263 PXOPT_COPY_STR(config->args, where, "-reduction", "reduction", "=="); 264 264 PXOPT_COPY_STR(config->args, where, "-filter", "filter", "=="); 265 266 265 PXOPT_COPY_F64(config->args, where, "-airmass_min", "airmass", ">="); 267 266 PXOPT_COPY_F64(config->args, where, "-airmass_max", "airmass", "<"); … … 334 333 PS_ASSERT_PTR_NON_NULL(config, false); 335 334 335 psMetadata *where = psMetadataAlloc(); 336 PXOPT_COPY_S64(config->args, where, "-cam_id", "cam_id", "=="); 337 PXOPT_COPY_S64(config->args, where, "-chip_id", "chip_id", "=="); 338 336 339 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 337 340 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); … … 343 346 } 344 347 345 if (config->where) { 346 psString whereClause = psDBGenerateWhereSQL(config->where, NULL); 347 psStringAppend(&query, " %s", whereClause); 348 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 349 if (psListLength(where->list)) { 350 psString whereClause = psDBGenerateWhereSQL(where, NULL); 351 psStringAppend(&query, "%s", whereClause); 348 352 psFree(whereClause); 349 353 } 354 psFree(where); 350 355 351 356 // treat limit == 0 as "no limit" … … 390 395 PS_ASSERT_PTR_NON_NULL(config, false); 391 396 397 psMetadata *where = psMetadataAlloc(); 398 PXOPT_COPY_S64(config->args, where, "-cam_id", "cam_id", "=="); 399 PXOPT_COPY_S64(config->args, where, "-chip_id", "chip_id", "=="); 400 PXOPT_COPY_STR(config->args, where, "-class", "class", "=="); 401 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 402 392 403 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 393 404 … … 398 409 } 399 410 400 if (config->where) { 401 psString whereClause = psDBGenerateWhereSQL(config->where, NULL); 402 psStringAppend(&query, " %s", whereClause); 411 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 412 if (psListLength(where->list)) { 413 psString whereClause = psDBGenerateWhereSQL(where, NULL); 414 psStringAppend(&query, "%s", whereClause); 403 415 psFree(whereClause); 404 416 } 417 psFree(where); 405 418 406 419 if (!p_psDBRunQuery(config->dbh, query)) { … … 463 476 PXOPT_LOOKUP_F32(dtime_astrom, config->args, "-dtime_astrom", false, false); 464 477 PXOPT_LOOKUP_STR(hostname, config->args, "-hostname", false, false); 465 PXOPT_LOOKUP_F32(n_stars, config->args, "-n_stars", false, false); 466 PXOPT_LOOKUP_F32(n_extended, config->args, "-n_extended", false, false); 467 if (n_extended < 0) { 468 psError(PS_ERR_UNKNOWN, true, "-n_extended is required"); 469 return false; 470 } 471 PXOPT_LOOKUP_F32(n_cr, config->args, "-n_cr", false, false); 472 if (n_cr < 0) { 473 psError(PS_ERR_UNKNOWN, true, "-n_cr is required"); 474 return false; 475 } 476 PXOPT_LOOKUP_F32(n_astrom, config->args, "-n_astrom", false, false); 477 if (n_astrom < 0) { 478 psError(PS_ERR_UNKNOWN, true, "-n_astrom is required"); 479 return false; 480 } 481 478 PXOPT_LOOKUP_S32(n_stars, config->args, "-n_stars", false, false); 479 PXOPT_LOOKUP_S32(n_extended, config->args, "-n_extended", false, false); 480 PXOPT_LOOKUP_S32(n_cr, config->args, "-n_cr", false, false); 481 PXOPT_LOOKUP_S32(n_astrom, config->args, "-n_astrom", false, false); 482 482 PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", false, false); 483 484 // default485 483 PXOPT_LOOKUP_S16(code, config->args, "-code", false, false); 484 485 // generate restrictions 486 psMetadata *where = psMetadataAlloc(); 487 PXOPT_COPY_S64(config->args, where, "-cam_id", "cam_id", "=="); 486 488 487 489 psString query = pxDataGet("camtool_find_pendingexp.sql"); … … 491 493 } 492 494 493 { 494 // build a query to search by cam_id 495 psMetadata *where = psMetadataAlloc(); 496 if (cam_id) { 497 if (!psMetadataAddS64(where, PS_LIST_TAIL, "cam_id", 0, "==", cam_id)) { 498 psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id"); 499 psFree(where); 500 psFree(query); 501 return false; 502 } 503 } 504 495 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 496 if (psListLength(where->list)) { 505 497 psString whereClaus = psDBGenerateWhereSQL(where, NULL); 506 psFree(where); 507 if (whereClaus) { 508 psStringAppend(&query, " %s", whereClaus); 509 psFree(whereClaus); 510 } 511 512 } 498 psStringAppend(&query, "%s", whereClaus); 499 psFree(whereClaus); 500 } 501 psFree(where); 513 502 514 503 if (!p_psDBRunQuery(config->dbh, query)) { … … 640 629 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false); 641 630 631 // generate restrictions 632 psMetadata *where = psMetadataAlloc(); 633 PXOPT_COPY_S64(config->args, where, "-cam_id", "cam_id", "=="); 634 PXOPT_COPY_S64(config->args, where, "-chip_id", "chip_id", "=="); 635 642 636 psString query = pxDataGet("camtool_find_processedexp.sql"); 643 637 if (!query) { … … 646 640 } 647 641 648 if (config->where) { 649 psString whereClause = psDBGenerateWhereConditionSQL(config->where, NULL); 642 // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE 643 if (psListLength(where->list)) { 644 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 650 645 psStringAppend(&query, " AND %s", whereClause); 651 646 psFree(whereClause); 652 647 } 648 psFree(where); 653 649 654 650 if (faulted) { … … 716 712 PXOPT_COPY_STR(config->args, where, "-reduction", "reduction", "=="); 717 713 PXOPT_COPY_STR(config->args, where, "-filter", "filter", "=="); 718 719 PXOPT_COPY_F64(config->args, where, "-airmass_min", "airmass", ">="); 720 PXOPT_COPY_F64(config->args, where, "-airmass_max", "airmass", "<"); 714 PXOPT_COPY_F32(config->args, where, "-airmass_min", "airmass", ">="); 715 PXOPT_COPY_F32(config->args, where, "-airmass_max", "airmass", "<"); 721 716 PXOPT_COPY_F64(config->args, where, "-ra_min", "ra", ">="); 722 717 PXOPT_COPY_F64(config->args, where, "-ra_max", "ra", "<"); … … 745 740 PXOPT_COPY_F32(config->args, where, "-solang_max", "solang", "<"); 746 741 747 if (!psListLength(where->list) 748 && !psMetadataLookupBool(NULL, config->args, "-all")) { 742 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) { 749 743 psFree(where); 750 744 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); … … 758 752 } 759 753 760 { 761 psString query = pxDataGet("camtool_reset_faulted_runs.sql"); 762 if (!query) { 763 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 764 psFree(where); 765 return false; 766 } 767 768 if (where && psListLength(where->list)) { 769 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 770 psStringAppend(&query, " AND %s", whereClause); 771 psFree(whereClause); 772 } 773 774 if (!p_psDBRunQuery(config->dbh, query)) { 775 // rollback 776 if (!psDBRollback(config->dbh)) { 777 psError(PS_ERR_UNKNOWN, false, "database error"); 778 } 779 psError(PS_ERR_UNKNOWN, false, "database error"); 780 psFree(query); 781 psFree(where); 782 return false; 783 } 784 psFree(query); 785 } 786 787 { 788 psString query = pxDataGet("camtool_revertprocessedexp.sql"); 789 if (!query) { 790 // rollback 791 if (!psDBRollback(config->dbh)) { 792 psError(PS_ERR_UNKNOWN, false, "database error"); 793 } 794 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 795 psFree(where); 796 return false; 797 } 798 799 if (where && psListLength(where->list)) { 800 psString whereClause = psDBGenerateWhereConditionSQL(config->where, NULL); 801 psStringAppend(&query, " AND %s", whereClause); 802 psFree(whereClause); 803 } 804 805 if (!p_psDBRunQuery(config->dbh, query)) { 806 // rollback 807 if (!psDBRollback(config->dbh)) { 808 psError(PS_ERR_UNKNOWN, false, "database error"); 809 } 810 psError(PS_ERR_UNKNOWN, false, "database error"); 811 psFree(query); 812 psFree(where); 813 return false; 814 } 815 psFree(query); 816 } 754 { 755 psString query = pxDataGet("camtool_reset_faulted_runs.sql"); 756 if (!query) { 757 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 758 psFree(where); 759 return false; 760 } 761 762 // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE 763 if (where && psListLength(where->list)) { 764 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 765 psStringAppend(&query, " AND %s", whereClause); 766 psFree(whereClause); 767 } 768 769 if (!p_psDBRunQuery(config->dbh, query)) { 770 // rollback 771 if (!psDBRollback(config->dbh)) { 772 psError(PS_ERR_UNKNOWN, false, "database error"); 773 } 774 psError(PS_ERR_UNKNOWN, false, "database error"); 775 psFree(query); 776 psFree(where); 777 return false; 778 } 779 psFree(query); 780 } 781 782 { 783 psString query = pxDataGet("camtool_revertprocessedexp.sql"); 784 if (!query) { 785 // rollback 786 if (!psDBRollback(config->dbh)) { 787 psError(PS_ERR_UNKNOWN, false, "database error"); 788 } 789 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 790 psFree(where); 791 return false; 792 } 793 794 // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE 795 if (where && psListLength(where->list)) { 796 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 797 psStringAppend(&query, " AND %s", whereClause); 798 psFree(whereClause); 799 } 800 801 if (!p_psDBRunQuery(config->dbh, query)) { 802 // rollback 803 if (!psDBRollback(config->dbh)) { 804 psError(PS_ERR_UNKNOWN, false, "database error"); 805 } 806 psError(PS_ERR_UNKNOWN, false, "database error"); 807 psFree(query); 808 psFree(where); 809 return false; 810 } 811 psFree(query); 812 } 817 813 psFree(where); 818 814 … … 832 828 PXOPT_LOOKUP_S16(code, config->args, "-code", true, false); 833 829 834 if (!pxSetFaultCode(config->dbh, "camProcessedExp", config->where, code)) { 830 psMetadata *where = psMetadataAlloc(); 831 PXOPT_COPY_S64(config->args, where, "-cam_id", "cam_id", "=="); 832 PXOPT_COPY_S64(config->args, where, "-chip_id", "chip_id", "=="); 833 PXOPT_COPY_STR(config->args, where, "-class", "class", "=="); 834 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 835 836 if (!pxSetFaultCode(config->dbh, "camProcessedExp", where, code)) { 835 837 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 836 return false; 837 } 838 psFree (where); 839 return false; 840 } 841 psFree (where); 838 842 839 843 return true; -
branches/eam_branch_20080706/ippTools/src/camtoolConfig.c
r18467 r18468 47 47 48 48 // -definebyquery 49 // XXX need to allow multiple chip_ids 50 // XXX need to allow multiple exp_ids 49 51 psMetadata *definebydefinebyqueryArgs = psMetadataAlloc(); 52 psMetadataAddS64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip_id", 0); 53 psMetadataAddS64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exp_id", 0); 54 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-exp_name", 0, "search by exp_name", NULL); 55 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-inst", 0, "search for camera", NULL); 56 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-telescope", 0, "search for telescope", NULL); 57 psMetadataAddTime(definebydefinebyqueryArgs, PS_LIST_TAIL, "-dateobs_begin", 0, "search for exposures by time (>=)", NULL); 58 psMetadataAddTime(definebydefinebyqueryArgs, PS_LIST_TAIL, "-dateobs_end", 0, "search for exposures by time (<)", NULL); 59 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-exp_tag", 0, "search by exp_tag", NULL); 60 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-exp_type", 0, "search by exp_type", NULL); 61 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-filelevel", 0, "search by filelevel", NULL); 62 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-reduction", 0, "search by reduction class", NULL); 63 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-filter", 0, "search for filter", NULL); 64 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-airmass_min", 0, "define min airmass", NAN); 65 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-airmass_max", 0, "define max airmass", NAN); 66 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-ra_min", 0, "define min", NAN); 67 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-ra_max", 0, "define max", NAN); 68 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-decl_min", 0, "define min", NAN); 69 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-decl_max", 0, "define max", NAN); 70 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-exp_time_min", 0, "define min", NAN); 71 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-exp_time_max", 0, "define max", NAN); 72 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-sat_pixel_frac_min", 0, "define max fraction of saturated pixels", NAN); 73 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-sat_pixel_frac_max", 0, "define min fraction of saturated pixels", NAN); 74 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-bg_min", 0, "define max", NAN); 75 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-bg_max", 0, "define max", NAN); 76 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-bg_stdev_min", 0, "define max", NAN); 77 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-bg_stdev_max", 0, "define max", NAN); 78 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-bg_mean_stdev_min", 0, "define max", NAN); 79 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-bg_mean_stdev_max", 0, "define max", NAN); 80 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-alt_min", 0, "define min", NAN); 81 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-alt_max", 0, "define max", NAN); 82 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-az_min", 0, "define min", NAN); 83 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-az_max", 0, "define max", NAN); 84 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, "define min ccd tempature", NAN); 85 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, "define max ccd tempature", NAN); 86 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-posang_min", 0, "define min rotator position angle", NAN); 87 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 88 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL); 89 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-solang_min", 0, "define min solar angle", NAN); 90 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-solang_max", 0, "define max solar angle", NAN); 91 92 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir", NULL); 93 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_label", 0, "define label", NULL); 94 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_reduction", 0, "define reduction class", NULL); 95 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_expgroup", 0, "define exposure group", NULL); 96 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_dvodb", 0, "define DVO db", NULL); 97 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_tess_id", 0, "define tess ID", NULL); 98 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_end_stage", 0, "define end stage", NULL); 99 psMetadataAddBool(definebydefinebyqueryArgs, PS_LIST_TAIL, "-all", 0, "allow everything to be queued without search terms", false); 100 101 // -updaterun 102 // XXX need to allow multiple cam_ids 50 103 // XXX need to allow multiple chip_ids 51 psMetadataAddS64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-chip_id", 0,52 "search by chip_id", 0);53 104 // XXX need to allow multiple exp_ids 54 psMetadataAddS64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-exp_id", 0,55 "search by exp_id", 0);56 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-exp_name", 0,57 "search by exp_name", NULL);58 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-inst", 0,59 "search for camera", NULL);60 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-telescope", 0,61 "search for telescope", NULL);62 psMetadataAddTime(definebydefinebyqueryArgs, PS_LIST_TAIL, "-dateobs_begin", 0,63 "search for exposures by time (>=)", NULL);64 psMetadataAddTime(definebydefinebyqueryArgs, PS_LIST_TAIL, "-dateobs_end", 0,65 "search for exposures by time (<)", NULL);66 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-exp_tag", 0,67 "search by exp_tag", NULL);68 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-exp_type", 0,69 "search by exp_type", NULL);70 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-filelevel", 0,71 "search by filelevel", NULL);72 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-reduction", 0,73 "search by reduction class", NULL);74 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-filter", 0,75 "search for filter", NULL);76 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-airmass_min", 0,77 "define min airmass", NAN);78 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-airmass_max", 0,79 "define max airmass", NAN);80 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-ra_min", 0,81 "define min", NAN);82 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-ra_max", 0,83 "define max", NAN);84 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-decl_min", 0,85 "define min", NAN);86 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-decl_max", 0,87 "define max", NAN);88 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-exp_time_min", 0,89 "define min", NAN);90 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-exp_time_max", 0,91 "define max", NAN);92 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-sat_pixel_frac_min", 0,93 "define max fraction of saturated pixels", NAN);94 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-sat_pixel_frac_max", 0,95 "define min fraction of saturated pixels", NAN);96 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-bg_min", 0,97 "define max", NAN);98 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-bg_max", 0,99 "define max", NAN);100 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-bg_stdev_min", 0,101 "define max", NAN);102 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-bg_stdev_max", 0,103 "define max", NAN);104 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-bg_mean_stdev_min", 0,105 "define max", NAN);106 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-bg_mean_stdev_max", 0,107 "define max", NAN);108 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-alt_min", 0,109 "define min", NAN);110 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-alt_max", 0,111 "define max", NAN);112 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-az_min", 0,113 "define min", NAN);114 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-az_max", 0,115 "define max", NAN);116 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-ccd_temp_min", 0,117 "define min ccd tempature", NAN);118 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-ccd_temp_max", 0,119 "define max ccd tempature", NAN);120 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-posang_min", 0,121 "define min rotator position angle", NAN);122 psMetadataAddF64(definebydefinebyqueryArgs, PS_LIST_TAIL, "-posang_max", 0,123 "define max rotator position angle", NAN);124 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-object", 0,125 "search by exposure object", NULL);126 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-solang_min", 0,127 "define min solar angle", NAN);128 psMetadataAddF32(definebydefinebyqueryArgs, PS_LIST_TAIL, "-solang_max", 0,129 "define max solar angle", NAN);130 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_workdir", 0,131 "define workdir", NULL);132 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_label", 0,133 "define label", NULL);134 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_reduction", 0,135 "define reduction class", NULL);136 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_expgroup", 0,137 "define exposure group", NULL);138 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_dvodb", 0,139 "define DVO db", NULL);140 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_tess_id", 0,141 "define tess ID", NULL);142 psMetadataAddStr(definebydefinebyqueryArgs, PS_LIST_TAIL, "-set_end_stage", 0,143 "define end stage", NULL);144 psMetadataAddBool(definebydefinebyqueryArgs, PS_LIST_TAIL, "-all", 0,145 "allow everything to be queued without search terms", false);146 147 // -updaterun148 105 psMetadata *updaterunArgs = psMetadataAlloc(); 149 // XXX need to allow multiple cam_ids 150 psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-cam_id", 0, 151 "search by cam_id", 0); 152 // XXX need to allow multiple chip_ids 153 psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-chip_id", 0, 154 "search by chip_id", 0); 155 // XXX need to allow multiple exp_ids 156 psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-exp_id", 0, 157 "search by exp_id", 0); 158 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_name", 0, 159 "search by exp_name", NULL); 160 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-inst", 0, 161 "search for camera", NULL); 162 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-telescope", 0, 163 "search for telescope", NULL); 164 psMetadataAddTime(updaterunArgs, PS_LIST_TAIL, "-dateobs_begin", 0, 165 "search for exposures by time (>=)", NULL); 166 psMetadataAddTime(updaterunArgs, PS_LIST_TAIL, "-dateobs_end", 0, 167 "search for exposures by time (<)", NULL); 168 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_tag", 0, 169 "search by exp_tag", NULL); 170 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_type", 0, 171 "search by exp_type", NULL); 172 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-filelevel", 0, 173 "search by filelevel", NULL); 174 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-reduction", 0, 175 "search by reduction class", NULL); 176 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-filter", 0, 177 "search for filter", NULL); 178 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-airmass_min", 0, 179 "define min airmass", NAN); 180 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-airmass_max", 0, 181 "define max airmass", NAN); 182 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ra_min", 0, 183 "define min", NAN); 184 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ra_max", 0, 185 "define max", NAN); 186 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-decl_min", 0, 187 "define min", NAN); 188 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-decl_max", 0, 189 "define max", NAN); 190 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-exp_time_min", 0, 191 "define min", NAN); 192 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-exp_time_max", 0, 193 "define max", NAN); 194 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-sat_pixel_frac_min", 0, 195 "define max fraction of saturated pixels", NAN); 196 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-sat_pixel_frac_max", 0, 197 "define min fraction of saturated pixels", NAN); 198 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_min", 0, 199 "define max", NAN); 200 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_max", 0, 201 "define max", NAN); 202 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_stdev_min", 0, 203 "define max", NAN); 204 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_stdev_max", 0, 205 "define max", NAN); 206 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_mean_stdev_min", 0, 207 "define max", NAN); 208 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_mean_stdev_max", 0, 209 "define max", NAN); 210 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-alt_min", 0, 211 "define min", NAN); 212 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-alt_max", 0, 213 "define max", NAN); 214 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-az_min", 0, 215 "define min", NAN); 216 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-az_max", 0, 217 "define max", NAN); 218 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, 219 "define min ccd tempature", NAN); 220 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, 221 "define max ccd tempature", NAN); 222 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-posang_min", 0, 223 "define min rotator position angle", NAN); 224 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-posang_max", 0, 225 "define max rotator position angle", NAN); 226 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-object", 0, 227 "search by exposure object", NULL); 228 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-solang_min", 0, 229 "define min solar angle", NAN); 230 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-solang_max", 0, 231 "define max solar angle", NAN); 232 233 psMetadataAddBool(updaterunArgs, PS_LIST_TAIL, "-all", 0, 234 "allow everything to be queued without search terms", false); 235 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state", 0, 236 "set state", NULL); 237 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-label", 0, 238 "set label", NULL); 239 106 psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-cam_id", 0, "search by cam_id", 0); 107 psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip_id", 0); 108 psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exp_id", 0); 109 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_name", 0, "search by exp_name", NULL); 110 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-inst", 0, "search for camera", NULL); 111 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-telescope", 0, "search for telescope", NULL); 112 psMetadataAddTime(updaterunArgs, PS_LIST_TAIL, "-dateobs_begin", 0, "search for exposures by time (>=)", NULL); 113 psMetadataAddTime(updaterunArgs, PS_LIST_TAIL, "-dateobs_end", 0, "search for exposures by time (<)", NULL); 114 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_tag", 0, "search by exp_tag", NULL); 115 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_type", 0, "search by exp_type", NULL); 116 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-filelevel", 0, "search by filelevel", NULL); 117 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-reduction", 0, "search by reduction class", NULL); 118 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-filter", 0, "search for filter", NULL); 119 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-airmass_min", 0, "define min airmass", NAN); 120 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-airmass_max", 0, "define max airmass", NAN); 121 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ra_min", 0, "define min", NAN); 122 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ra_max", 0, "define max", NAN); 123 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-decl_min", 0, "define min", NAN); 124 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-decl_max", 0, "define max", NAN); 125 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-exp_time_min", 0, "define min", NAN); 126 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-exp_time_max", 0, "define max", NAN); 127 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-sat_pixel_frac_min", 0, "define max fraction of saturated pixels", NAN); 128 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-sat_pixel_frac_max", 0, "define min fraction of saturated pixels", NAN); 129 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_min", 0, "define max", NAN); 130 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_max", 0, "define max", NAN); 131 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_stdev_min", 0, "define max", NAN); 132 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_stdev_max", 0, "define max", NAN); 133 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_mean_stdev_min", 0, "define max", NAN); 134 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_mean_stdev_max", 0, "define max", NAN); 135 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-alt_min", 0, "define min", NAN); 136 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-alt_max", 0, "define max", NAN); 137 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-az_min", 0, "define min", NAN); 138 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-az_max", 0, "define max", NAN); 139 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, "define min ccd tempature", NAN); 140 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, "define max ccd tempature", NAN); 141 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-posang_min", 0, "define min rotator position angle", NAN); 142 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 143 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL); 144 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-solang_min", 0, "define min solar angle", NAN); 145 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-solang_max", 0, "define max solar angle", NAN); 146 147 psMetadataAddBool(updaterunArgs, PS_LIST_TAIL, "-all", 0, "allow everything to be queued without search terms", false); 148 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state", 0, "set state", NULL); 149 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-label", 0, "set label", NULL); 240 150 241 151 // -pendingexp 242 152 psMetadata *pendingexpArgs = psMetadataAlloc(); 243 psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-cam_id", 0, 244 "search by camtool ID", 0); 245 psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-chip_id", 0, 246 "search by chiptool ID", 0); 247 psMetadataAddU64(pendingexpArgs, PS_LIST_TAIL, "-limit", 0, 248 "limit result set to N items", 0); 249 psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-simple", 0, 250 "use the simple output format", false); 251 153 psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-cam_id", 0, "search by camtool ID", 0); 154 psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chiptool ID", 0); 155 psMetadataAddU64(pendingexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 156 psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 252 157 253 158 // -pendingimfile 254 159 psMetadata *pendingimfileArgs = psMetadataAlloc(); 255 psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-cam_id", 0, 256 "search by camtool ID", 0); 257 psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-chip_id", 0, 258 "search by chiptool ID", 0); 259 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class", 0, 260 "search by class", NULL); 261 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class_id", 0, 262 "search by class ID", NULL); 263 psMetadataAddBool(pendingimfileArgs, PS_LIST_TAIL, "-simple", 0, 264 "use the simple output format", false); 265 160 psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-cam_id", 0, "search by camtool ID", 0); 161 psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chiptool ID", 0); 162 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class", 0, "search by class", NULL); 163 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 164 psMetadataAddBool(pendingimfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 266 165 267 166 // -addprocessedexp 268 167 psMetadata *addprocessedexpArgs = psMetadataAlloc(); 269 psMetadataAddS64(addprocessedexpArgs, PS_LIST_TAIL, "-cam_id", 0, 270 "define camtool ID (required)", 0); 271 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-uri", 0, 272 "define URI (required)", NULL); 273 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg", 0, 274 "define exposure background", NAN); 275 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, 276 "define exposure background stdev", NAN); 277 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 278 "define exposure background mean stdev", NAN); 279 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-bias", 0, 280 "define bias", NAN); 281 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-bias_stdev", 0, 282 "define bias stdev", NAN); 283 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-fringe_0", 0, 284 "define fringe term 0", NAN); 285 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-fringe_1", 0, 286 "define fringe term 1", NAN); 287 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-fringe_2", 0, 288 "define fringe term 2", NAN); 289 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-sigma_ra", 0, 290 "define exposure E ra", NAN); 291 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-sigma_dec", 0, 292 "define exposure E dec", NAN); 293 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-ap_resid", 0, 294 "define aperture residual", NAN); 295 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-ap_resid_stdev", 0, 296 "define aperture residual stdev", NAN); 297 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-zp_mean", 0, 298 "define zero point mean", NAN); 299 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-zp_stdev", 0, 300 "define zero point stdev", NAN); 301 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-fwhm_major", 0, 302 "define FWHM (major axis; arcsec)", NAN); 303 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-fwhm_minor", 0, 304 "define FWHM (minor axis; arcsec)", NAN); 305 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-dtime_detrend", 0, 306 "define elapsed detrend processing time (seconds)", NAN); 307 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-dtime_photom", 0, 308 "define elapsed photometry processing time (seconds)", NAN); 309 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-dtime_astrom", 0, 310 "define elapsed astrometry processing time (seconds)", NAN); 311 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-hostname", 0, 312 "define hostname", NULL); 313 psMetadataAddS32(addprocessedexpArgs, PS_LIST_TAIL, "-n_stars", 0, 314 "define number of stars", 0); 315 psMetadataAddS32(addprocessedexpArgs, PS_LIST_TAIL, "-n_extended", 0, 316 "define number of extended objects", 0); 317 psMetadataAddS32(addprocessedexpArgs, PS_LIST_TAIL, "-n_cr", 0, 318 "define number of cosmic rays", 0); 319 psMetadataAddS32(addprocessedexpArgs, PS_LIST_TAIL, "-n_astrom", 0, 320 "define number of astrometry reference objects", 0); 321 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-path_base", 0, 322 "define base output location", NULL); 323 psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-code", 0, 324 "set fault code", 0); 325 psMetadataAddBool(addprocessedexpArgs, PS_LIST_TAIL, "-faulted", 0, 326 "only return imfiles with a fault status set", false); 168 psMetadataAddS64(addprocessedexpArgs, PS_LIST_TAIL, "-cam_id", 0, "define camtool ID (required)", 0); 169 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-uri", 0, "define URI (required)", NULL); 170 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 171 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 172 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 173 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-bias", 0, "define bias", NAN); 174 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-bias_stdev", 0, "define bias stdev", NAN); 175 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-fringe_0", 0, "define fringe term 0", NAN); 176 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-fringe_1", 0, "define fringe term 1", NAN); 177 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-fringe_2", 0, "define fringe term 2", NAN); 178 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-sigma_ra", 0, "define exposure E ra", NAN); 179 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-sigma_dec", 0, "define exposure E dec", NAN); 180 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-ap_resid", 0, "define aperture residual", NAN); 181 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-ap_resid_stdev", 0, "define aperture residual stdev", NAN); 182 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-zp_mean", 0, "define zero point mean", NAN); 183 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-zp_stdev", 0, "define zero point stdev", NAN); 184 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-fwhm_major", 0, "define FWHM (major axis; arcsec)", NAN); 185 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-fwhm_minor", 0, "define FWHM (minor axis; arcsec)", NAN); 186 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-dtime_detrend", 0, "define elapsed detrend processing time (seconds)", NAN); 187 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-dtime_photom", 0, "define elapsed photometry processing time (seconds)", NAN); 188 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-dtime_astrom", 0, "define elapsed astrometry processing time (seconds)", NAN); 189 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-hostname", 0, "define hostname", NULL); 190 psMetadataAddS32(addprocessedexpArgs, PS_LIST_TAIL, "-n_stars", 0, "define number of stars", 0); 191 psMetadataAddS32(addprocessedexpArgs, PS_LIST_TAIL, "-n_extended", 0, "define number of extended objects", 0); 192 psMetadataAddS32(addprocessedexpArgs, PS_LIST_TAIL, "-n_cr", 0, "define number of cosmic rays", 0); 193 psMetadataAddS32(addprocessedexpArgs, PS_LIST_TAIL, "-n_astrom", 0, "define number of astrometry reference objects", 0); 194 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 195 psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 196 psMetadataAddBool(addprocessedexpArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 327 197 328 198 // -processedexp 329 199 psMetadata *processedexpArgs = psMetadataAlloc(); 330 psMetadataAddS64(processedexpArgs, PS_LIST_TAIL, "-cam_id", 0, 331 "search by camtool ID", 0); 332 psMetadataAddS64(processedexpArgs, PS_LIST_TAIL, "-chip_id", 0, 333 "search by chiptool ID", 0); 334 psMetadataAddU64(processedexpArgs, PS_LIST_TAIL, "-limit", 0, 335 "limit result set to N items", 0); 336 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-simple", 0, 337 "use the simple output format", false); 338 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-faulted", 0, 339 "only return imfiles with a fault status set", false); 200 psMetadataAddS64(processedexpArgs, PS_LIST_TAIL, "-cam_id", 0, "search by camtool ID", 0); 201 psMetadataAddS64(processedexpArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chiptool ID", 0); 202 psMetadataAddU64(processedexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 203 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 204 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 340 205 341 206 // -revertprocessedexp 207 // XXX need to allow multiple cam_ids 208 // XXX need to allow multiple chip_ids 209 // XXX need to allow multiple exp_ids 342 210 psMetadata *revertprocessedexpArgs = psMetadataAlloc(); 343 // XXX need to allow multiple cam_ids 344 psMetadataAddS64(revertprocessedexpArgs, PS_LIST_TAIL, "-cam_id", 0, 345 "search by cam_id", 0); 346 // XXX need to allow multiple chip_ids 347 psMetadataAddS64(revertprocessedexpArgs, PS_LIST_TAIL, "-chip_id", 0, 348 "search by chip_id", 0); 349 // XXX need to allow multiple exp_ids 350 psMetadataAddS64(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id", 0, 351 "search by exp_id", 0); 352 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_name", 0, 353 "search by exp_name", NULL); 354 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-inst", 0, 355 "search for camera", NULL); 356 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-telescope", 0, 357 "search for telescope", NULL); 358 psMetadataAddTime(revertprocessedexpArgs, PS_LIST_TAIL, "-dateobs_begin", 0, 359 "search for exposures by time (>=)", NULL); 360 psMetadataAddTime(revertprocessedexpArgs, PS_LIST_TAIL, "-dateobs_end", 0, 361 "search for exposures by time (<)", NULL); 362 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_tag", 0, 363 "search by exp_tag", NULL); 364 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_type", 0, 365 "search by exp_type", NULL); 366 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-filelevel", 0, 367 "search by filelevel", NULL); 368 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-reduction", 0, 369 "search by reduction class", NULL); 370 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-filter", 0, 371 "search for filter", NULL); 372 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-airmass_min", 0, 373 "define min airmass", NAN); 374 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-airmass_max", 0, 375 "define max airmass", NAN); 376 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-ra_min", 0, 377 "define min", NAN); 378 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-ra_max", 0, 379 "define max", NAN); 380 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-decl_min", 0, 381 "define min", NAN); 382 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-decl_max", 0, 383 "define max", NAN); 384 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_time_min", 0, 385 "define min", NAN); 386 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_time_max", 0, 387 "define max", NAN); 388 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-sat_pixel_frac_min", 0, 389 "define max fraction of saturated pixels", NAN); 390 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-sat_pixel_frac_max", 0, 391 "define min fraction of saturated pixels", NAN); 392 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-bg_min", 0, 393 "define max", NAN); 394 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-bg_max", 0, 395 "define max", NAN); 396 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-bg_stdev_min", 0, 397 "define max", NAN); 398 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-bg_stdev_max", 0, 399 "define max", NAN); 400 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev_min", 0, 401 "define max", NAN); 402 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev_max", 0, 403 "define max", NAN); 404 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-alt_min", 0, 405 "define min", NAN); 406 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-alt_max", 0, 407 "define max", NAN); 408 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-az_min", 0, 409 "define min", NAN); 410 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-az_max", 0, 411 "define max", NAN); 412 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, 413 "define min ccd tempature", NAN); 414 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, 415 "define max ccd tempature", NAN); 416 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-posang_min", 0, 417 "define min rotator position angle", NAN); 418 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-posang_max", 0, 419 "define max rotator position angle", NAN); 420 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-object", 0, 421 "search by exposure object", NULL); 422 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-solang_min", 0, 423 "define min solar angle", NAN); 424 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-solang_max", 0, 425 "define max solar angle", NAN); 426 427 psMetadataAddBool(revertprocessedexpArgs, PS_LIST_TAIL, "-all", 0, 428 "allow everything to be queued without search terms", false); 429 psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "-code", 0, 430 "search by fault code", 0); 211 psMetadataAddS64(revertprocessedexpArgs, PS_LIST_TAIL, "-cam_id", 0, "search by cam_id", 0); 212 psMetadataAddS64(revertprocessedexpArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip_id", 0); 213 psMetadataAddS64(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exp_id", 0); 214 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_name", 0, "search by exp_name", NULL); 215 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-inst", 0, "search for camera", NULL); 216 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-telescope", 0, "search for telescope", NULL); 217 psMetadataAddTime(revertprocessedexpArgs, PS_LIST_TAIL, "-dateobs_begin", 0, "search for exposures by time (>=)", NULL); 218 psMetadataAddTime(revertprocessedexpArgs, PS_LIST_TAIL, "-dateobs_end", 0, "search for exposures by time (<)", NULL); 219 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_tag", 0, "search by exp_tag", NULL); 220 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_type", 0, "search by exp_type", NULL); 221 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-filelevel", 0, "search by filelevel", NULL); 222 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-reduction", 0, "search by reduction class", NULL); 223 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-filter", 0, "search for filter", NULL); 224 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-airmass_min", 0, "define min airmass", NAN); 225 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-airmass_max", 0, "define max airmass", NAN); 226 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-ra_min", 0, "define min", NAN); 227 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-ra_max", 0, "define max", NAN); 228 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-decl_min", 0, "define min", NAN); 229 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-decl_max", 0, "define max", NAN); 230 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_time_min", 0, "define min", NAN); 231 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_time_max", 0, "define max", NAN); 232 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-sat_pixel_frac_min", 0, "define max fraction of saturated pixels", NAN); 233 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-sat_pixel_frac_max", 0, "define min fraction of saturated pixels", NAN); 234 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-bg_min", 0, "define max", NAN); 235 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-bg_max", 0, "define max", NAN); 236 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-bg_stdev_min", 0, "define max", NAN); 237 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-bg_stdev_max", 0, "define max", NAN); 238 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev_min", 0, "define max", NAN); 239 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev_max", 0, "define max", NAN); 240 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-alt_min", 0, "define min", NAN); 241 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-alt_max", 0, "define max", NAN); 242 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-az_min", 0, "define min", NAN); 243 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-az_max", 0, "define max", NAN); 244 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, "define min ccd tempature", NAN); 245 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, "define max ccd tempature", NAN); 246 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-posang_min", 0, "define min rotator position angle", NAN); 247 psMetadataAddF64(revertprocessedexpArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 248 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL); 249 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-solang_min", 0, "define min solar angle", NAN); 250 psMetadataAddF32(revertprocessedexpArgs, PS_LIST_TAIL, "-solang_max", 0, "define max solar angle", NAN); 251 252 psMetadataAddBool(revertprocessedexpArgs, PS_LIST_TAIL, "-all", 0, "allow everything to be queued without search terms", false); 253 psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "-code", 0, "search by fault code", 0); 431 254 432 255 433 256 // -updateprocessedexp 434 257 psMetadata *updateprocessedexpArgs = psMetadataAlloc(); 435 psMetadataAddS64(updateprocessedexpArgs, PS_LIST_TAIL, "-cam_id", 0, 436 "search by camtool ID", 0); 437 psMetadataAddS64(updateprocessedexpArgs, PS_LIST_TAIL, "-chip_id", 0, 438 "search by chiptool ID", 0); 439 psMetadataAddStr(updateprocessedexpArgs, PS_LIST_TAIL, "-class", 0, 440 "search by class", NULL); 441 psMetadataAddStr(updateprocessedexpArgs, PS_LIST_TAIL, "-class_id", 0, 442 "search by class ID", NULL); 443 psMetadataAddS16(updateprocessedexpArgs, PS_LIST_TAIL, "-code", 0, 444 "set fault code (required)", INT16_MAX); 258 psMetadataAddS64(updateprocessedexpArgs, PS_LIST_TAIL, "-cam_id", 0, "search by camtool ID", 0); 259 psMetadataAddS64(updateprocessedexpArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chiptool ID", 0); 260 psMetadataAddStr(updateprocessedexpArgs, PS_LIST_TAIL, "-class", 0, "search by class", NULL); 261 psMetadataAddStr(updateprocessedexpArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 262 psMetadataAddS16(updateprocessedexpArgs, PS_LIST_TAIL, "-code", 0, "set fault code (required)", INT16_MAX); 445 263 446 264 // -block 447 265 psMetadata *blockArgs = psMetadataAlloc(); 448 psMetadataAddStr(blockArgs, PS_LIST_TAIL, "-label", 0, 449 "name of a label to mask out (required)", NULL); 266 psMetadataAddStr(blockArgs, PS_LIST_TAIL, "-label", 0, "name of a label to mask out (required)", NULL); 450 267 451 268 // -masked 452 269 psMetadata *maskedArgs = psMetadataAlloc(); 453 psMetadataAddBool(maskedArgs, PS_LIST_TAIL, "-simple", 0, 454 "use the simple output format", false); 270 psMetadataAddBool(maskedArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 455 271 456 272 // -unblock 457 273 psMetadata *unblockArgs = psMetadataAlloc(); 458 psMetadataAddStr(unblockArgs, PS_LIST_TAIL, "-label", 0, 459 "name of a label to unmask (required)", NULL); 274 psMetadataAddStr(unblockArgs, PS_LIST_TAIL, "-label", 0, "name of a label to unmask (required)", NULL); 460 275 461 276 psMetadata *argSets = psMetadataAlloc(); … … 485 300 psFree(modes); 486 301 487 // setup search criterion488 #define addWhereStr(name) \489 { \490 psString str = NULL; \491 bool status = false; \492 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \493 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\494 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \495 psFree(config); \496 return NULL; \497 } \498 } \499 }500 501 302 // generate SQL where clause 502 config->where = psMetadataAlloc(); 503 504 { 505 psS64 cam_id = -1; 506 bool status = false; 507 if ((cam_id = psMetadataLookupS64(&status, config->args, "-cam_id"))) { 508 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "cam_id", 0, "==", cam_id)) { 509 psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id"); 510 psFree(config); 511 return NULL; 512 } 513 } 514 } 515 516 { 517 psString str = NULL; 518 bool status = false; 519 if ((str = psMetadataLookupStr(&status, config->args, "-chip_id"))) { 520 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "chip_id", 0, "==", (psS64)atoll(str))) { 521 psError(PS_ERR_UNKNOWN, false, "failed to add item chip_id"); 522 psFree(config); 523 return NULL; 524 } 525 } 526 } 527 528 // convert '-inst' to 'camera' 529 { 530 psString str = NULL; 531 bool status = false; 532 if ((str = psMetadataLookupStr(&status, config->args, "-inst"))) { 533 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, "camera", 0, "==", str)) { 534 psError(PS_ERR_UNKNOWN, false, "failed to add item camera"); 535 psFree(config); 536 return NULL; 537 } 538 } 539 } 540 addWhereStr(telescope); 541 addWhereStr(exp_type); 542 { 543 int imfiles = 0; 544 bool status = false; 545 if ((imfiles = psMetadataLookupS32(&status, config->args, "-imfiles"))) { 546 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, "imfiles", 0, "==", imfiles)) { 547 psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles"); 548 psFree(config); 549 return NULL; 550 } 551 } 552 } 553 addWhereStr(class_id); 554 addWhereStr(filter); 555 556 // convert '-code' to 'fault' 557 { 558 psS16 fault = 0; 559 bool status = false; 560 if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) { 561 if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) { 562 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 563 psFree(config); 564 return NULL; 565 } 566 } 567 } 568 569 if (psListLength(config->where->list) < 1) { 570 psFree(config->where); 571 config->where = NULL; 572 } 303 // XXX config->where = psMetadataAlloc(); 304 // XXX PXOPT_ADD_WHERE_S64(cam_id); 305 // XXX PXOPT_ADD_WHERE_S64(chip_id); 306 // XXX PXOPT_ADD_WHERE_STR_ALIAS("-inst","camera"); 307 // XXX PXOPT_ADD_WHERE_S32(imfiles); 308 // XXX PXOPT_ADD_WHERE_STR(telescope); 309 // XXX PXOPT_ADD_WHERE_STR(exp_type); 310 // XXX PXOPT_ADD_WHERE_STR(class_id); 311 // XXX PXOPT_ADD_WHERE_STR(filter); 312 // XXX PXOPT_ADD_WHERE_STR_ALIAS("-code","fault"); 313 // XXX if (psListLength(config->where->list) < 1) { 314 // XXX psFree(config->where); 315 // XXX config->where = NULL; 316 // XXX } 573 317 574 318 -
branches/eam_branch_20080706/ippTools/src/chiptoolConfig.c
r18366 r18468 304 304 psMetadata *modes = psMetadataAlloc(); 305 305 306 PXOPT_ADD_MODE("-definebyquery", "create runs from raw exposures", 307 CHIPTOOL_MODE_DEFINEBYQUERY, definebyqueryArgs); 308 PXOPT_ADD_MODE("-updaterun", "change chip run properties", 309 CHIPTOOL_MODE_UPDATERUN, updaterunArgs); 310 PXOPT_ADD_MODE("-pendingimfile", "show pending imfiles", 311 CHIPTOOL_MODE_PENDINGIMFILE, pendingimfileArgs); 312 PXOPT_ADD_MODE("-addprocessedimfile", "add a processed imfile", 313 CHIPTOOL_MODE_ADDPROCESSEDIMFILE, addprocessedimfileArgs); 314 PXOPT_ADD_MODE("-processedimfile", "show processed imfiles", 315 CHIPTOOL_MODE_PROCESSEDIMFILE, processedimfileArgs); 316 PXOPT_ADD_MODE("-updateprocessedimfile","change procesed imfile properties", 317 CHIPTOOL_MODE_UPDATEPROCESSEDIMFILE,updateprocessedimfileArgs); 318 PXOPT_ADD_MODE("-revertprocessedimfile","undo a processed imfile", 319 CHIPTOOL_MODE_REVERTPROCESSEDIMFILE,revertprocessedimfileArgs); 320 PXOPT_ADD_MODE("-block", "set a label block", 321 CHIPTOOL_MODE_BLOCK, blockArgs); 322 PXOPT_ADD_MODE("-masked", "show blocked labels", 323 CHIPTOOL_MODE_MASKED, maskedArgs); 324 PXOPT_ADD_MODE("-unmasked", "", 325 CHIPTOOL_MODE_UNMASKED, unmaskedArgs); 326 PXOPT_ADD_MODE("-unblock", "remove a label block", 327 CHIPTOOL_MODE_UNBLOCK, unblockArgs); 328 PXOPT_ADD_MODE("-pendingcleanuprun", "show runs that need to be cleaned up", 329 CHIPTOOL_MODE_PENDINGCLEANUPRUN, pendingcleanuprunArgs); 330 PXOPT_ADD_MODE("-pendingcleanupimfile", "show runs that need to be cleaned up", 331 CHIPTOOL_MODE_PENDINGCLEANUPIMFILE, pendingcleanupimfileArgs); 332 PXOPT_ADD_MODE("-donecleanup", "show runs that have been cleaned", 333 CHIPTOOL_MODE_DONECLEANUP, donecleanupArgs); 334 PXOPT_ADD_MODE("-run", "show runs", 335 CHIPTOOL_MODE_RUN, runArgs); 306 PXOPT_ADD_MODE("-definebyquery", "create runs from raw exposures", CHIPTOOL_MODE_DEFINEBYQUERY, definebyqueryArgs); 307 PXOPT_ADD_MODE("-updaterun", "change chip run properties", CHIPTOOL_MODE_UPDATERUN, updaterunArgs); 308 PXOPT_ADD_MODE("-pendingimfile", "show pending imfiles", CHIPTOOL_MODE_PENDINGIMFILE, pendingimfileArgs); 309 PXOPT_ADD_MODE("-addprocessedimfile", "add a processed imfile", CHIPTOOL_MODE_ADDPROCESSEDIMFILE, addprocessedimfileArgs); 310 PXOPT_ADD_MODE("-processedimfile", "show processed imfiles", CHIPTOOL_MODE_PROCESSEDIMFILE, processedimfileArgs); 311 PXOPT_ADD_MODE("-updateprocessedimfile","change procesed imfile properties", CHIPTOOL_MODE_UPDATEPROCESSEDIMFILE,updateprocessedimfileArgs); 312 PXOPT_ADD_MODE("-revertprocessedimfile","undo a processed imfile", CHIPTOOL_MODE_REVERTPROCESSEDIMFILE,revertprocessedimfileArgs); 313 PXOPT_ADD_MODE("-block", "set a label block", CHIPTOOL_MODE_BLOCK, blockArgs); 314 PXOPT_ADD_MODE("-masked", "show blocked labels", CHIPTOOL_MODE_MASKED, maskedArgs); 315 PXOPT_ADD_MODE("-unmasked", "", CHIPTOOL_MODE_UNMASKED, unmaskedArgs); 316 PXOPT_ADD_MODE("-unblock", "remove a label block", CHIPTOOL_MODE_UNBLOCK, unblockArgs); 317 PXOPT_ADD_MODE("-pendingcleanuprun", "show runs that need to be cleaned up", CHIPTOOL_MODE_PENDINGCLEANUPRUN, pendingcleanuprunArgs); 318 PXOPT_ADD_MODE("-pendingcleanupimfile", "show runs that need to be cleaned up", CHIPTOOL_MODE_PENDINGCLEANUPIMFILE, pendingcleanupimfileArgs); 319 PXOPT_ADD_MODE("-donecleanup", "show runs that have been cleaned", CHIPTOOL_MODE_DONECLEANUP, donecleanupArgs); 320 PXOPT_ADD_MODE("-run", "show runs", CHIPTOOL_MODE_RUN, runArgs); 336 321 337 322 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) { -
branches/eam_branch_20080706/ippTools/src/detselect.c
r16170 r18468 81 81 82 82 psMetadata *where = psMetadataAlloc(); 83 84 PXOPT_COPY_STR(config->args, where, "-inst", "camera", "=="); 85 PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "=="); 86 PXOPT_COPY_STR(config->args, where, "-det_type", "det_type", "=="); 87 PXOPT_COPY_STR(config->args, where, "-type", "det_type", "=="); 88 PXOPT_COPY_STR(config->args, where, "-filter", "filter", "=="); 83 89 84 90 // airmass_min < airmass < airmass_max … … 111 117 } 112 118 113 if (config->where) { 114 psString whereClause = psDBGenerateWhereConditionSQL(config->where, NULL); 115 psStringAppend(&query, " AND %s", whereClause); 116 psFree(whereClause); 117 } 118 119 { 119 // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE 120 if (where && psListLength(where->list)) { 120 121 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 121 psFree(where); 122 if (whereClause) { 123 psStringAppend(&query, " AND %s", whereClause); 124 psFree(whereClause); 125 } 126 } 122 psStringAppend(&query, " AND %s", whereClause); 123 psFree(whereClause); 124 } 125 psFree(where); 127 126 128 127 // we choose the single detrend image which matches all criteria and has … … 171 170 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 172 171 172 psMetadata *where = psMetadataAlloc(); 173 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 174 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 175 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 176 173 177 psString query = pxDataGet("detselect_select.sql"); 174 178 if (!query) { … … 177 181 } 178 182 179 180 if ( config->where) {181 psString whereClause = psDBGenerateWhereConditionSQL( config->where, NULL);183 // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE 184 if (where && psListLength(where->list)) { 185 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 182 186 psStringAppend(&query, " AND %s", whereClause); 183 187 psFree(whereClause); 184 188 } 189 psFree(where); 185 190 186 191 if (!p_psDBRunQuery(config->dbh, query)) { -
branches/eam_branch_20080706/ippTools/src/detselect.h
r18322 r18468 31 31 pxConfig *detselectConfig(pxConfig *config, int argc, char **argv); 32 32 33 #define addWhereStr(name) \34 { \35 psString str = NULL; \36 bool status = false; \37 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \38 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\39 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \40 psFree(config); \41 return NULL; \42 } \43 } \44 }45 46 #define addWhereStrAlias(name,realname) \47 { \48 psString str = NULL; \49 bool status = false; \50 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \51 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #realname, 0, "==", str)) {\52 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \53 psFree(config); \54 return NULL; \55 } \56 } \57 }58 59 #define addWhereS32(name) \60 { \61 psS32 s32 = 0; \62 bool status = false; \63 if ((s32= psMetadataLookupS32(&status, config->args, "-" #name))) { \64 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, #name, 0, "==", s32)) { \65 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \66 psFree(config); \67 return NULL; \68 } \69 } \70 }71 72 #define addWhereF32(name) \73 { \74 psF32 var = 0; \75 bool status = false; \76 if ((var = psMetadataLookupF32(&status, config->args, "-" #name))) { \77 if (!isnan(var)) { \78 if (!psMetadataAddF32(config->where, PS_LIST_TAIL, #name, 0, "==", var)) { \79 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \80 psFree(config); \81 return NULL; \82 } \83 } \84 } \85 }86 87 #define addWhereF64(name) \88 { \89 psF64 var = 0; \90 bool status = false; \91 if ((var = psMetadataLookupF64(&status, config->args, "-" #name))) { \92 if (!isnan(var)) { \93 if (!psMetadataAddF64(config->where, PS_LIST_TAIL, #name, 0, "==", var)) { \94 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \95 psFree(config); \96 return NULL; \97 } \98 } \99 } \100 }101 102 #define addWhereTimeStr(name) \103 { \104 psString str = NULL; \105 bool status = false; \106 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \107 psTime *time = psTimeFromISO(str, PS_TIME_UTC); \108 if (!time) { \109 psError(PS_ERR_UNKNOWN, false, "failed to convert " #name " into a psTime object"); \110 psFree(config); \111 return NULL; \112 } \113 psMetadataItem *item = psMetadataLookup(config->args, "-" #name); \114 if (item) { \115 str = item->comment; \116 } else { \117 str = NULL; \118 } \119 if (!psMetadataAddTime(config->where, PS_LIST_TAIL, #name, 0, str, time)) {\120 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \121 psFree(config); \122 return NULL; \123 } \124 psFree(time); \125 } \126 }127 128 33 #endif // DETSELECT_H -
branches/eam_branch_20080706/ippTools/src/detselectConfig.c
r18322 r18468 46 46 // -search 47 47 psMetadata *searchArgs = psMetadataAlloc(); 48 psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-inst", 0, 49 "search by camera", NULL); 50 psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-telescope", 0, 51 "search by telescope", NULL); 52 psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-det_type", 0, 53 "search by detrend type", NULL); 54 psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-type", 0, 55 "search by detrend type (alias for -det_type)", NULL); 56 psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-filter", 0, 57 "search by filter", NULL); 58 psMetadataAddF32(searchArgs, PS_LIST_TAIL, "-airmass", 0, 59 "define airmass", NAN); 60 psMetadataAddF32(searchArgs, PS_LIST_TAIL, "-exp_time", 0, 61 "search by exposure time", NAN); 62 psMetadataAddF32(searchArgs, PS_LIST_TAIL, "-ccd_temp", 0, 63 "search by ccd tempature", NAN); 64 psMetadataAddF64(searchArgs, PS_LIST_TAIL, "-posang", 0, 65 "search by rotator position angle", NAN); 66 psMetadataAddTime(searchArgs, PS_LIST_TAIL, "-time", 0, 67 "define time for desired detrend data", NULL); 68 psMetadataAddBool(searchArgs, PS_LIST_TAIL, "-simple", 0, 69 "use the simple output format", false); 70 psMetadataAddBool(searchArgs, PS_LIST_TAIL, "-unlimit", 0, 71 "list all possible detruns, not just the best match", false); 48 psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-inst", 0, "search by camera", NULL); 49 psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-telescope", 0, "search by telescope", NULL); 50 psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-det_type", 0, "search by detrend type", NULL); 51 psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-type", 0, "search by detrend type (alias for -det_type)", NULL); 52 psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-filter", 0, "search by filter", NULL); 53 psMetadataAddF32(searchArgs, PS_LIST_TAIL, "-airmass", 0, "define airmass", NAN); 54 psMetadataAddF32(searchArgs, PS_LIST_TAIL, "-exp_time", 0, "search by exposure time", NAN); 55 psMetadataAddF32(searchArgs, PS_LIST_TAIL, "-ccd_temp", 0, "search by ccd tempature", NAN); 56 psMetadataAddF64(searchArgs, PS_LIST_TAIL, "-posang", 0, "search by rotator position angle", NAN); 57 psMetadataAddTime(searchArgs, PS_LIST_TAIL, "-time", 0, "define time for desired detrend data", NULL); 58 psMetadataAddBool(searchArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 59 psMetadataAddBool(searchArgs, PS_LIST_TAIL, "-unlimit", 0, "list all possible detruns, not just the best match", false); 72 60 73 61 // -select 74 62 psMetadata *selectArgs = psMetadataAlloc(); 75 psMetadataAddStr(selectArgs, PS_LIST_TAIL, "-det_id", 0, 76 "search by detrend ID", NULL); 77 psMetadataAddS32(selectArgs, PS_LIST_TAIL, "-iteration", 0, 78 "search by iteration number", 0); 79 psMetadataAddStr(selectArgs, PS_LIST_TAIL, "-class_id", 0, 80 "search by class ID", NULL); 81 psMetadataAddBool(selectArgs, PS_LIST_TAIL, "-simple", 0, 82 "use the simple output format", false); 63 psMetadataAddStr(selectArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID", NULL); 64 psMetadataAddS32(selectArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 65 psMetadataAddStr(selectArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 66 psMetadataAddBool(selectArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 83 67 84 68 psMetadata *argSets = psMetadataAlloc(); … … 101 85 // setup search criterion 102 86 // generate SQL where clause 103 config->where = psMetadataAlloc();87 // config->where = psMetadataAlloc(); 104 88 105 addWhereStr(det_id); 106 addWhereS32(iteration); 107 addWhereStr(exp_id); 108 addWhereStrAlias(inst,camera); 89 // PXOPT_ADD_WHERE_STR(det_id); 90 // PXOPT_ADD_WHERE_S32(iteration); 91 // PXOPT_ADD_WHERE_STR(exp_id); 92 // PXOPT_ADD_WHERE_STR_ALIAS("-inst","camera"); 93 // PXOPT_ADD_WHERE_STR(telescope); 94 // PXOPT_ADD_WHERE_STR(det_type); 95 // PXOPT_ADD_WHERE_STR_ALIAS("-type","det_type"); 96 // PXOPT_ADD_WHERE_STR(exp_type); 97 // PXOPT_ADD_WHERE_S32(imfiles); 98 // PXOPT_ADD_WHERE_STR(class); 99 // PXOPT_ADD_WHERE_STR(class_id); 100 // PXOPT_ADD_WHERE_STR(filter); 109 101 110 addWhereStr(telescope); 111 addWhereStr(det_type); 112 addWhereStrAlias(type,det_type); 102 // PXOPT_ADD_WHERE_F32(exp_time); 103 // PXOPT_ADD_WHERE_F64(ccd_temp); 104 // PXOPT_ADD_WHERE_F32(airmass); 105 // PXOPT_ADD_WHERE_TIME_STR(use_begin); 106 // PXOPT_ADD_WHERE_TIME_STR(use_end); 113 107 114 addWhereStr(exp_type); 115 addWhereS32(imfiles); 116 addWhereStr(class); 117 addWhereStr(class_id); 118 addWhereStr(filter); 119 120 // addWhereF32(exp_time); 121 // addWhereF64(ccd_temp); 122 // addWhereF32(airmass); 123 // addWhereTimeStr(use_begin); 124 // addWhereTimeStr(use_end); 125 126 if (config->where->list->n < 1) { 127 psFree(config->where); 128 config->where = NULL; 129 } 108 // if (config->where->list->n < 1) { 109 // psFree(config->where); 110 // config->where = NULL; 111 // } 130 112 131 113 -
branches/eam_branch_20080706/ippTools/src/dettool.c
r18336 r18468 214 214 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 215 215 216 psString query = psStringCopy( 217 "SELECT" 218 " rawExp.*" 219 " FROM rawExp" 220 " LEFT JOIN detInputExp" 221 " ON rawExp.exp_id = detInputExp.exp_id" 222 " WHERE" 223 " detInputExp.exp_id IS NULL" 224 " AND rawExp.object != 'object'" 225 ); 226 227 if (config->where) { 228 psString whereClause = psDBGenerateWhereConditionSQL(config->where, "rawExp"); 216 psString query = pxDataGet("dettool_pending.sql"); 217 if (!query) { 218 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 219 return false; 220 } 221 222 psMetadata *where = psMetadataAlloc(); 223 PXOPT_COPY_STR(config->args, where, "-exp_id", "exp_id", "=="); 224 PXOPT_COPY_STR(config->args, where, "-exp_type", "exp_type", "=="); 225 PXOPT_COPY_STR(config->args, where, "-inst", "camera", "=="); 226 PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "=="); 227 PXOPT_COPY_STR(config->args, where, "-filter", "filter", "=="); 228 229 if (psListLength(where->list)) { 230 psString whereClause = psDBGenerateWhereConditionSQL(where, "rawExp"); 229 231 psStringAppend(&query, " AND %s", whereClause); 230 232 psFree(whereClause); 231 233 } 234 psFree(where); 232 235 233 236 if (!p_psDBRunQuery(config->dbh, query)) { … … 315 318 // make sure that -exp_id was parsed correctly 316 319 // XXX this can be removed someday 320 // XXX Special case for a multi : move into a macro? 317 321 if (item->type == PS_DATA_METADATA_MULTI) { 318 322 psListIterator *iter = psListIteratorAlloc(item->data.list, 0, false); … … 472 476 #if 0 473 477 // This function is used to convert the det_id from an int, as it is used 474 // internally, to be a string for external use. The rational being that we may478 // internally, to be a string for external use. The rationale being that we may 475 479 // want to change how det_id is generated in the future and don't want to 476 480 // external programs to become depending on this value being an int. … … 543 547 psMetadata *where = psMetadataAlloc(); 544 548 PXOPT_COPY_STR(config->args, where, "-select_exp_type", "exp_type", "=="); 545 // map -inst -> camera546 549 PXOPT_COPY_STR(config->args, where, "-select_inst", "camera", "=="); 547 550 PXOPT_COPY_STR(config->args, where, "-select_telescope", "telescope", "=="); … … 555 558 PXOPT_COPY_F32(config->args, where, "-select_exp_time_min", "exp_time", ">="); 556 559 PXOPT_COPY_F32(config->args, where, "-select_exp_time_max", "exp_time", "<="); 557 PXOPT_COPY_F 32(config->args, where, "-select_ccd_temp_min", "ccd_temp", ">=");558 PXOPT_COPY_F 32(config->args, where, "-select_ccd_temp_max", "ccd_temp", "<=");559 PXOPT_COPY_F 32(config->args, where, "-select_pon_time_min", "pon_time", ">=");560 PXOPT_COPY_F 32(config->args, where, "-select_pon_time_max", "pon_time", "<=");561 PXOPT_COPY_F 32(config->args, where, "-select_posang_min", "posang", ">=");562 PXOPT_COPY_F 32(config->args, where, "-select_posang_max", "posang", "<=");563 PXOPT_COPY_F 32(config->args, where, "-select_solang_min", "solang", ">=");564 PXOPT_COPY_F 32(config->args, where, "-select_solang_max", "solang", "<=");560 PXOPT_COPY_F64(config->args, where, "-select_ccd_temp_min", "ccd_temp", ">="); 561 PXOPT_COPY_F64(config->args, where, "-select_ccd_temp_max", "ccd_temp", "<="); 562 PXOPT_COPY_F64(config->args, where, "-select_pon_time_min", "pon_time", ">="); 563 PXOPT_COPY_F64(config->args, where, "-select_pon_time_max", "pon_time", "<="); 564 PXOPT_COPY_F64(config->args, where, "-select_posang_min", "posang", ">="); 565 PXOPT_COPY_F64(config->args, where, "-select_posang_max", "posang", "<="); 566 PXOPT_COPY_F64(config->args, where, "-select_solang_min", "solang", ">="); 567 PXOPT_COPY_F64(config->args, where, "-select_solang_max", "solang", "<="); 565 568 566 569 if (!psListLength(where->list)) { … … 571 574 // there is some namespace overlap between the names of the fields we'd 572 575 // like to search by to setup a detrun and the names of the fields we'd 573 // like to assign values to so I've sep erated them but prepending set- to576 // like to assign values to so I've separated them but prepending set- to 574 577 // the assigned values 575 578 … … 731 734 PS_ASSERT_PTR_NON_NULL(config, false); 732 735 733 // required 734 PXOPT_LOOKUP_STR(det_id, config->args, "-det_id", true, false); 735 736 // optional 737 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 738 PXOPT_LOOKUP_STR(det_type, config->args, "-set_det_type", false, false); 739 PXOPT_LOOKUP_STR(mode, config->args, "-set_mode", false, false); 740 // check mode 741 if (mode && !isValidMode(config, mode)) { 742 psError(PS_ERR_UNKNOWN, false, "invalud mode"); 743 return false; 744 } 745 PXOPT_LOOKUP_STR(camera, config->args, "-set_inst", false, false); 746 PXOPT_LOOKUP_STR(telescope, config->args, "-set_telescope", false, false); 736 737 PXOPT_LOOKUP_STR(det_id, config->args, "-det_id", true, false); // required 738 PXOPT_LOOKUP_STR(det_type, config->args, "-set_det_type", false, false); // optional 739 PXOPT_LOOKUP_STR(mode, config->args, "-set_mode", false, false); // optional 747 740 PXOPT_LOOKUP_STR(exp_type, config->args, "-set_exp_type", false, false); 748 741 PXOPT_LOOKUP_STR(filelevel, config->args, "-set_filelevel", false, false); 749 742 PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", false, false); 750 743 PXOPT_LOOKUP_STR(filter, config->args, "-set_filter", false, false); 751 752 744 PXOPT_LOOKUP_F32(airmass_min, config->args, "-set_airmass_min", false, false); 753 745 PXOPT_LOOKUP_F32(airmass_max, config->args, "-set_airmass_max", false, false); 754 746 PXOPT_LOOKUP_F32(exp_time_min, config->args, "-set_exp_time_min", false, false); 755 747 PXOPT_LOOKUP_F32(exp_time_max, config->args, "-set_exp_time_max", false, false); 756 PXOPT_LOOKUP_F32(ccd_temp_min, config->args, "-set_ccd_temp_min", false, false); 757 PXOPT_LOOKUP_F32(ccd_temp_max, config->args, "-set_ccd_temp_max", false, false); 758 PXOPT_LOOKUP_F32(posang_min, config->args, "-set_posang_min", false, false); 759 PXOPT_LOOKUP_F32(posang_max, config->args, "-set_posang_max", false, false); 760 PXOPT_LOOKUP_F32(solang_min, config->args, "-set_solang_min", false, false); 761 PXOPT_LOOKUP_F32(solang_max, config->args, "-set_solang_max", false, false); 762 PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false); 748 PXOPT_LOOKUP_F64(ccd_temp_min, config->args, "-set_ccd_temp_min", false, false); 749 PXOPT_LOOKUP_F64(ccd_temp_max, config->args, "-set_ccd_temp_max", false, false); 750 PXOPT_LOOKUP_F64(posang_min, config->args, "-set_posang_min", false, false); 751 PXOPT_LOOKUP_F64(posang_max, config->args, "-set_posang_max", false, false); 752 PXOPT_LOOKUP_F64(solang_min, config->args, "-set_solang_min", false, false); 753 PXOPT_LOOKUP_F64(solang_max, config->args, "-set_solang_max", false, false); 763 754 PXOPT_LOOKUP_TIME(registered, config->args, "-set_registered", false, false); 764 755 PXOPT_LOOKUP_TIME(time_begin, config->args, "-set_time_begin", false, false); … … 767 758 PXOPT_LOOKUP_TIME(use_end, config->args, "-use_end", false, false); 768 759 PXOPT_LOOKUP_STR(reduction, config->args, "-set_reduction", false, false); 769 760 PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false); 761 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); // optional 762 763 // check mode 764 if (mode && !isValidMode(config, mode)) { 765 psError(PS_ERR_UNKNOWN, false, "invalud mode"); 766 return false; 767 } 770 768 771 769 // lookup the detRun that we will be basing this one on … … 925 923 // XXX: possible mem leak: PXOPT_COPY* will free time_filter but NOTHING 926 924 // that has previously been allocated 927 PXOPT_COPY_TIME(config->args, time_filter, "- filter_input_begin", "dateobs", ">=");928 PXOPT_COPY_TIME(config->args, time_filter, "- filter_input_end", "dateobs", "<");925 PXOPT_COPY_TIME(config->args, time_filter, "-set_input_begin", "dateobs", ">="); 926 PXOPT_COPY_TIME(config->args, time_filter, "-set_input_end", "dateobs", "<"); 929 927 930 928 // start a transaction so we don't end up with childlessed det_ids … … 951 949 psS64 newDet_id = psDBLastInsertID(config->dbh); 952 950 953 psString query = psStringCopy( 954 "INSERT INTO detInputExp" 955 " SELECT" 956 " %d," 957 " 0," 958 " detResidExp.exp_id," 959 " detResidExp.accept" 960 " FROM detResidExp" 961 " JOIN rawExp" 962 " USING(exp_id)" 963 " WHERE det_id = %d" 964 ); 951 psString query = pxDataGet("dettool_definebydetrun.sql"); 952 if (!query) { 953 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 954 return false; 955 } 965 956 966 957 if (time_filter->list->n) { … … 1017 1008 PS_ASSERT_PTR_NON_NULL(config, false); 1018 1009 1010 psMetadata *where = psMetadataAlloc(); 1011 PXOPT_COPY_STR(config->args, where, "-det_type", "det_type", "=="); 1012 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 1013 1014 PXOPT_COPY_STR(config->args, where, "-inst", "camera", "=="); 1015 PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "=="); 1016 PXOPT_COPY_STR(config->args, where, "-filter", "filter", "=="); 1017 1018 // airmass_min < airmass < airmass_max 1019 PXOPT_COPY_F32(config->args, where, "-airmass", "airmass_min", "<="); 1020 PXOPT_COPY_F32(config->args, where, "-airmass", "airmass_max", ">="); 1021 1022 // exp_time_min < exp_time < exp_time_max 1023 PXOPT_COPY_F32(config->args, where, "-exp_time", "exp_time_min", "<="); 1024 PXOPT_COPY_F32(config->args, where, "-exp_time", "exp_time_max", ">="); 1025 1026 // ccd_temp_min < ccd_temp < ccd_temp_max 1027 PXOPT_COPY_F32(config->args, where, "-ccd_temp", "ccd_temp_min", "<="); 1028 PXOPT_COPY_F32(config->args, where, "-ccd_temp", "ccd_temp_max", ">="); 1029 1030 PXOPT_COPY_F64(config->args, where, "-posang", "posang_min", "<="); 1031 PXOPT_COPY_F64(config->args, where, "-posang", "posang_max", ">="); 1032 1019 1033 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1020 1034 PXOPT_LOOKUP_BOOL(active, config->args, "-active", false); 1021 1035 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1022 1036 1023 PXOPT_COPY_STR(config->args, config->where, "-inst", "camera", "==");1024 PXOPT_COPY_STR(config->args, config->where, "-telescope", "telescope", "==");1025 PXOPT_COPY_STR(config->args, config->where, "-filter", "filter", "==");1026 1027 // airmass_min < airmass < airmass_max1028 PXOPT_COPY_F32(config->args, config->where, "-airmass", "airmass_min", "<=");1029 PXOPT_COPY_F32(config->args, config->where, "-airmass", "airmass_max", ">=");1030 1031 // exp_time_min < exp_time < exp_time_max1032 PXOPT_COPY_F32(config->args, config->where, "-exp_time", "exp_time_min", "<=");1033 PXOPT_COPY_F32(config->args, config->where, "-exp_time", "exp_time_max", ">=");1034 1035 // ccd_temp_min < ccd_temp < ccd_temp_max1036 PXOPT_COPY_F32(config->args, config->where, "-ccd_temp", "ccd_temp_min", "<=");1037 PXOPT_COPY_F32(config->args, config->where, "-ccd_temp", "ccd_temp_max", ">=");1038 1039 PXOPT_COPY_F64(config->args, config->where, "-posang", "posang_min", "<=");1040 PXOPT_COPY_F64(config->args, config->where, "-posang", "posang_max", ">=");1041 1042 1037 psString query = pxDataGet("dettool_runs.sql"); 1043 1038 if (!query) { … … 1046 1041 } 1047 1042 1048 if ( config->where&& active) {1049 psString whereClause = psDBGenerateWhereSQL( config->where, "detRun");1043 if (psListLength(where->list) && active) { 1044 psString whereClause = psDBGenerateWhereSQL(where, "detRun"); 1050 1045 psStringAppend(&query, " %s AND (detRun.state = 'run' OR detRun.state = 'stop' OR detRun.state = 'register')", whereClause); 1051 1046 psFree(whereClause); 1052 1047 } 1053 if ( config->where&& !active) {1054 psString whereClause = psDBGenerateWhereSQL( config->where, "detRun");1048 if (psListLength(where->list) && !active) { 1049 psString whereClause = psDBGenerateWhereSQL(where, "detRun"); 1055 1050 psStringAppend(&query, " %s", whereClause); 1056 1051 psFree(whereClause); 1057 1052 } 1058 if (! config->where&& active) {1053 if (!psListLength(where->list) && active) { 1059 1054 psStringAppend(&query, " WHERE (detRun.state = 'run' OR detRun.state = 'stop' OR detRun.state = 'register')"); 1060 1055 } 1056 psFree (where); 1061 1057 1062 1058 // treat limit == 0 as "no limit" … … 1080 1076 } 1081 1077 1082 // XXX old version1083 # if 01084 // XXX fix the hard coding of the table name1085 psArray *runs = psDBSelectRows(config->dbh, "detRun", config->where, 0);1086 if (!runs) {1087 psError(PS_ERR_UNKNOWN, false, "database error");1088 return false;1089 }1090 # endif1091 1092 1078 if (!psArrayLength(runs)) { 1093 1079 psTrace("dettool", PS_LOG_INFO, "no rows found"); … … 1112 1098 PS_ASSERT_PTR_NON_NULL(config, false); 1113 1099 1100 psMetadata *where = psMetadataAlloc(); 1101 PXOPT_COPY_STR(config->args, where, "-det_type", "det_type", "=="); 1102 1114 1103 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1115 1104 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1116 1105 1117 psString query = psStringCopy( 1118 "SELECT DISTINCT\n" 1119 " detRun.*\n" 1120 " FROM detRun\n" 1121 " LEFT JOIN detRun as foo\n" 1122 " ON foo.parent = detRun.det_id\n" 1123 " WHERE\n" 1124 " detRun.state = 'stop'\n" 1125 " AND detRun.mode = 'master'\n" 1126 " AND foo.det_id IS NULL\n" 1127 ); 1128 1129 if (config->where) { 1130 psString whereClause = psDBGenerateWhereConditionSQL(config->where, "detRun"); 1106 // find the exp_id of all the exposures that we want to queue up. 1107 psString query = pxDataGet("dettool_childlessrun.sql"); 1108 if (!query) { 1109 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1110 psFree(where); 1111 return false; 1112 } 1113 1114 if (psListLength(where->list)) { 1115 psString whereClause = psDBGenerateWhereConditionSQL(where, "detRun"); 1131 1116 psStringAppend(&query, " AND %s", whereClause); 1132 1117 psFree(whereClause); 1133 1118 } 1119 psFree (where); 1134 1120 1135 1121 // treat limit == 0 as "no limit" … … 1188 1174 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1189 1175 1190 // select detInputExp.*1191 // select rawExp.*1192 // by:1193 // exp_id1194 1195 psString query = p sStringCopy(1196 "SELECT DISTINCT *"1197 " FROM detInputExp"1198 " JOIN rawExp"1199 " USING(exp_id)"1200 );1201 1202 if ( config->where) {1203 psString whereClause = psDBGenerateWhereSQL( config->where, "detInputExp");1176 psMetadata *where = psMetadataAlloc(); 1177 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 1178 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 1179 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 1180 1181 psString query = pxDataGet("dettool_input.sql"); 1182 if (!query) { 1183 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1184 psFree(where); 1185 return false; 1186 } 1187 1188 if (psListLength(where->list)) { 1189 psString whereClause = psDBGenerateWhereSQL(where, "detInputExp"); 1204 1190 psStringAppend(&query, " %s", whereClause); 1205 1191 psFree(whereClause); 1206 1192 } 1193 psFree (where); 1207 1194 1208 1195 if (!p_psDBRunQuery(config->dbh, query)) { … … 1242 1229 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1243 1230 1231 psMetadata *where = psMetadataAlloc(); 1232 1244 1233 psString query = pxDataGet("dettool_raw.sql"); 1245 1234 if (!query) { … … 1248 1237 } 1249 1238 1250 if ( config->where) {1251 psString whereClause = psDBGenerateWhereConditionSQL( config->where, "rawImfile");1239 if (psListLength(where->list)) { 1240 psString whereClause = psDBGenerateWhereConditionSQL(where, "rawImfile"); 1252 1241 psStringAppend(&query, " AND %s", whereClause); 1253 1242 psFree(whereClause); 1254 1243 } 1244 psFree (where); 1255 1245 1256 1246 if (!p_psDBRunQuery(config->dbh, query)) { … … 1288 1278 PS_ASSERT_PTR_NON_NULL(config, false); 1289 1279 1280 psMetadata *where = psMetadataAlloc(); 1281 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 1282 PXOPT_COPY_STR(config->args, where, "-exp_id", "exp_id", "=="); 1283 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 1284 1290 1285 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1291 1286 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); … … 1297 1292 } 1298 1293 1299 if ( config->where) {1300 psString whereClause = psDBGenerateWhereConditionSQL( config->where, "rawImfile");1294 if (psListLength(where->list)) { 1295 psString whereClause = psDBGenerateWhereConditionSQL(where, "rawImfile"); 1301 1296 psStringAppend(&query, " AND %s", whereClause); 1302 1297 psFree(whereClause); 1303 1298 } 1299 psFree (where); 1304 1300 1305 1301 // treat limit == 0 as "no limit" … … 1340 1336 } 1341 1337 1342 static psArray *searchRawImfiles(pxConfig *config, psMetadata *where)1343 {1344 PS_ASSERT_PTR_NON_NULL(config, NULL);1345 1346 // use the default where if "where" is NULL1347 if (!where) {1348 where = config->where;1349 }1350 1351 // select exp_ids from detInputExp matching det_idp1352 // where query should be pre-generated1353 psArray *detInputExp =1354 detInputExpSelectRowObjects(config->dbh, where, 0);1355 if (!detInputExp) {1356 psError(PS_ERR_UNKNOWN, false, "no rawExp rows found");1357 return NULL;1358 }1359 1360 // generate where query with just the exp_ids1361 psMetadata *where_exp_ids = psMetadataAlloc();1362 for (long i = 0; i < psArrayLength(detInputExp); i++) {1363 detInputExpRow *row = detInputExp->data[i];1364 if (!psMetadataAddS64(where_exp_ids, PS_LIST_TAIL, "exp_id",1365 PS_META_DUPLICATE_OK, "==", row->exp_id)1366 ) {1367 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");1368 psFree(detInputExp);1369 psFree(where_exp_ids);1370 return NULL;1371 }1372 }1373 psFree(detInputExp);1374 1375 // select rawImfiles with matching exp_ids1376 psArray *rawImfiles =1377 rawImfileSelectRowObjects(config->dbh, where_exp_ids, 0);1378 psFree(where_exp_ids);1379 if (!rawImfiles) {1380 psError(PS_ERR_UNKNOWN, false, "no rawImfile rows found");1381 return NULL;1382 }1383 1384 return rawImfiles;1385 }1386 1387 1338 static bool addprocessedimfileMode(pxConfig *config) 1388 1339 { 1389 1340 PS_ASSERT_PTR_NON_NULL(config, false); 1390 1341 1391 // det_id, exp_id, class_id, uri, recipe, -bg, -bg_stdev 1392 // are required 1342 // det_id, exp_id, class_id, uri, recipe, -bg, -bg_stdev are required 1393 1343 PXOPT_LOOKUP_STR(det_id, config->args, "-det_id", true, false); 1394 1344 PXOPT_LOOKUP_STR(exp_id, config->args, "-exp_id", true, false); … … 1416 1366 PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", false, false); 1417 1367 1418 1419 1368 // find the matching rawImfile by exp_id/class_id 1420 1369 psMetadata *where = psMetadataAlloc(); 1421 if (!psMetadataAddStr(where, PS_LIST_TAIL, "exp_id", 0, "==", exp_id)) { 1422 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id"); 1423 psFree(where); 1424 return false; 1425 } 1426 if (!psMetadataAddStr(where, PS_LIST_TAIL, "class_id", 0, "==", class_id)) { 1427 psError(PS_ERR_UNKNOWN, false, "failed to add item class_id"); 1428 psFree(where); 1429 return false; 1430 } 1370 PXOPT_COPY_STR(config->args, where, "-exp_id", "exp_id", "=="); 1371 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 1431 1372 1432 1373 psArray *rawImfiles = rawImfileSelectRowObjects(config->dbh, where, 0); 1433 1374 psFree(where); 1375 1434 1376 if (!rawImfiles) { 1435 1377 psError(PS_ERR_UNKNOWN, false, "no rawImfile rows found "); 1436 1378 return false; 1437 1379 } 1438 1439 1380 1440 1381 // create a new detProcessedImfile object … … 1473 1414 } 1474 1415 1416 static bool processedimfileMode(pxConfig *config) 1417 { 1418 PS_ASSERT_PTR_NON_NULL(config, false); 1419 1420 char *value = NULL; 1421 1422 PXOPT_LOOKUP_BOOL(included, config->args, "-included", false); 1423 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false); 1424 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1425 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1426 1427 psMetadata *where = psMetadataAlloc(); 1428 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 1429 PXOPT_COPY_STR(config->args, where, "-exp_id", "exp_id", "=="); 1430 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 1431 1432 psString query = pxDataGet("dettool_processedimfile.sql"); 1433 if (!query) { 1434 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1435 psFree(where); 1436 return false; 1437 } 1438 1439 // add the two required restrictions: detRun.state and detRun.mode 1440 // NOTE the above query requires one of the following two WHERE statements 1441 { 1442 bool status; 1443 if ((value = psMetadataLookupStr(&status, config->args, "-select_state"))) { 1444 psStringAppend(&query, " WHERE detRun.state = '%s'", value); 1445 } else { 1446 psStringAppend(&query, " WHERE detRun.state = 'run'"); 1447 } 1448 if ((value = psMetadataLookupStr(&status, config->args, "-select_mode"))) { 1449 psStringAppend(&query, " AND detRun.mode = '%s'", value); 1450 } else { 1451 psStringAppend(&query, " AND detRun.mode = 'master'"); 1452 } 1453 } 1454 1455 if (psListLength(where->list)) { 1456 psString whereClause = psDBGenerateWhereConditionSQL(where, "detProcessedImfile"); 1457 psStringAppend(&query, " AND %s", whereClause); 1458 psFree(whereClause); 1459 } 1460 psFree (where); 1461 1462 // restrict search to included imfiles 1463 if (included) { 1464 psStringAppend(&query, " AND detInputExp.include = 1"); 1465 } 1466 1467 if (faulted) { 1468 // list only faulted rows 1469 psStringAppend(&query, " %s", "AND detProcessedImfile.fault != 0"); 1470 } else { 1471 // don't list faulted rows 1472 psStringAppend(&query, " %s", "AND detProcessedImfile.fault = 0"); 1473 } 1474 1475 // treat limit == 0 as "no limit" 1476 if (limit) { 1477 psString limitString = psDBGenerateLimitSQL(limit); 1478 psStringAppend(&query, " %s", limitString); 1479 psFree(limitString); 1480 } 1481 1482 if (!p_psDBRunQuery(config->dbh, query)) { 1483 psError(PS_ERR_UNKNOWN, false, "database error"); 1484 psFree(query); 1485 return false; 1486 } 1487 psFree(query); 1488 1489 psArray *output = p_psDBFetchResult(config->dbh); 1490 if (!output) { 1491 psError(PS_ERR_UNKNOWN, false, "database error"); 1492 return false; 1493 } 1494 if (!psArrayLength(output)) { 1495 psTrace("dettool", PS_LOG_INFO, "no rows found"); 1496 psFree(output); 1497 return true; 1498 } 1499 1500 // negative simple so the default is true 1501 if (!ippdbPrintMetadatas(stdout, output, "rawImfile", !simple)) { 1502 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1503 psFree(output); 1504 return false; 1505 } 1506 1507 psFree(output); 1508 1509 return true; 1510 } 1511 1512 static bool revertprocessedimfileMode(pxConfig *config) 1513 { 1514 PS_ASSERT_PTR_NON_NULL(config, false); 1515 1516 psMetadata *where = psMetadataAlloc(); 1517 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 1518 PXOPT_COPY_STR(config->args, where, "-exp_id", "exp_id", "=="); 1519 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 1520 PXOPT_COPY_S16(config->args, where, "-code", "fault", "=="); 1521 1522 psString query = pxDataGet("dettool_revertprocessedimfile.sql"); 1523 if (!query) { 1524 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1525 return false; 1526 } 1527 1528 if (psListLength(where->list)) { 1529 psString whereClause = psDBGenerateWhereConditionSQL(where, "detProcessedImfile"); 1530 psStringAppend(&query, " AND %s", whereClause); 1531 psFree(whereClause); 1532 } 1533 psFree(where); 1534 1535 if (!p_psDBRunQuery(config->dbh, query)) { 1536 psError(PS_ERR_UNKNOWN, false, "database error"); 1537 psFree(query); 1538 return false; 1539 } 1540 psFree(query); 1541 1542 if (psDBAffectedRows(config->dbh) < 1) { 1543 psError(PS_ERR_UNKNOWN, false, "should have affected atleast 1 row"); 1544 return false; 1545 } 1546 1547 return true; 1548 } 1549 1475 1550 static bool toprocessedexpMode(pxConfig *config) 1476 1551 { … … 1485 1560 return false; 1486 1561 } 1487 1488 // XXX does it make sense to accept any search params?1489 #if 01490 if (config->where) {1491 psString whereClause = psDBGenerateWhereConditionSQL(config->where);1492 psStringAppend(&query, " AND %s", whereClause);1493 psFree(whereClause);1494 }1495 #endif1496 1562 1497 1563 // treat limit == 0 as "no limit" … … 1561 1627 PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", true, false); 1562 1628 1563 1564 psString query = psStringCopy( 1565 " SELECT DISTINCT" 1566 " detProcessedImfile.det_id," 1567 " detRun.iteration," 1568 " detRun.det_type," 1569 " detProcessedImfile.exp_id" 1570 " FROM detRun" 1571 " JOIN detInputExp" 1572 " ON detRun.det_id = detInputExp.det_id" 1573 " AND detRun.iteration = detInputExp.iteration" 1574 " JOIN rawExp" 1575 " ON detInputExp.exp_id = rawExp.exp_id" 1576 " JOIN detProcessedImfile" 1577 " ON detInputExp.det_id = detProcessedImfile.det_id" 1578 " AND detInputExp.exp_id = detProcessedImfile.exp_id" 1579 " LEFT JOIN detProcessedExp" 1580 " ON detInputExp.det_id = detProcessedExp.det_id" 1581 " AND detProcessedImfile.exp_id= detProcessedExp.exp_id" 1582 " LEFT JOIN rawImfile" 1583 " ON detInputExp.exp_id = rawImfile.exp_id" 1584 " AND detProcessedImfile.class_id = rawImfile.class_id" 1585 " WHERE" 1586 " detRun.state = 'run'" 1587 " AND detRun.mode = 'master'" 1588 " AND detProcessedExp.det_id IS NULL" 1589 " AND detProcessedExp.exp_id IS NULL" 1590 " AND detInputExp.include = 1" 1591 " AND detRun.det_id = %s" 1592 " AND detProcessedImfile.exp_id = '%s'" 1593 " GROUP BY" 1594 " detProcessedImfile.class_id," 1595 " rawImfile.class_id," 1596 " detRun.det_id" 1597 " HAVING" 1598 " COUNT(detProcessedImfile.class_id) = COUNT(rawImfile.class_id)" 1599 ); 1629 psString query = pxDataGet("dettool_addprocessedexp.sql"); 1630 if (!query) { 1631 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1632 psFree(where); 1633 return false; 1634 } 1600 1635 1601 1636 if (!p_psDBRunQuery(config->dbh, query, det_id, exp_id)) { … … 1654 1689 PS_ASSERT_PTR_NON_NULL(config, false); 1655 1690 1691 psMetadata *where = psMetadataAlloc(); 1692 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 1693 PXOPT_COPY_STR(config->args, where, "-exp_id", "exp_id", "=="); 1694 1656 1695 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1696 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false); 1657 1697 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1658 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false);1659 1698 1660 1699 psString query = psStringCopy("SELECT * FROM detProcessedExp"); 1661 1700 1662 if ( config->where) {1663 psString whereClause = psDBGenerateWhereSQL( config->where, NULL);1701 if (psListLength(where->list)) { 1702 psString whereClause = psDBGenerateWhereSQL(where, NULL); 1664 1703 psStringAppend(&query, " %s", whereClause); 1665 1704 psFree(whereClause); 1666 1705 } 1706 psFree(where); 1667 1707 1668 1708 if (faulted) { … … 1716 1756 PS_ASSERT_PTR_NON_NULL(config, false); 1717 1757 1758 psMetadata *where = psMetadataAlloc(); 1759 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 1760 PXOPT_COPY_STR(config->args, where, "-exp_id", "exp_id", "=="); 1761 PXOPT_COPY_S16(config->args, where, "-code", "fault", "=="); 1762 1718 1763 psString query = pxDataGet("dettool_revertprocessedexp.sql"); 1719 1764 if (!query) { … … 1722 1767 } 1723 1768 1724 if ( config->where) {1725 psString whereClause = psDBGenerateWhereConditionSQL( config->where, "detProcessedExp");1769 if (psListLength(where->list)) { 1770 psString whereClause = psDBGenerateWhereConditionSQL(where, "detProcessedExp"); 1726 1771 psStringAppend(&query, " AND %s", whereClause); 1727 1772 psFree(whereClause); 1728 1773 } 1774 psFree(where); 1729 1775 1730 1776 if (!p_psDBRunQuery(config->dbh, query)) { … … 1756 1802 return false; 1757 1803 } 1758 1759 // XXX does it make sense to accept any search params?1760 #if 01761 if (config->where) {1762 psString whereClause = psDBGenerateWhereConditionSQL(config->where);1763 psStringAppend(&query, " AND %s", whereClause);1764 psFree(whereClause);1765 }1766 #endif1767 1804 1768 1805 // treat limit == 0 as "no limit" … … 1803 1840 } 1804 1841 1805 static bool processedimfileMode(pxConfig *config) 1806 { 1807 PS_ASSERT_PTR_NON_NULL(config, false); 1808 1809 char *value = NULL; 1810 1811 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1812 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1813 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false); 1814 1815 psString query = psStringCopy( 1816 " SELECT DISTINCT" 1817 " detRun.det_type," 1818 " rawExp.exp_time," 1819 " detProcessedImfile.*" 1820 " FROM detProcessedImfile" 1821 " JOIN detRun" 1822 " USING(det_id)" 1823 " JOIN detInputExp" 1824 " ON detRun.det_id = detInputExp.det_id" 1825 " AND detRun.iteration = detInputExp.iteration" 1826 " AND detProcessedImfile.exp_id = detInputExp.exp_id" 1827 " JOIN rawExp" 1828 " ON rawExp.exp_id = detProcessedImfile.exp_id" 1829 " WHERE" 1830 ); 1831 // NOTE the above WHERE is completed with the following line: 1832 1833 // add the two required restrictions: detRun.state and detRun.mode 1834 { 1835 bool status; 1836 if ((value = psMetadataLookupStr(&status, config->args, "-select_state"))) { 1837 psStringAppend(&query, " detRun.state = '%s'", value); 1838 } else { 1839 psStringAppend(&query, " detRun.state = 'run'"); 1842 // this is NOT a command-line mode : it is used by 'addstackedMode' 1843 static psArray *searchRawImfiles(pxConfig *config, psMetadata *where) 1844 { 1845 PS_ASSERT_PTR_NON_NULL(config, NULL); 1846 1847 psMetadata *where = psMetadataAlloc(); 1848 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 1849 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 1850 1851 // select exp_ids from detInputExp matching det_id & iteration 1852 // where query should be pre-generated 1853 psArray *detInputExp = detInputExpSelectRowObjects(config->dbh, where, 0); 1854 psFree (where); 1855 1856 if (!detInputExp) { 1857 psError(PS_ERR_UNKNOWN, false, "no rawExp rows found"); 1858 return NULL; 1859 } 1860 1861 // generate where query with just the exp_ids 1862 psMetadata *where_exp_ids = psMetadataAlloc(); 1863 for (long i = 0; i < psArrayLength(detInputExp); i++) { 1864 detInputExpRow *row = detInputExp->data[i]; 1865 if (!psMetadataAddS64(where_exp_ids, PS_LIST_TAIL, "exp_id", 1866 PS_META_DUPLICATE_OK, "==", row->exp_id) 1867 ) { 1868 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id"); 1869 psFree(detInputExp); 1870 psFree(where_exp_ids); 1871 return NULL; 1840 1872 } 1841 if ((value = psMetadataLookupStr(&status, config->args, "-select_mode"))) { 1842 psStringAppend(&query, " AND detRun.mode = '%s'", value); 1843 } else { 1844 psStringAppend(&query, " AND detRun.mode = 'master'"); 1845 } 1846 } 1847 1848 if (config->where) { 1849 psString whereClause = psDBGenerateWhereConditionSQL(config->where, "detProcessedImfile"); 1850 psStringAppend(&query, " AND %s", whereClause); 1851 psFree(whereClause); 1852 } 1853 1854 { 1855 bool status = false; 1856 bool included = psMetadataLookupBool(&status, config->args, "-included"); 1857 if (!status) { 1858 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -simple"); 1859 return false; 1860 } 1861 // restrict search to included imfiles 1862 if (included) { 1863 psStringAppend(&query, " AND detInputExp.include = 1"); 1864 } 1865 } 1866 1867 if (faulted) { 1868 // list only faulted rows 1869 psStringAppend(&query, " %s", "AND detProcessedImfile.fault != 0"); 1870 } else { 1871 // don't list faulted rows 1872 psStringAppend(&query, " %s", "AND detProcessedImfile.fault = 0"); 1873 } 1874 1875 // treat limit == 0 as "no limit" 1876 if (limit) { 1877 psString limitString = psDBGenerateLimitSQL(limit); 1878 psStringAppend(&query, " %s", limitString); 1879 psFree(limitString); 1880 } 1881 1882 if (!p_psDBRunQuery(config->dbh, query)) { 1883 psError(PS_ERR_UNKNOWN, false, "database error"); 1884 psFree(query); 1885 return false; 1886 } 1887 psFree(query); 1888 1889 psArray *output = p_psDBFetchResult(config->dbh); 1890 if (!output) { 1891 psError(PS_ERR_UNKNOWN, false, "database error"); 1892 return false; 1893 } 1894 if (!psArrayLength(output)) { 1895 psTrace("dettool", PS_LOG_INFO, "no rows found"); 1896 psFree(output); 1897 return true; 1898 } 1899 1900 // negative simple so the default is true 1901 if (!ippdbPrintMetadatas(stdout, output, "rawImfile", !simple)) { 1902 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1903 psFree(output); 1904 return false; 1905 } 1906 1907 psFree(output); 1908 1909 return true; 1910 } 1911 1912 1913 static bool revertprocessedimfileMode(pxConfig *config) 1914 { 1915 PS_ASSERT_PTR_NON_NULL(config, false); 1916 1917 psString query = pxDataGet("dettool_revertprocessedimfile.sql"); 1918 if (!query) { 1919 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1920 return false; 1921 } 1922 1923 if (config->where) { 1924 psString whereClause = psDBGenerateWhereConditionSQL(config->where, "detProcessedImfile"); 1925 psStringAppend(&query, " AND %s", whereClause); 1926 psFree(whereClause); 1927 } 1928 1929 if (!p_psDBRunQuery(config->dbh, query)) { 1930 psError(PS_ERR_UNKNOWN, false, "database error"); 1931 psFree(query); 1932 return false; 1933 } 1934 psFree(query); 1935 1936 if (psDBAffectedRows(config->dbh) < 1) { 1937 psError(PS_ERR_UNKNOWN, false, "should have affected atleast 1 row"); 1938 return false; 1939 } 1940 1941 return true; 1942 } 1943 1873 } 1874 psFree(detInputExp); 1875 1876 // select rawImfiles with matching exp_ids 1877 psArray *rawImfiles = 1878 rawImfileSelectRowObjects(config->dbh, where_exp_ids, 0); 1879 psFree(where_exp_ids); 1880 if (!rawImfiles) { 1881 psError(PS_ERR_UNKNOWN, false, "no rawImfile rows found"); 1882 return NULL; 1883 } 1884 1885 return rawImfiles; 1886 } 1944 1887 1945 1888 static bool addstackedMode(pxConfig *config) … … 1947 1890 PS_ASSERT_PTR_NON_NULL(config, false); 1948 1891 1949 // det_id, class_id, uri, & recipe are required1892 // det_id, iteration, class_id, uri, & recipe are required 1950 1893 PXOPT_LOOKUP_STR(det_id, config->args, "-det_id", true, false); 1894 PXOPT_LOOKUP_S32(iteration, config->args, "-iteration", true, false); 1951 1895 PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false); 1952 1896 … … 1967 1911 PXOPT_LOOKUP_F64(user_5, config->args, "-user_5", false, false); 1968 1912 1969 // default values1970 PXOPT_LOOKUP_S32(iteration, config->args, "-iteration", false, false);1971 1972 1913 // correlate the class_id against the input exposure(s) 1973 1974 // we have to generate our own where clause as we want to search only by the 1975 // det_id 1976 psMetadata *where = psMetadataAlloc(); 1977 if (!psMetadataAddS64(where, PS_LIST_TAIL, "det_id", 0, "==", 1978 (psS64)atoll(det_id))) { 1979 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id"); 1980 psFree(where); 1981 return false; 1982 } 1983 1984 psArray *rawImfiles = searchRawImfiles(config, where); 1985 psFree(where); 1914 // searchRawImfiles defines a where clause to search by det_id and iteration 1915 psArray *rawImfiles = searchRawImfiles(config); 1986 1916 1987 1917 if (!rawImfiles) { … … 2045 1975 PS_ASSERT_PTR_NON_NULL(config, false); 2046 1976 1977 psMetadata *where = psMetadataAlloc(); 1978 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 1979 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 1980 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 1981 PXOPT_COPY_STR(config->args, where, "-recip", "recipe", "=="); 1982 2047 1983 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1984 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false); 2048 1985 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 2049 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false); 2050 2051 // select detStackedImfile.* 2052 // by: 2053 // where det_id, iteration, class_id is not in detNormalizedImfile 2054 2055 psString query = psStringCopy( 2056 "SELECT" 2057 " detStackedImfile.*" 2058 " FROM detStackedImfile" 2059 " JOIN detRun" 2060 " USING(det_id, iteration)" 2061 " WHERE" 2062 " detRun.state = 'run'" 2063 " AND detRun.mode = 'master'" 2064 ); 2065 2066 if (config->where) { 2067 psString whereClause = psDBGenerateWhereConditionSQL(config->where, "detStackedImfile"); 1986 1987 psString query = pxDataGet("dettool_stacked.sql"); 1988 if (!query) { 1989 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1990 psFree(where); 1991 return false; 1992 } 1993 1994 if (psListLength(where->list)) { 1995 psString whereClause = psDBGenerateWhereConditionSQL(where, "detStackedImfile"); 2068 1996 psStringAppend(&query, " AND %s", whereClause); 2069 1997 psFree(whereClause); 2070 1998 } 1999 psFree(where); 2071 2000 2072 2001 if (faulted) { … … 2120 2049 PS_ASSERT_PTR_NON_NULL(config, false); 2121 2050 2051 psMetadata *where = psMetadataAlloc(); 2052 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 2053 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 2054 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 2055 PXOPT_COPY_S16(config->args, where, "-code", "fault", "=="); 2056 2122 2057 psString query = pxDataGet("dettool_revertstacked.sql"); 2123 2058 if (!query) { … … 2126 2061 } 2127 2062 2128 if ( config->where) {2129 psString whereClause = psDBGenerateWhereConditionSQL( config->where, "detStackedImfile");2063 if (psListLength(where->list)) { 2064 psString whereClause = psDBGenerateWhereConditionSQL(where, "detStackedImfile"); 2130 2065 psStringAppend(&query, " AND %s", whereClause); 2131 2066 psFree(whereClause); 2132 2067 } 2068 psFree(where); 2133 2069 2134 2070 if (!p_psDBRunQuery(config->dbh, query)) { … … 2159 2095 return false; 2160 2096 } 2161 2162 // XXX does it make sense to accept any search params?2163 #if 02164 if (config->where) {2165 psString whereClause = psDBGenerateWhereConditionSQL(config->where);2166 psStringAppend(&query, " AND %s", whereClause);2167 psFree(whereClause);2168 }2169 #endif2170 2097 2171 2098 // treat limit == 0 as "no limit" … … 2240 2167 PS_ASSERT_PTR_NON_NULL(config, false); 2241 2168 2169 psMetadata *where = psMetadataAlloc(); 2170 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 2171 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 2172 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 2173 2242 2174 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 2175 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false); 2243 2176 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 2244 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false);2245 2177 2246 2178 psString query = pxDataGet("dettool_normalizedstat.sql"); … … 2258 2190 } 2259 2191 2260 if ( config->where) {2261 psString whereClause = psDBGenerateWhereConditionSQL( config->where, NULL);2192 if (psListLength(where->list)) { 2193 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 2262 2194 psStringAppend(&query, " AND %s", whereClause); 2263 2195 psFree(whereClause); 2264 2196 } 2197 psFree(where); 2265 2198 2266 2199 // treat limit == 0 as "no limit" … … 2305 2238 PS_ASSERT_PTR_NON_NULL(config, false); 2306 2239 2240 psMetadata *where = psMetadataAlloc(); 2241 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 2242 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 2243 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 2244 PXOPT_COPY_S16(config->args, where, "-code", "fault", "=="); 2245 2307 2246 psString query = pxDataGet("dettool_revertnormalizedstat.sql"); 2308 2247 if (!query) { … … 2311 2250 } 2312 2251 2313 if ( config->where) {2314 psString whereClause = psDBGenerateWhereConditionSQL( config->where, "detNormalizedStatImfile");2252 if (psListLength(where->list)) { 2253 psString whereClause = psDBGenerateWhereConditionSQL(where, "detNormalizedStatImfile"); 2315 2254 psStringAppend(&query, " AND %s", whereClause); 2316 2255 psFree(whereClause); 2317 2256 } 2257 psFree(where); 2318 2258 2319 2259 if (!p_psDBRunQuery(config->dbh, query)) { … … 2339 2279 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 2340 2280 2341 // select detNormalizedStatImfile.* 2342 // by: 2343 // where det_id, iteration, class_id is not in detNormalizedImfile 2344 2345 psString query = psStringCopy( 2346 "SELECT DISTINCT" 2347 " detRun.det_type," 2348 " detRun.workdir," 2349 " rawExp.camera," 2350 " detStackedImfile.uri," 2351 " detNormalizedStatImfile.*" 2352 " FROM detRun" 2353 " JOIN detStackedImfile" 2354 " USING(det_id, iteration)" 2355 " JOIN detInputExp" 2356 " USING(det_id, iteration)" 2357 " JOIN rawExp" 2358 " ON detInputExp.exp_id = rawExp.exp_id" 2359 " JOIN detNormalizedStatImfile" 2360 " ON detStackedImfile.det_id = detNormalizedStatImfile.det_id" 2361 " AND detStackedImfile.iteration = detNormalizedStatImfile.iteration" 2362 " AND detStackedImfile.class_id = detNormalizedStatImfile.class_id" 2363 " LEFT JOIN detNormalizedImfile" 2364 " ON detNormalizedStatImfile.det_id = detNormalizedImfile.det_id" 2365 " AND detNormalizedStatImfile.iteration = detNormalizedImfile.iteration" 2366 " AND detNormalizedStatImfile.class_id = detNormalizedImfile.class_id" 2367 " WHERE" 2368 " detNormalizedImfile.det_id IS NULL" 2369 " AND detNormalizedImfile.iteration IS NULL" 2370 " AND detNormalizedImfile.class_id IS NULL" 2371 " AND detNormalizedStatImfile.fault = 0" 2372 " AND detRun.state = 'run'" 2373 ); 2374 2375 // XXX does it make sense to accept any search params? 2376 #if 0 2377 if (config->where) { 2378 psString whereClause = psDBGenerateWhereConditionSQL(config->where); 2379 psStringAppend(&query, " AND %s", whereClause); 2380 psFree(whereClause); 2381 } 2382 #endif 2281 psString query = pxDataGet("dettool_tonormalize.sql"); 2282 if (!query) { 2283 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 2284 return false; 2285 } 2383 2286 2384 2287 // treat limit == 0 as "no limit" … … 2419 2322 } 2420 2323 2421 #if 02422 // XXX this function was left in commented as this method may be useful in the2423 // future2424 static psArray *validDetInputClassIds(pxConfig *config, const char *det_id)2425 {2426 PS_ASSERT_PTR_NON_NULL(config, NULL);2427 // det_id is input as a string because the fact that it is an integer2428 // is just a database impliementation detail.2429 PS_ASSERT_PTR_NON_NULL(det_id, NULL);2430 2431 psArray *rawImfiles = searchInputImfiles(config, det_id);2432 if (!rawImfiles) {2433 return NULL;2434 }2435 2436 psArray *valid_class_ids = NULL;2437 {2438 // All this jumping through hoops is so that we end up with unique2439 // values. PP thinks that making multiple passes through this array and2440 // deleting matched elements would end up being more expensive then a2441 // double sort and stagger scheme. JH thinks it would be cheaper to2442 // just do a unqiue sort and delete. So this is really just a cheap2443 // hack to avoid implimenting a unique sort function but at least it's2444 // stable.2445 psHash *hash = psHashAlloc(psArrayLength(rawImfiles));2446 for (long i = 0; i < psArrayLength(rawImfiles); i++) {2447 psHashAdd(hash,2448 ((rawImfileRow *)rawImfiles->data[i])->class_id,2449 ((rawImfileRow *)rawImfiles->data[i])->class_id2450 );2451 }2452 valid_class_ids = psHashToArray(hash);2453 psFree(hash);2454 }2455 psFree(rawImfiles);2456 2457 return valid_class_ids;2458 }2459 2460 static psArray *searchInputImfiles(pxConfig *config, const char *det_id)2461 {2462 PS_ASSERT_PTR_NON_NULL(config, NULL);2463 // det_id is input as a string because the fact that it is an integer2464 // is just a database impliementation detail.2465 PS_ASSERT_PTR_NON_NULL(det_id, NULL);2466 2467 psArray *inputExps = NULL;2468 {2469 psMetadata *where = psMetadataAlloc();2470 if (!psMetadataAddS32(where, PS_LIST_TAIL, "det_id", 0, "==",2471 (psS32)atoi(det_id))) {2472 psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");2473 psFree(where);2474 return NULL;2475 }2476 inputExps = detInputExpSelectRowObjects(config->dbh, where, 0);2477 psFree(where);2478 }2479 if (!inputExps) {2480 psError(PS_ERR_UNKNOWN, false, "no detInputExp rows found");2481 return NULL;2482 }2483 2484 // find rawImfiles associated with detInputExps2485 psArray *rawImfiles = NULL;2486 {2487 psMetadata *where = psMetadataAlloc();2488 for (long i = 0; i < psArrayLength(inputExps); i++) {2489 if (!psMetadataAddStr(where, PS_LIST_TAIL, "exp_id",2490 PS_META_DUPLICATE_OK, "==",2491 ((detInputExpRow *)inputExps->data[i])->exp_id)) {2492 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");2493 psFree(inputExps);2494 psFree(where);2495 return NULL;2496 }2497 }2498 psFree(inputExps);2499 rawImfiles = rawImfileSelectRowObjects(config->dbh, where, 0);2500 // XXX this really should be sorted for uniqueness2501 psFree(where);2502 }2503 if (!rawImfiles) {2504 psError(PS_ERR_UNKNOWN, false, "no rawImfile rows found");2505 return NULL;2506 }2507 2508 return rawImfiles;2509 }2510 #endif2511 2512 2324 static bool addnormalizedimfileMode(pxConfig *config) 2513 2325 { … … 2516 2328 // required 2517 2329 PXOPT_LOOKUP_STR(det_id, config->args, "-det_id", true, false); 2330 PXOPT_LOOKUP_S32(iteration, config->args, "-iteration", false, false); 2518 2331 PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false); 2519 2332 … … 2533 2346 PXOPT_LOOKUP_F64(user_5, config->args, "-user_5", false, false); 2534 2347 PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", false, false); 2535 2536 // default values2537 PXOPT_LOOKUP_S32(iteration, config->args, "-iteration", false, false);2538 2348 2539 2349 if (!detNormalizedImfileInsert(config->dbh, … … 2560 2370 } 2561 2371 2562 2563 2372 static bool normalizedimfileMode(pxConfig *config) 2564 2373 { 2565 2374 PS_ASSERT_PTR_NON_NULL(config, false); 2375 2376 psMetadata *where = psMetadataAlloc(); 2377 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 2378 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 2379 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 2380 PXOPT_COPY_S16(config->args, where, "-code", "fault", "=="); 2566 2381 2567 2382 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 2569 2384 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false); 2570 2385 2571 psString query = psStringCopy( 2572 "SELECT" 2573 " detNormalizedImfile.*" 2574 " FROM detNormalizedImfile" 2575 " JOIN detRun" 2576 " USING(det_id, iteration)" 2577 " WHERE" 2578 " detRun.state = 'run'" 2579 " AND detRun.mode = 'master'" 2580 ); 2581 2582 if (config->where) { 2583 bool status; 2584 int iteration = psMetadataLookupS32 (&status, config->where, "iteration"); 2585 if (status) { 2586 psMetadataRemoveKey (config->where, "iteration"); 2587 psMetadataAddS32 (config->where, PS_LIST_TAIL, "iteration", 0, "==", iteration); 2588 } 2589 psString whereClause = psDBGenerateWhereConditionSQL(config->where, "detNormalizedImfile"); 2386 psString query = pxDataGet("dettool_revertstacked.sql"); 2387 if (!query) { 2388 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 2389 return false; 2390 } 2391 2392 if (psListLength(where->list)) { 2393 psString whereClause = psDBGenerateWhereConditionSQL(where, "detNormalizedImfile"); 2590 2394 psStringAppend(&query, " AND %s", whereClause); 2591 2395 psFree(whereClause); 2592 2396 } 2397 psFree(where); 2593 2398 2594 2399 if (faulted) { … … 2642 2447 PS_ASSERT_PTR_NON_NULL(config, false); 2643 2448 2449 psMetadata *where = psMetadataAlloc(); 2450 PXOPT_COPY_STR(config->args, where, "-det_id", "det_id", "=="); 2451 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 2452 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 2453 PXOPT_COPY_S16(config->args, where, "-code", "fault", "=="); 2454 2644 2455 psString query = pxDataGet("dettool_revertnormalizedimfile.sql"); 2645 2456 if (!query) { … … 2648 2459 } 2649 2460 2650 if ( config->where) {2461 if (psListLength(where->list)) { 2651 2462 psString whereClause = psDBGenerateWhereConditionSQL(config->where, "detNormalizedImfile"); 2652 2463 psStringAppend(&query, " AND %s", whereClause); 2653 2464 psFree(whereClause); 2654 2465 } 2466 psFree(where); 2655 2467 2656 2468 if (!p_psDBRunQuery(config->dbh, query)) { … … 2668 2480 return true; 2669 2481 } 2670 2671 2482 2672 2483 static bool tonormalizedexpMode(pxConfig *config) … … 2682 2493 return false; 2683 2494 } 2684 2685 // XXX does it make sense to accept any search params?2686 #if 02687 if (config->where) {2688 psString whereClause = psDBGenerateWhereConditionSQL(config->where);2689 psStringAppend(&query, " AND %s", whereClause);2690 psFree(whereClause);2691 }2692 #endif2693 2495 2694 2496 // treat limit == 0 as "no limit" … … 4389 4191 return true; 4390 4192 } 4193 4194 4195 #if 0 4196 // XXX this function was left in commented as this method may be useful in the 4197 // future 4198 static psArray *validDetInputClassIds(pxConfig *config, const char *det_id) 4199 { 4200 PS_ASSERT_PTR_NON_NULL(config, NULL); 4201 // det_id is input as a string because the fact that it is an integer 4202 // is just a database impliementation detail. 4203 PS_ASSERT_PTR_NON_NULL(det_id, NULL); 4204 4205 psArray *rawImfiles = searchInputImfiles(config, det_id); 4206 if (!rawImfiles) { 4207 return NULL; 4208 } 4209 4210 psArray *valid_class_ids = NULL; 4211 { 4212 // All this jumping through hoops is so that we end up with unique 4213 // values. PP thinks that making multiple passes through this array and 4214 // deleting matched elements would end up being more expensive then a 4215 // double sort and stagger scheme. JH thinks it would be cheaper to 4216 // just do a unqiue sort and delete. So this is really just a cheap 4217 // hack to avoid implimenting a unique sort function but at least it's 4218 // stable. 4219 psHash *hash = psHashAlloc(psArrayLength(rawImfiles)); 4220 for (long i = 0; i < psArrayLength(rawImfiles); i++) { 4221 psHashAdd(hash, 4222 ((rawImfileRow *)rawImfiles->data[i])->class_id, 4223 ((rawImfileRow *)rawImfiles->data[i])->class_id 4224 ); 4225 } 4226 valid_class_ids = psHashToArray(hash); 4227 psFree(hash); 4228 } 4229 psFree(rawImfiles); 4230 4231 return valid_class_ids; 4232 } 4233 4234 static psArray *searchInputImfiles(pxConfig *config, const char *det_id) 4235 { 4236 PS_ASSERT_PTR_NON_NULL(config, NULL); 4237 // det_id is input as a string because the fact that it is an integer 4238 // is just a database impliementation detail. 4239 PS_ASSERT_PTR_NON_NULL(det_id, NULL); 4240 4241 psArray *inputExps = NULL; 4242 { 4243 psMetadata *where = psMetadataAlloc(); 4244 if (!psMetadataAddS32(where, PS_LIST_TAIL, "det_id", 0, "==", 4245 (psS32)atoi(det_id))) { 4246 psError(PS_ERR_UNKNOWN, false, "failed to add item det_id"); 4247 psFree(where); 4248 return NULL; 4249 } 4250 inputExps = detInputExpSelectRowObjects(config->dbh, where, 0); 4251 psFree(where); 4252 } 4253 if (!inputExps) { 4254 psError(PS_ERR_UNKNOWN, false, "no detInputExp rows found"); 4255 return NULL; 4256 } 4257 4258 // find rawImfiles associated with detInputExps 4259 psArray *rawImfiles = NULL; 4260 { 4261 psMetadata *where = psMetadataAlloc(); 4262 for (long i = 0; i < psArrayLength(inputExps); i++) { 4263 if (!psMetadataAddStr(where, PS_LIST_TAIL, "exp_id", 4264 PS_META_DUPLICATE_OK, "==", 4265 ((detInputExpRow *)inputExps->data[i])->exp_id)) { 4266 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id"); 4267 psFree(inputExps); 4268 psFree(where); 4269 return NULL; 4270 } 4271 } 4272 psFree(inputExps); 4273 rawImfiles = rawImfileSelectRowObjects(config->dbh, where, 0); 4274 // XXX this really should be sorted for uniqueness 4275 psFree(where); 4276 } 4277 if (!rawImfiles) { 4278 psError(PS_ERR_UNKNOWN, false, "no rawImfile rows found"); 4279 return NULL; 4280 } 4281 4282 return rawImfiles; 4283 } 4284 #endif 4285 -
branches/eam_branch_20080706/ippTools/src/dettoolConfig.c
r18172 r18468 46 46 47 47 // -pending 48 // XXX EAM : is this used? does it make sense? 48 49 psMetadata *pendingArgs = psMetadataAlloc(); 49 psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-exp_id", 0, 50 "search by exposure ID", NULL); 51 psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-exp_type", 0, 52 "search by exposure type", NULL); 53 psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-inst", 0, 54 "search by camera", NULL); 55 psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-telescope", 0, 56 "search by telescope", NULL); 57 psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-filter", 0, 58 "search by filter", NULL); 59 psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-uri", 0, 60 "search by URL", NULL); 61 psMetadataAddBool(pendingArgs, PS_LIST_TAIL, "-simple", 0, 62 "use the simple output format", false); 50 psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", NULL); 51 psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-exp_type", 0, "search by exposure type", NULL); 52 psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-inst", 0, "search by camera", NULL); 53 psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-telescope", 0, "search by telescope", NULL); 54 psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-filter", 0, "search by filter", NULL); 55 psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-uri", 0, "search by URL", NULL); 56 psMetadataAddBool(pendingArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 63 57 64 58 // -definebytag 65 59 psMetadata *definebytagArgs = psMetadataAlloc(); 66 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-exp_id", 67 PS_META_DUPLICATE_OK, 68 "include this exposure (multiple OK, required)", NULL); 69 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-det_type", 0, 70 "define the type of detrend run (required)", NULL); 71 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-mode", 0, 72 "define the mode of this detrend run", "master"); 73 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-filelevel", 0, 74 "define filelevel", NULL); 75 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-workdir", 0, 76 "define workdir (required)", NULL); 77 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-inst", 0, 78 "define camera", NULL); 79 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-telescope", 0, 80 "define telescope", NULL); 81 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-exp_type", 0, 82 "define exposure type", NULL); 83 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-filter", 0, 84 "define filter ", NULL); 85 psMetadataAddF32(definebytagArgs, PS_LIST_TAIL, "-airmass_min", 0, 86 "define min airmass", NAN); 87 psMetadataAddF32(definebytagArgs, PS_LIST_TAIL, "-airmass_max", 0, 88 "define max airmass", NAN); 89 psMetadataAddF32(definebytagArgs, PS_LIST_TAIL, "-exp_time_min", 0, 90 "define min exposure time", NAN); 91 psMetadataAddF32(definebytagArgs, PS_LIST_TAIL, "-exp_time_max", 0, 92 "define max exposure time", NAN); 93 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, 94 "define min ccd tempature", NAN); 95 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, 96 "define max ccd tempature", NAN); 97 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-posang_min", 0, 98 "define min rotator position angle", NAN); 99 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-posang_max", 0, 100 "define max rotator position angle", NAN); 101 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-solang_min", 0, 102 "define min solar angle", NAN); 103 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-solang_max", 0, 104 "define max solar angle", NAN); 105 psMetadataAddTime(definebytagArgs, PS_LIST_TAIL, "-registered", 0, 106 "time detrend run was registered", now); 107 psMetadataAddTime(definebytagArgs, PS_LIST_TAIL, "-time_begin", 0, 108 "detrend applies to exposures taken during this period", NULL); 109 psMetadataAddTime(definebytagArgs, PS_LIST_TAIL, "-time_end", 0, 110 "detrend applies to exposures taken during this period", NULL); 111 psMetadataAddTime(definebytagArgs, PS_LIST_TAIL, "-use_begin", 0, 112 "start of detrend run applicable period", NULL); 113 psMetadataAddTime(definebytagArgs, PS_LIST_TAIL, "-use_end", 0, 114 "end of detrend run applicable period", NULL); 115 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-reduction", 0, 116 "define reduction class for processing", NULL); 117 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-label", 0, 118 "define detrun label", NULL); 119 psMetadataAddBool(definebytagArgs, PS_LIST_TAIL, "-simple", 0, 120 "use the simple output format", false); 60 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-exp_id", PS_META_DUPLICATE_OK, "include this exposure (multiple OK, required)", NULL); 61 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-det_type", 0, "define the type of detrend run (required)", NULL); 62 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-mode", 0, "define the mode of this detrend run", "master"); 63 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-filelevel", 0, "define filelevel", NULL); 64 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-workdir", 0, "define workdir (required)", NULL); 65 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-inst", 0, "define camera", NULL); 66 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope", NULL); 67 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-exp_type", 0, "define exposure type", NULL); 68 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-filter", 0, "define filter ", NULL); 69 psMetadataAddF32(definebytagArgs, PS_LIST_TAIL, "-airmass_min", 0, "define min airmass", NAN); 70 psMetadataAddF32(definebytagArgs, PS_LIST_TAIL, "-airmass_max", 0, "define max airmass", NAN); 71 psMetadataAddF32(definebytagArgs, PS_LIST_TAIL, "-exp_time_min", 0, "define min exposure time", NAN); 72 psMetadataAddF32(definebytagArgs, PS_LIST_TAIL, "-exp_time_max", 0, "define max exposure time", NAN); 73 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, "define min ccd tempature", NAN); 74 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, "define max ccd tempature", NAN); 75 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-posang_min", 0, "define min rotator position angle", NAN); 76 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 77 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-solang_min", 0, "define min solar angle", NAN); 78 psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-solang_max", 0, "define max solar angle", NAN); 79 psMetadataAddTime(definebytagArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 80 psMetadataAddTime(definebytagArgs, PS_LIST_TAIL, "-time_begin", 0, "detrend applies to exposures taken during this period", NULL); 81 psMetadataAddTime(definebytagArgs, PS_LIST_TAIL, "-time_end", 0, "detrend applies to exposures taken during this period", NULL); 82 psMetadataAddTime(definebytagArgs, PS_LIST_TAIL, "-use_begin", 0, "start of detrend run applicable period", NULL); 83 psMetadataAddTime(definebytagArgs, PS_LIST_TAIL, "-use_end", 0, "end of detrend run applicable period", NULL); 84 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-reduction", 0, "define reduction class for processing", NULL); 85 psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-label", 0, "define detrun label", NULL); 86 psMetadataAddBool(definebytagArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 121 87 122 88 // -definebyquery 123 89 psMetadata *definebyqueryArgs = psMetadataAlloc(); 124 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-det_type", 0, 125 "define the type of detrend run (required)", NULL); 126 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-mode", 0, 127 "define the mode of this detrend run", "master"); 128 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-filelevel", 0, 129 "define filelevel", NULL); 130 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-workdir", 0, 131 "define workdir (required)", NULL); 132 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-inst", 0, 133 "define camera (required)", NULL); 134 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-telescope", 0, 135 "define telescope", NULL); 136 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-filter", 0, 137 "define filter ", NULL); 138 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-airmass_min", 0, 139 "define min airmass", NAN); 140 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-airmass_max", 0, 141 "define max airmass", NAN); 142 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-exp_time_min", 0, 143 "define min exposure time", NAN); 144 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-exp_time_max", 0, 145 "define max exposure time", NAN); 146 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, 147 "define min ccd tempature", NAN); 148 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, 149 "define max ccd tempature", NAN); 150 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-posang_min", 0, 151 "define min rotator position angle", NAN); 152 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-posang_max", 0, 153 "define max rotator position angle", NAN); 154 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-solang_min", 0, 155 "define min solar angle", NAN); 156 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-solang_max", 0, 157 "define max solar angle", NAN); 158 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered", 0, 159 "time detrend run was registered", now); 160 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-time_begin", 0, 161 "detrend applies to exposures taken during this period", NULL); 162 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-time_end", 0, 163 "detrend applies to exposures taken during this period", NULL); 164 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-use_begin", 0, 165 "start of detrend run applicable period", NULL); 166 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-use_end", 0, 167 "end of detrend run applicable period", NULL); 168 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_type", 0, 169 "search for exp_type", NULL); 170 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_inst", 0, 171 "search for camera", NULL); 172 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_telescope", 0, 173 "search for telescope", NULL); 174 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_filter", 0, 175 "search for filter", NULL); 176 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_uri", 0, 177 "search for uri", NULL); 178 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_begin", 0, 179 "search for exposures by time (>=)", NULL); 180 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_end", 0, 181 "search for exposures by time (<)", NULL); 182 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_min", 0, 183 "define min airmass", NAN); 184 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_max", 0, 185 "define max airmass", NAN); 186 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_sat_pixel_frac_max", 0, 187 "define max fraction of saturated pixels", NAN); 188 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_min", 0, 189 "define min exposure time", NAN); 190 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_max", 0, 191 "define max exposure time", NAN); 192 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_min", 0, 193 "define min ccd tempature", NAN); 194 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_max", 0, 195 "define max ccd tempature", NAN); 196 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_pon_time_min", 0, 197 "define min power-on time", NAN); 198 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_pon_time_max", 0, 199 "define max power-on time", NAN); 200 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_min", 0, 201 "define min rotator position angle", NAN); 202 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_max", 0, 203 "define max rotator position angle", NAN); 204 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_min", 0, 205 "define min solar angle", NAN); 206 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_max", 0, 207 "define max solar angle", NAN); 208 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-pretend", 0, 209 "print the exposures that would be included in the detrend run and exit", false); 210 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-reduction", 0, 211 "define reduction class for processing", NULL); 212 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", 0, 213 "define detrun label", NULL); 214 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, 215 "use the simple output format", false); 216 217 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-random_subset", 0, 218 "use a random subset of elements", false); 219 psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-random_limit", 0, 220 "use this number of random elements", 20); 90 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-det_type", 0, "define the type of detrend run (required)", NULL); 91 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-mode", 0, "define the mode of this detrend run", "master"); 92 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-filelevel", 0, "define filelevel", NULL); 93 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-workdir", 0, "define workdir (required)", NULL); 94 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-inst", 0, "define camera (required)", NULL); 95 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope", NULL); 96 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-filter", 0, "define filter ", NULL); 97 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-airmass_min", 0, "define min airmass", NAN); 98 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-airmass_max", 0, "define max airmass", NAN); 99 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-exp_time_min", 0, "define min exposure time", NAN); 100 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-exp_time_max", 0, "define max exposure time", NAN); 101 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, "define min ccd tempature", NAN); 102 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, "define max ccd tempature", NAN); 103 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-posang_min", 0, "define min rotator position angle", NAN); 104 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 105 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-solang_min", 0, "define min solar angle", NAN); 106 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-solang_max", 0, "define max solar angle", NAN); 107 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 108 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-time_begin", 0, "detrend applies to exposures taken during this period", NULL); 109 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-time_end", 0, "detrend applies to exposures taken during this period", NULL); 110 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-use_begin", 0, "start of detrend run applicable period", NULL); 111 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-use_end", 0, "end of detrend run applicable period", NULL); 112 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_type", 0, "search for exp_type", NULL); 113 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_inst", 0, "search for camera", NULL); 114 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_telescope", 0, "search for telescope", NULL); 115 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_filter", 0, "search for filter", NULL); 116 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_uri", 0, "search for uri", NULL); 117 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_begin", 0, "search for exposures by time (>=)", NULL); 118 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_end", 0, "search for exposures by time (<)", NULL); 119 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_min", 0, "define min airmass", NAN); 120 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_max", 0, "define max airmass", NAN); 121 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_sat_pixel_frac_max", 0, "define max fraction of saturated pixels", NAN); 122 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_min", 0, "define min exposure time", NAN); 123 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_max", 0, "define max exposure time", NAN); 124 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_min", 0, "define min ccd tempature", NAN); 125 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_max", 0, "define max ccd tempature", NAN); 126 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_pon_time_min", 0, "define min power-on time", NAN); 127 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_pon_time_max", 0, "define max power-on time", NAN); 128 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_min", 0, "define min rotator position angle", NAN); 129 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_max", 0, "define max rotator position angle", NAN); 130 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_min", 0, "define min solar angle", NAN); 131 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_max", 0, "define max solar angle", NAN); 132 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-pretend", 0, "print the exposures that would be included in the detrend run and exit", false); 133 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-reduction", 0, "define reduction class for processing", NULL); 134 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", 0, "define detrun label", NULL); 135 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 136 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-random_subset", 0, "use a random subset of elements", false); 137 psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-random_limit", 0, "use this number of random elements", 20); 221 138 222 139 // -definebydetrun 223 140 psMetadata *definebydetrunArgs = psMetadataAlloc(); 224 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-det_id", 0, 225 "det ID to base a new detRun on (required)", NULL); 226 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_det_type", 0, 227 "define the type of detrend run", NULL); 228 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_mode", 0, 229 "define the mode of this detrend run", "master"); 230 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_exp_type", 0, 231 "define exposure type", NULL); 232 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_filelevel", 0, 233 "define filelevel", NULL); 234 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_workdir", 0, 235 "define workdir", NULL); 236 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_filter", 0, 237 "define filter ", NULL); 238 psMetadataAddF32(definebydetrunArgs, PS_LIST_TAIL, "-set_airmass_min", 0, 239 "define airmass", NAN); 240 psMetadataAddF32(definebydetrunArgs, PS_LIST_TAIL, "-set_airmass_max", 0, 241 "define airmass", NAN); 242 psMetadataAddF32(definebydetrunArgs, PS_LIST_TAIL, "-set_exp_time_min", 0, 243 "define exposure time", NAN); 244 psMetadataAddF32(definebydetrunArgs, PS_LIST_TAIL, "-set_exp_time_max", 0, 245 "define exposure time", NAN); 246 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_ccd_temp_min", 0, 247 "define ccd tempature", NAN); 248 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_ccd_temp_max", 0, 249 "define ccd tempature", NAN); 250 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_posang_min", 0, 251 "define rotator position angle", NAN); 252 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_posang_max", 0, 253 "define rotator position angle", NAN); 254 psMetadataAddTime(definebydetrunArgs, PS_LIST_TAIL, "-set_registered", 0, 255 "time detrend run was registered", now); 256 psMetadataAddTime(definebydetrunArgs, PS_LIST_TAIL, "-set_time_begin", 0, 257 "start of period to apply detrend too", NULL); 258 psMetadataAddTime(definebydetrunArgs, PS_LIST_TAIL, "-set_time_end", 0, 259 "end of period to apply detrend too", NULL); 260 psMetadataAddTime(definebydetrunArgs, PS_LIST_TAIL, "-set_use_begin", 0, 261 "start of detrend run applicable period", NULL); 262 psMetadataAddTime(definebydetrunArgs, PS_LIST_TAIL, "-set_use_end", 0, 263 "end of detrend run applicable period", NULL); 264 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_solang_min", 0, 265 "define solar angle", NAN); 266 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_solang_max", 0, 267 "define solar angle", NAN); 268 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-filter_input_begin", 0, 269 "filter input detrun exp to be in this period", NULL); 270 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-filter_input_end", 0, 271 "filter input detrun exp to be in this period", NULL); 272 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_reduction", 0, 273 "define reduction class for processing", NULL); 274 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_label", 0, 275 "define detrun label", NULL); 276 psMetadataAddBool(definebydetrunArgs, PS_LIST_TAIL, "-simple", 0, 277 "use the simple output format", false); 278 141 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-det_id", 0, "det ID to base a new detRun on (required)", NULL); 142 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_det_type", 0, "define the type of detrend run", NULL); 143 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_mode", 0, "define the mode of this detrend run", "master"); 144 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_exp_type", 0, "define exposure type", NULL); 145 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_filelevel", 0, "define filelevel", NULL); 146 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir", NULL); 147 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_filter", 0, "define filter ", NULL); 148 psMetadataAddF32(definebydetrunArgs, PS_LIST_TAIL, "-set_airmass_min", 0, "define airmass", NAN); 149 psMetadataAddF32(definebydetrunArgs, PS_LIST_TAIL, "-set_airmass_max", 0, "define airmass", NAN); 150 psMetadataAddF32(definebydetrunArgs, PS_LIST_TAIL, "-set_exp_time_min", 0, "define exposure time", NAN); 151 psMetadataAddF32(definebydetrunArgs, PS_LIST_TAIL, "-set_exp_time_max", 0, "define exposure time", NAN); 152 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_ccd_temp_min", 0, "define ccd tempature", NAN); 153 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_ccd_temp_max", 0, "define ccd tempature", NAN); 154 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_posang_min", 0, "define rotator position angle", NAN); 155 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_posang_max", 0, "define rotator position angle", NAN); 156 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_solang_min", 0, "define solar angle", NAN); 157 psMetadataAddF64(definebydetrunArgs, PS_LIST_TAIL, "-set_solang_max", 0, "define solar angle", NAN); 158 psMetadataAddTime(definebydetrunArgs, PS_LIST_TAIL, "-set_registered", 0, "time detrend run was registered", now); 159 psMetadataAddTime(definebydetrunArgs, PS_LIST_TAIL, "-set_time_begin", 0, "start of period to apply detrend too", NULL); 160 psMetadataAddTime(definebydetrunArgs, PS_LIST_TAIL, "-set_time_end", 0, "end of period to apply detrend too", NULL); 161 psMetadataAddTime(definebydetrunArgs, PS_LIST_TAIL, "-set_use_begin", 0, "start of detrend run applicable period", NULL); 162 psMetadataAddTime(definebydetrunArgs, PS_LIST_TAIL, "-set_use_end", 0, "end of detrend run applicable period", NULL); 163 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_reduction", 0, "define reduction class for processing", NULL); 164 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_label", 0, "define detrun label", NULL); 165 psMetadataAddBool(definebydetrunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 166 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_input_begin", 0, "require input exp to be in this period", NULL); 167 psMetadataAddStr(definebydetrunArgs, PS_LIST_TAIL, "-set_input_end", 0, "require input exp to be in this period", NULL); 168 169 // XXX EAM : it looks like the corresponding dettool functions don't exist: 279 170 // -makecorrection 280 171 psMetadata *makecorrectionArgs = psMetadataAlloc(); 281 psMetadataAddStr(makecorrectionArgs, PS_LIST_TAIL, "-det_id", 0, 282 "det ID to be corrected (required)", NULL); 283 psMetadataAddBool(makecorrectionArgs, PS_LIST_TAIL, "-simple", 0, 284 "use the simple output format", false); 172 psMetadataAddStr(makecorrectionArgs, PS_LIST_TAIL, "-det_id", 0, "det ID to be corrected (required)", NULL); 173 psMetadataAddBool(makecorrectionArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 285 174 286 175 // -tocorrectexp 287 176 psMetadata *tocorrectexpArgs = psMetadataAlloc(); 288 psMetadataAddU64(tocorrectexpArgs, PS_LIST_TAIL, "-limit", 0, 289 "limit result set to N items", 0); 290 psMetadataAddBool(tocorrectexpArgs, PS_LIST_TAIL, "-simple", 0, 291 "use the simple output format", false); 177 psMetadataAddU64(tocorrectexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 178 psMetadataAddBool(tocorrectexpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 292 179 293 180 // -tocorrectimfile 294 181 psMetadata *tocorrectimfileArgs = psMetadataAlloc(); 295 psMetadataAddStr(tocorrectimfileArgs, PS_LIST_TAIL, "-det_id", 0, 296 "search for detrend ID", NULL); 297 psMetadataAddU64(tocorrectimfileArgs, PS_LIST_TAIL, "-limit", 0, 298 "limit result set to N items", 0); 299 psMetadataAddBool(tocorrectimfileArgs, PS_LIST_TAIL, "-simple", 0, 300 "use the simple output format", false); 182 psMetadataAddStr(tocorrectimfileArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID", NULL); 183 psMetadataAddU64(tocorrectimfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 184 psMetadataAddBool(tocorrectimfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 301 185 302 186 // -addcorrectimfile 303 187 psMetadata *addcorrectimfileArgs = psMetadataAlloc(); 304 psMetadataAddStr(addcorrectimfileArgs, PS_LIST_TAIL, "-det_id", 0, 305 "define detrend ID (required)", NULL); 306 psMetadataAddStr(addcorrectimfileArgs, PS_LIST_TAIL, "-class_id", 0, 307 "search for class ID (required)", NULL); 308 psMetadataAddStr(addcorrectimfileArgs, PS_LIST_TAIL, "-uri", 0, 309 "define resid file URI", NULL); 310 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-bg", 0, 311 "define exposure background", NAN); 312 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-bg_stdev", 0, 313 "define exposure background stdev", NAN); 314 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 315 "define exposure background mean stdev", NAN); 316 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-user_1", 0, 317 "define user statistic (1)", NAN); 318 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-user_2", 0, 319 "define user statistic (2)", NAN); 320 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-user_3", 0, 321 "define user statistic (3)", NAN); 322 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-user_4", 0, 323 "define user statistic (4)", NAN); 324 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-user_5", 0, 325 "define user statistic (5)", NAN); 326 psMetadataAddStr(addcorrectimfileArgs, PS_LIST_TAIL, "-path_base", 0, 327 "define base output location", NULL); 188 psMetadataAddStr(addcorrectimfileArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", NULL); 189 psMetadataAddStr(addcorrectimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search for class ID (required)", NULL); 190 psMetadataAddStr(addcorrectimfileArgs, PS_LIST_TAIL, "-uri", 0, "define resid file URI", NULL); 191 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 192 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 193 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 194 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-user_1", 0, "define user statistic (1)", NAN); 195 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-user_2", 0, "define user statistic (2)", NAN); 196 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-user_3", 0, "define user statistic (3)", NAN); 197 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-user_4", 0, "define user statistic (4)", NAN); 198 psMetadataAddF64(addcorrectimfileArgs, PS_LIST_TAIL, "-user_5", 0, "define user statistic (5)", NAN); 199 psMetadataAddStr(addcorrectimfileArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 328 200 329 201 // -runs 330 202 psMetadata *runsArgs = psMetadataAlloc(); 331 psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-det_type", 0, 332 "search for type of detrend run", NULL); 333 psMetadataAddBool(runsArgs, PS_LIST_TAIL, "-simple", 0, 334 "use the simple output format", false); 335 psMetadataAddBool(runsArgs, PS_LIST_TAIL, "-active", 0, 336 "only return active detRuns", false); 337 psMetadataAddU64(runsArgs, PS_LIST_TAIL, "-limit", 0, 338 "limit result set to N items", 0); 339 psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-det_id", 0, 340 "search for detrend ID", NULL); 341 342 psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-inst", 0, 343 "search for camera (instrument)", NULL); 344 psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-telescope", 0, 345 "search for telescope", NULL); 346 psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-filter", 0, 347 "search for filter", NULL); 348 349 psMetadataAddF32(runsArgs, PS_LIST_TAIL, "-airmass", 0, 350 "match airmass", NAN); 351 psMetadataAddF32(runsArgs, PS_LIST_TAIL, "-exp_time", 0, 352 "match exp time", NAN); 353 psMetadataAddF32(runsArgs, PS_LIST_TAIL, "-ccd_temp", 0, 354 "match ccd temp", NAN); 355 psMetadataAddF64(runsArgs, PS_LIST_TAIL, "-posang", 0, 356 "match posang", NAN); 203 psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-det_type", 0, "search for type of detrend run", NULL); 204 psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID", NULL); 205 psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-inst", 0, "search for camera (instrument)", NULL); 206 psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-telescope", 0, "search for telescope", NULL); 207 psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-filter", 0, "search for filter", NULL); 208 psMetadataAddF32(runsArgs, PS_LIST_TAIL, "-airmass", 0, "match airmass", NAN); 209 psMetadataAddF32(runsArgs, PS_LIST_TAIL, "-exp_time", 0, "match exp time", NAN); 210 psMetadataAddF32(runsArgs, PS_LIST_TAIL, "-ccd_temp", 0, "match ccd temp", NAN); 211 psMetadataAddF64(runsArgs, PS_LIST_TAIL, "-posang", 0, "match posang", NAN); 212 psMetadataAddBool(runsArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 213 psMetadataAddBool(runsArgs, PS_LIST_TAIL, "-active", 0, "only return active detRuns", false); 214 psMetadataAddU64(runsArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 357 215 358 216 // -childlessrun 359 217 psMetadata *childlessrunArgs = psMetadataAlloc(); 360 psMetadataAddStr(childlessrunArgs, PS_LIST_TAIL, "-det_type", 0, 361 "search for type of detrend run", NULL); 362 psMetadataAddU64(childlessrunArgs, PS_LIST_TAIL, "-limit", 0, 363 "limit result set to N items", 0); 364 psMetadataAddBool(childlessrunArgs, PS_LIST_TAIL, "-simple", 0, 365 "use the simple output format", false); 218 psMetadataAddStr(childlessrunArgs, PS_LIST_TAIL, "-det_type", 0, "search for type of detrend run", NULL); 219 psMetadataAddU64(childlessrunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 220 psMetadataAddBool(childlessrunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 366 221 367 222 // -input 368 223 psMetadata *inputArgs = psMetadataAlloc(); 369 psMetadataAddStr(inputArgs, PS_LIST_TAIL, "-det_id", 0, 370 "search for detrend ID", NULL); 371 psMetadataAddS32(inputArgs, PS_LIST_TAIL, "-iteration", 0, 372 "define iteration number", 0); 373 psMetadataAddStr(inputArgs, PS_LIST_TAIL, "-exp_id", 0, 374 "search for exp ID", NULL); 375 psMetadataAddBool(inputArgs, PS_LIST_TAIL, "-simple", 0, 376 "use the simple output format", false); 224 psMetadataAddStr(inputArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID", NULL); 225 psMetadataAddS32(inputArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 226 psMetadataAddS64(inputArgs, PS_LIST_TAIL, "-exp_id", 0, "search for exp ID", NULL); 227 psMetadataAddBool(inputArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 377 228 378 229 // -raw 379 230 psMetadata *rawArgs = psMetadataAlloc(); 380 psMetadataAddBool(rawArgs, PS_LIST_TAIL, "-simple", 0, 381 "use the simple output format", false); 231 psMetadataAddBool(rawArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 382 232 383 233 // -toprocessedimfile 384 234 psMetadata *toprocessedimfileArgs = psMetadataAlloc(); 385 psMetadataAddStr(toprocessedimfileArgs, PS_LIST_TAIL, "-det_id", 0, 386 "search for detrend ID", NULL); 387 psMetadataAddStr(toprocessedimfileArgs, PS_LIST_TAIL, "-exp_id", 0, 388 "search for exp ID", NULL); 389 psMetadataAddStr(toprocessedimfileArgs, PS_LIST_TAIL, "-class_id", 0, 390 "search for class ID", NULL); 391 psMetadataAddU64(toprocessedimfileArgs, PS_LIST_TAIL, "-limit", 0, 392 "limit result set to N items", 0); 393 psMetadataAddBool(toprocessedimfileArgs, PS_LIST_TAIL, "-simple", 0, 394 "use the simple output format", false); 235 psMetadataAddStr(toprocessedimfileArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID", NULL); 236 psMetadataAddStr(toprocessedimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "search for exp ID", NULL); 237 psMetadataAddStr(toprocessedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search for class ID", NULL); 238 psMetadataAddU64(toprocessedimfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 239 psMetadataAddBool(toprocessedimfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 395 240 396 241 // -addprocessedimfile 397 242 psMetadata *addprocessedimfileArgs = psMetadataAlloc(); 398 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-det_id", 0, 399 "define detrend ID (required)", NULL); 400 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_id", 0, 401 "define exp ID (required)", NULL); 402 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-class_id", 0, 403 "define class ID (required)", NULL); 404 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-uri", 0, 405 "define URI", NULL); 406 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-recip", 0, 407 "define recipe", NULL); 408 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-bg", 0, 409 "define exposure background", NAN); 410 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-bg_stdev", 0, 411 "define exposure background stdev", NAN); 412 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 413 "define exposure background mean stdev", NAN); 414 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-fringe_0", 0, 415 "define fringe slope (0th term)", NAN); 416 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-fringe_1", 0, 417 "define fringe slope (1st term)", NAN); 418 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-fringe_2", 0, 419 "define fringe slope (2nd term)", NAN); 420 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_1", 0, 421 "define user statistic (1)", NAN); 422 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_2", 0, 423 "define user statistic (2)", NAN); 424 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_3", 0, 425 "define user statistic (3)", NAN); 426 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_4", 0, 427 "define user statistic (4)", NAN); 428 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_5", 0, 429 "define user statistic (5)", NAN); 430 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-path_base", 0, 431 "define base output location", NULL); 432 psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "-code", 0, 433 "set fault code", 0); 243 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", NULL); 244 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "define exp ID (required)", NULL); 245 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "define class ID (required)", NULL); 246 psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 247 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-uri", 0, "define URI", NULL); 248 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-recip", 0, "define recipe", NULL); 249 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 250 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 251 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 252 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-fringe_0", 0, "define fringe slope (0th term)", NAN); 253 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-fringe_1", 0, "define fringe slope (1st term)", NAN); 254 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-fringe_2", 0, "define fringe slope (2nd term)", NAN); 255 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_1", 0, "define user statistic (1)", NAN); 256 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_2", 0, "define user statistic (2)", NAN); 257 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_3", 0, "define user statistic (3)", NAN); 258 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_4", 0, "define user statistic (4)", NAN); 259 psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_5", 0, "define user statistic (5)", NAN); 260 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 434 261 435 262 // -processedimfile 436 263 psMetadata *processedimfileArgs = psMetadataAlloc(); 437 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-det_id", 0, 438 "search for detrend ID", NULL); 439 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-exp_id", 0, 440 "search for exp ID", NULL); 441 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-class_id", 0, 442 "search for class ID", NULL); 443 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-select_state", 0, 444 "search for state", NULL); 445 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-select_mode", 0, 446 "search for mode", NULL); 447 psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-chip", 0, 448 "restrict results to completed 'chip' sets", false); 449 psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-exp", 0, 450 "restrict results to complete 'exposures'", false); 451 psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-included", 0, 452 "restrict results to exposures 'includeded' in the current iteration", false); 453 psMetadataAddU64(processedimfileArgs, PS_LIST_TAIL, "-limit", 0, 454 "limit result set to N items", 0); 455 psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-faulted", 0, 456 "only return imfiles with a fault status set", false); 457 psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-simple", 0, 458 "use the simple output format", false); 264 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID", NULL); 265 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "search for exp ID", NULL); 266 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search for class ID", NULL); 267 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-select_state", 0, "search for state", NULL); 268 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-select_mode", 0, "search for mode", NULL); 269 psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-included", 0, "restrict results to exposures 'includeded' in the current iteration", false); 270 psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 271 psMetadataAddU64(processedimfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 272 psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 273 274 // XXX these don't seem to be used anymore 275 // psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-chip", 0, "restrict results to completed 'chip' sets", false); 276 // psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-exp", 0, "restrict results to complete 'exposures'", false); 459 277 460 278 // -revertprocessedimfile 461 279 psMetadata *revertprocessedimfileArgs = psMetadataAlloc(); 462 psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-det_id", 0, 463 "search for detrend ID (required)", NULL); 464 psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_id", 0, 465 "search by exposure ID", NULL); 466 psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-class_id", 0, 467 "search by class ID", NULL); 468 psMetadataAddS16(revertprocessedimfileArgs, PS_LIST_TAIL, "-code", 0, 469 "search by fault code", 0); 280 psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID (required)", NULL); 281 psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", NULL); 282 psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 283 psMetadataAddS16(revertprocessedimfileArgs, PS_LIST_TAIL, "-code", 0, "search by fault code", 0); 470 284 471 285 // -toprocessedexp 472 286 psMetadata *toprocessedexpArgs = psMetadataAlloc(); 473 psMetadataAddU64(toprocessedexpArgs, PS_LIST_TAIL, "-limit", 0, 474 "limit result set to N items", 0); 475 psMetadataAddBool(toprocessedexpArgs, PS_LIST_TAIL, "-simple", 0, 476 "use the simple output format", false); 287 psMetadataAddU64(toprocessedexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 288 psMetadataAddBool(toprocessedexpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 477 289 478 290 // -addproccessedexp 479 291 psMetadata *addprocessedexpArgs = psMetadataAlloc(); 480 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-det_id", 0, 481 "define detrend ID (required)", NULL); 482 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_id", 0, 483 "define detrend ID (required)", NULL); 484 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-recip", 0, 485 "define recipe", NULL); 486 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg", 0, 487 "define exposure background", NAN); 488 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, 489 "define exposure background stdev", NAN); 490 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 491 "define exposure background mean stdev", NAN); 492 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-fringe_0", 0, 493 "define fringe slope (0th term)", NAN); 494 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-fringe_1", 0, 495 "define fringe slope (1st term)", NAN); 496 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-fringe_2", 0, 497 "define fringe slope (2nd term)", NAN); 498 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_1", 0, 499 "define user statistic (1)", NAN); 500 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_2", 0, 501 "define user statistic (2)", NAN); 502 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_3", 0, 503 "define user statistic (3)", NAN); 504 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_4", 0, 505 "define user statistic (4)", NAN); 506 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_5", 0, 507 "define user statistic (5)", NAN); 508 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-path_base", 0, 509 "define base output location", NULL); 510 psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-code", 0, 511 "set fault code", 0); 292 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", NULL); 293 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_id", 0, "define detrend ID (required)", NULL); 294 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-recip", 0, "define recipe", NULL); 295 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 296 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 297 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 298 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-fringe_0", 0, "define fringe slope (0th term)", NAN); 299 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-fringe_1", 0, "define fringe slope (1st term)", NAN); 300 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-fringe_2", 0, "define fringe slope (2nd term)", NAN); 301 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_1", 0, "define user statistic (1)", NAN); 302 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_2", 0, "define user statistic (2)", NAN); 303 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_3", 0, "define user statistic (3)", NAN); 304 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_4", 0, "define user statistic (4)", NAN); 305 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_5", 0, "define user statistic (5)", NAN); 306 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 307 psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 512 308 513 309 // -proccessedexp 514 310 psMetadata *processedexpArgs = psMetadataAlloc(); 515 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-det_id", 0, 516 "define detrend ID", NULL); 517 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-exp_id", 0, 518 "define detrend ID", NULL); 519 psMetadataAddU64(processedexpArgs, PS_LIST_TAIL, "-limit", 0, 520 "limit result set to N items", 0); 521 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-faulted", 0, 522 "only return imfiles with a fault status set", false); 523 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-simple", 0, 524 "use the simple output format", false); 311 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID", NULL); 312 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exp ID", NULL); 313 psMetadataAddU64(processedexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 314 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 315 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 525 316 526 317 // -revertprocessedexp 527 318 psMetadata *revertprocessedexpArgs = psMetadataAlloc(); 528 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-det_id", 0, 529 "search by detrend ID (required)", NULL); 530 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id", 0, 531 "search by exposure ID", NULL); 532 psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "-code", 0, 533 "search by fault code", 0); 319 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID (required)", NULL); 320 psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", NULL); 321 psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "-code", 0, "search by fault code", 0); 534 322 535 323 // -tostacked 536 324 psMetadata *tostackedArgs = psMetadataAlloc(); 537 psMetadataAddU64(tostackedArgs, PS_LIST_TAIL, "-limit", 0, 538 "limit result set to N items", 0); 539 psMetadataAddBool(tostackedArgs, PS_LIST_TAIL, "-simple", 0, 540 "use the simple output format", false); 325 psMetadataAddU64(tostackedArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 326 psMetadataAddBool(tostackedArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 541 327 542 328 // -addstacked 543 329 psMetadata *addstackedArgs = psMetadataAlloc(); 544 psMetadataAddStr(addstackedArgs, PS_LIST_TAIL, "-det_id", 0, 545 "define detrend ID (required)", NULL); 546 psMetadataAddS32(addstackedArgs, PS_LIST_TAIL, "-iteration", 0, 547 "define iteration number", 0); 548 psMetadataAddStr(addstackedArgs, PS_LIST_TAIL, "-class_id", 0, 549 "define class ID (required)", NULL); 550 psMetadataAddStr(addstackedArgs, PS_LIST_TAIL, "-recip", 0, 551 "define recipe", NULL); 552 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-bg", 0, 553 "define exposure background", NAN); 554 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-bg_stdev", 0, 555 "define exposure background stdev", NAN); 556 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 557 "define exposure background mean stdev", NAN); 558 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-user_1", 0, 559 "define user statistic (1)", NAN); 560 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-user_2", 0, 561 "define user statistic (2)", NAN); 562 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-user_3", 0, 563 "define user statistic (3)", NAN); 564 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-user_4", 0, 565 "define user statistic (4)", NAN); 566 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-user_5", 0, 567 "define user statistic (5)", NAN); 568 psMetadataAddStr(addstackedArgs, PS_LIST_TAIL, "-uri", 0, 569 "define URI", NULL); 570 psMetadataAddS16(addstackedArgs, PS_LIST_TAIL, "-code", 0, 571 "set fault code", 0); 330 psMetadataAddStr(addstackedArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", NULL); 331 psMetadataAddS32(addstackedArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number (required)", 0); 332 psMetadataAddStr(addstackedArgs, PS_LIST_TAIL, "-class_id", 0, "define class ID (required)", NULL); 333 psMetadataAddS16(addstackedArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 334 psMetadataAddStr(addstackedArgs, PS_LIST_TAIL, "-uri", 0, "define URI", NULL); 335 psMetadataAddStr(addstackedArgs, PS_LIST_TAIL, "-recip", 0, "define recipe", NULL); 336 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 337 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 338 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 339 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-user_1", 0, "define user statistic (1)", NAN); 340 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-user_2", 0, "define user statistic (2)", NAN); 341 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-user_3", 0, "define user statistic (3)", NAN); 342 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-user_4", 0, "define user statistic (4)", NAN); 343 psMetadataAddF64(addstackedArgs, PS_LIST_TAIL, "-user_5", 0, "define user statistic (5)", NAN); 572 344 573 345 // -stacked 574 346 psMetadata *stackedArgs = psMetadataAlloc(); 575 psMetadataAddStr(stackedArgs, PS_LIST_TAIL, "-det_id", 0, 576 "search for detrend ID", NULL); 577 psMetadataAddS32(stackedArgs, PS_LIST_TAIL, "-iteration", 0, 578 "search for iteration number", 0); 579 psMetadataAddStr(stackedArgs, PS_LIST_TAIL, "-class_id", 0, 580 "search for class ID", NULL); 581 psMetadataAddStr(stackedArgs, PS_LIST_TAIL, "-recip", 0, 582 "search for recipe", NULL); 583 psMetadataAddU64(stackedArgs, PS_LIST_TAIL, "-limit", 0, 584 "limit result set to N items", 0); 585 psMetadataAddBool(stackedArgs, PS_LIST_TAIL, "-faulted", 0, 586 "only return imfiles with a fault status set", false); 587 psMetadataAddBool(stackedArgs, PS_LIST_TAIL, "-simple", 0, 588 "use the simple output format", false); 347 psMetadataAddStr(stackedArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID", NULL); 348 psMetadataAddS32(stackedArgs, PS_LIST_TAIL, "-iteration", 0, "search for iteration number", 0); 349 psMetadataAddStr(stackedArgs, PS_LIST_TAIL, "-class_id", 0, "search for class ID", NULL); 350 psMetadataAddStr(stackedArgs, PS_LIST_TAIL, "-recip", 0, "search for recipe", NULL); 351 psMetadataAddU64(stackedArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 352 psMetadataAddBool(stackedArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 353 psMetadataAddBool(stackedArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 589 354 590 355 // -revertstacked 591 356 psMetadata *revertstackedArgs= psMetadataAlloc(); 592 psMetadataAddStr(revertstackedArgs, PS_LIST_TAIL, "-det_id", 0, 593 "search for detrend ID (required)", NULL); 594 psMetadataAddS32(revertstackedArgs, PS_LIST_TAIL, "-iteration", 0, 595 "search by iteration number", 0); 596 psMetadataAddStr(revertstackedArgs, PS_LIST_TAIL, "-class_id", 0, 597 "search by class ID", NULL); 598 psMetadataAddS16(revertstackedArgs, PS_LIST_TAIL, "-code", 0, 599 "search by fault code", 0); 357 psMetadataAddStr(revertstackedArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID (required)", NULL); 358 psMetadataAddS32(revertstackedArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 359 psMetadataAddStr(revertstackedArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 360 psMetadataAddS16(revertstackedArgs, PS_LIST_TAIL, "-code", 0, "search by fault code", 0); 361 362 // -tonormalizedstat 363 psMetadata *tonormalizedstatArgs = psMetadataAlloc(); 364 psMetadataAddU64(tonormalizedstatArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 365 psMetadataAddBool(tonormalizedstatArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 366 367 // -addnormalizedstat 368 psMetadata *addnormstatArgs = psMetadataAlloc(); 369 psMetadataAddStr(addnormstatArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", NULL); 370 psMetadataAddS32(addnormstatArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 371 psMetadataAddStr(addnormstatArgs, PS_LIST_TAIL, "-class_id", 0, "define class ID (required)", NULL); 372 psMetadataAddF32(addnormstatArgs, PS_LIST_TAIL, "-norm", 0, "define normal value (required)", NAN); 373 psMetadataAddS16(addnormstatArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 374 375 // -normalizedstat 376 psMetadata *normalizedstatArgs = psMetadataAlloc(); 377 psMetadataAddStr(normalizedstatArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID", NULL); 378 psMetadataAddS32(normalizedstatArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 379 psMetadataAddStr(normalizedstatArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 380 psMetadataAddU64(normalizedstatArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 381 psMetadataAddBool(normalizedstatArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 382 psMetadataAddBool(normalizedstatArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 383 384 // -revertnormalizedstat 385 psMetadata *revertnormalizedstatArgs= psMetadataAlloc(); 386 psMetadataAddStr(revertnormalizedstatArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID (required)", NULL); 387 psMetadataAddS32(revertnormalizedstatArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 388 psMetadataAddStr(revertnormalizedstatArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 389 psMetadataAddS16(revertnormalizedstatArgs, PS_LIST_TAIL, "-code", 0, "search by fault code", 0); 600 390 601 391 // -tonormalize 602 392 psMetadata *tonormalizeArgs = psMetadataAlloc(); 603 psMetadataAddU64(tonormalizeArgs, PS_LIST_TAIL, "-limit", 0, 604 "limit result set to N items", 0); 605 psMetadataAddBool(tonormalizeArgs, PS_LIST_TAIL, "-simple", 0, 606 "use the simple output format", false); 607 608 // -addnormalizedstat 609 psMetadata *addnormstatArgs = psMetadataAlloc(); 610 psMetadataAddStr(addnormstatArgs, PS_LIST_TAIL, "-det_id", 0, 611 "define detrend ID (required)", NULL); 612 psMetadataAddS32(addnormstatArgs, PS_LIST_TAIL, "-iteration", 0, 613 "define iteration number", 0); 614 psMetadataAddStr(addnormstatArgs, PS_LIST_TAIL, "-class_id", 0, 615 "define class ID (required)", NULL); 616 psMetadataAddF32(addnormstatArgs, PS_LIST_TAIL, "-norm", 0, 617 "define normal value (required)", NAN); 618 psMetadataAddS16(addnormstatArgs, PS_LIST_TAIL, "-code", 0, 619 "set fault code", 0); 620 621 // -normalizedstat 622 psMetadata *normalizedstatArgs = psMetadataAlloc(); 623 psMetadataAddStr(normalizedstatArgs, PS_LIST_TAIL, "-det_id", 0, 624 "search by detrend ID", NULL); 625 psMetadataAddS32(normalizedstatArgs, PS_LIST_TAIL, "-iteration", 0, 626 "search by iteration number", 0); 627 psMetadataAddStr(normalizedstatArgs, PS_LIST_TAIL, "-class_id", 0, 628 "search by class ID", NULL); 629 psMetadataAddU64(normalizedstatArgs, PS_LIST_TAIL, "-limit", 0, 630 "limit result set to N items", 0); 631 psMetadataAddBool(normalizedstatArgs, PS_LIST_TAIL, "-faulted", 0, 632 "only return imfiles with a fault status set", false); 633 psMetadataAddBool(normalizedstatArgs, PS_LIST_TAIL, "-simple", 0, 634 "use the simple output format", false); 635 636 // -revertnormalizedstat 637 psMetadata *revertnormalizedstatArgs= psMetadataAlloc(); 638 psMetadataAddStr(revertnormalizedstatArgs, PS_LIST_TAIL, "-det_id", 0, 639 "search by detrend ID (required)", NULL); 640 psMetadataAddS32(revertnormalizedstatArgs, PS_LIST_TAIL, "-iteration", 0, 641 "search by iteration number", 0); 642 psMetadataAddStr(revertnormalizedstatArgs, PS_LIST_TAIL, "-class_id", 0, 643 "search by class ID", NULL); 644 psMetadataAddS16(revertnormalizedstatArgs, PS_LIST_TAIL, "-code", 0, 645 "search by fault code", 0); 646 647 // -tonormstat 648 psMetadata *tonormstatArgs = psMetadataAlloc(); 649 psMetadataAddU64(tonormstatArgs, PS_LIST_TAIL, "-limit", 0, 650 "limit result set to N items", 0); 651 psMetadataAddBool(tonormstatArgs, PS_LIST_TAIL, "-simple", 0, 652 "use the simple output format", false); 393 psMetadataAddU64(tonormalizeArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 394 psMetadataAddBool(tonormalizeArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 653 395 654 396 // -addnormalizedimfile 655 397 psMetadata *addnormalizedimfileArgs = psMetadataAlloc(); 656 psMetadataAddStr(addnormalizedimfileArgs, PS_LIST_TAIL, "-det_id", 0, 657 "define detrend ID (required)", NULL); 658 psMetadataAddS32(addnormalizedimfileArgs, PS_LIST_TAIL, "-iteration", 0, 659 "define iteration number", 0); 660 psMetadataAddStr(addnormalizedimfileArgs, PS_LIST_TAIL, "-class_id", 0, 661 "define class ID (required)", NULL); 662 psMetadataAddStr(addnormalizedimfileArgs, PS_LIST_TAIL, "-uri", 0, 663 "define URI", NULL); 664 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-bg", 0, 665 "define exposure background", NAN); 666 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-bg_stdev", 0, 667 "define exposure background stdev", NAN); 668 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 669 "define exposure background mean stdev", NAN); 670 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-user_1", 0, 671 "define user statistic (1)", NAN); 672 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-user_2", 0, 673 "define user statistic (2)", NAN); 674 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-user_3", 0, 675 "define user statistic (3)", NAN); 676 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-user_4", 0, 677 "define user statistic (4)", NAN); 678 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-user_5", 0, 679 "define user statistic (5)", NAN); 680 psMetadataAddStr(addnormalizedimfileArgs, PS_LIST_TAIL, "-path_base", 0, 681 "define base output location", NULL); 682 psMetadataAddS16(addnormalizedimfileArgs, PS_LIST_TAIL, "-code", 0, 683 "set fault code", 0); 398 psMetadataAddStr(addnormalizedimfileArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", NULL); 399 psMetadataAddS32(addnormalizedimfileArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 400 psMetadataAddStr(addnormalizedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "define class ID (required)", NULL); 401 psMetadataAddS16(addnormalizedimfileArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 402 psMetadataAddStr(addnormalizedimfileArgs, PS_LIST_TAIL, "-uri", 0, "define URI", NULL); 403 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 404 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 405 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 406 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-user_1", 0, "define user statistic (1)", NAN); 407 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-user_2", 0, "define user statistic (2)", NAN); 408 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-user_3", 0, "define user statistic (3)", NAN); 409 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-user_4", 0, "define user statistic (4)", NAN); 410 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-user_5", 0, "define user statistic (5)", NAN); 411 psMetadataAddStr(addnormalizedimfileArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 684 412 685 413 // -normalizedimfile 686 414 psMetadata *normalizedimfileArgs = psMetadataAlloc(); 687 psMetadataAddStr(normalizedimfileArgs, PS_LIST_TAIL, "-det_id", 0, 688 "search for detrend ID", NULL); 689 psMetadataAddS32(normalizedimfileArgs, PS_LIST_TAIL, "-iteration", 0, 690 "search for iteration number", 0); 691 psMetadataAddStr(normalizedimfileArgs, PS_LIST_TAIL, "-class_id", 0, 692 "search for class ID", NULL); 693 psMetadataAddStr(normalizedimfileArgs, PS_LIST_TAIL, "-recip", 0, 694 "search for recipe", NULL); 695 psMetadataAddU64(normalizedimfileArgs, PS_LIST_TAIL, "-limit", 0, 696 "limit result set to N items", 0); 697 psMetadataAddBool(normalizedimfileArgs, PS_LIST_TAIL, "-faulted", 0, 698 "only return imfiles with a fault status set", false); 699 psMetadataAddBool(normalizedimfileArgs, PS_LIST_TAIL, "-simple", 0, 700 "use the simple output format", false); 415 psMetadataAddStr(normalizedimfileArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID", NULL); 416 psMetadataAddS32(normalizedimfileArgs, PS_LIST_TAIL, "-iteration", 0, "search for iteration number", 0); 417 psMetadataAddStr(normalizedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search for class ID", NULL); 418 psMetadataAddStr(normalizedimfileArgs, PS_LIST_TAIL, "-recip", 0, "search for recipe", NULL); 419 psMetadataAddU64(normalizedimfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 420 psMetadataAddBool(normalizedimfileArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 421 psMetadataAddBool(normalizedimfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 701 422 702 423 // -revertnormalizedimfile 703 424 psMetadata *revertnormalizedimfileArgs = psMetadataAlloc(); 704 psMetadataAddStr(revertnormalizedimfileArgs, PS_LIST_TAIL, "-det_id", 0, 705 "search by detrend ID (required)", NULL); 706 psMetadataAddS32(revertnormalizedimfileArgs, PS_LIST_TAIL, "-iteration", 0, 707 "search by iteration number", 0); 708 psMetadataAddStr(revertnormalizedimfileArgs, PS_LIST_TAIL, "-class_id", 0, 709 "search by class ID", NULL); 710 psMetadataAddS16(revertnormalizedimfileArgs, PS_LIST_TAIL, "-code", 0, 711 "search by fault code", 0); 425 psMetadataAddStr(revertnormalizedimfileArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID (required)", NULL); 426 psMetadataAddS32(revertnormalizedimfileArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 427 psMetadataAddStr(revertnormalizedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 428 psMetadataAddS16(revertnormalizedimfileArgs, PS_LIST_TAIL, "-code", 0, "search by fault code", 0); 429 430 XXX EAM : cleaned to this point 431 break into separate files 712 432 713 433 // -tonormalizedexp 714 434 psMetadata *tonormalizedexpArgs = psMetadataAlloc(); 715 psMetadataAddU64(tonormalizedexpArgs, PS_LIST_TAIL, "-limit", 0, 716 "limit result set to N items", 0); 717 psMetadataAddBool(tonormalizedexpArgs, PS_LIST_TAIL, "-simple", 0, 718 "use the simple output format", false); 435 psMetadataAddU64(tonormalizedexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 436 psMetadataAddBool(tonormalizedexpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 719 437 720 438 // -addnormalizedexp 721 439 psMetadata *addnormalizedexpArgs = psMetadataAlloc(); 722 psMetadataAddStr(addnormalizedexpArgs, PS_LIST_TAIL, "-det_id", 0, 723 "define detrend ID (required)", NULL); 724 psMetadataAddS32(addnormalizedexpArgs, PS_LIST_TAIL, "-iteration", 0, 725 "define iteration number", 0); 726 psMetadataAddStr(addnormalizedexpArgs, PS_LIST_TAIL, "-recip", 0, 727 "search for recipe", NULL); 728 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-bg", 0, 729 "define exposure background", NAN); 730 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, 731 "define exposure background stdev", NAN); 732 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 733 "define exposure background mean stdev", NAN); 734 735 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-user_1", 0, 736 "define user statistic (1)", NAN); 737 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-user_2", 0, 738 "define user statistic (2)", NAN); 739 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-user_3", 0, 740 "define user statistic (3)", NAN); 741 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-user_4", 0, 742 "define user statistic (4)", NAN); 743 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-user_5", 0, 744 "define user statistic (5)", NAN); 745 746 psMetadataAddStr(addnormalizedexpArgs, PS_LIST_TAIL, "-path_base", 0, 747 "define base output location", NULL); 748 psMetadataAddS16(addnormalizedexpArgs, PS_LIST_TAIL, "-code", 0, 749 "set fault code", 0); 440 psMetadataAddStr(addnormalizedexpArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", NULL); 441 psMetadataAddS32(addnormalizedexpArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 442 psMetadataAddStr(addnormalizedexpArgs, PS_LIST_TAIL, "-recip", 0, "search for recipe", NULL); 443 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 444 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 445 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 446 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-user_1", 0, "define user statistic (1)", NAN); 447 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-user_2", 0, "define user statistic (2)", NAN); 448 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-user_3", 0, "define user statistic (3)", NAN); 449 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-user_4", 0, "define user statistic (4)", NAN); 450 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-user_5", 0, "define user statistic (5)", NAN); 451 psMetadataAddStr(addnormalizedexpArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 452 psMetadataAddS16(addnormalizedexpArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 750 453 751 454 // -normalizedexp 752 455 psMetadata *normalizedexpArgs = psMetadataAlloc(); 753 psMetadataAddStr(normalizedexpArgs, PS_LIST_TAIL, "-det_id", 0, 754 "define detrend ID", NULL); 755 psMetadataAddS32(normalizedexpArgs, PS_LIST_TAIL, "-iteration", 0, 756 "define iteration number", 0); 757 psMetadataAddStr(normalizedexpArgs, PS_LIST_TAIL, "-recip", 0, 758 "search for recipe", NULL); 759 psMetadataAddF64(normalizedexpArgs, PS_LIST_TAIL, "-bg", 0, 760 "define exposure background", NAN); 761 psMetadataAddF64(normalizedexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, 762 "define exposure background stdev", NAN); 763 psMetadataAddF64(normalizedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 764 "define exposure background mean stdev", NAN); 765 psMetadataAddStr(normalizedexpArgs, PS_LIST_TAIL, "-path_base", 0, 766 "define base output location", NULL); 767 psMetadataAddU64(normalizedexpArgs, PS_LIST_TAIL, "-limit", 0, 768 "limit result set to N items", 0); 769 psMetadataAddBool(normalizedexpArgs, PS_LIST_TAIL, "-faulted", 0, 770 "only return imfiles with a fault status set", false); 771 psMetadataAddBool(normalizedexpArgs, PS_LIST_TAIL, "-simple", 0, 772 "use the simple output format", false); 456 psMetadataAddStr(normalizedexpArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID", NULL); 457 psMetadataAddS32(normalizedexpArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 458 psMetadataAddStr(normalizedexpArgs, PS_LIST_TAIL, "-recip", 0, "search for recipe", NULL); 459 psMetadataAddF64(normalizedexpArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 460 psMetadataAddF64(normalizedexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 461 psMetadataAddF64(normalizedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 462 psMetadataAddStr(normalizedexpArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 463 psMetadataAddU64(normalizedexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 464 psMetadataAddBool(normalizedexpArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 465 psMetadataAddBool(normalizedexpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 773 466 774 467 // -revertnormalizedexp 775 468 psMetadata *revertnormalizedexpArgs = psMetadataAlloc(); 776 psMetadataAddStr(revertnormalizedexpArgs, PS_LIST_TAIL, "-det_id", 0, 777 "search by detrend ID (required)", NULL); 778 psMetadataAddS32(revertnormalizedexpArgs, PS_LIST_TAIL, "-iteration", 0, 779 "search by iteration number", 0); 780 psMetadataAddS16(revertnormalizedexpArgs, PS_LIST_TAIL, "-code", 0, 781 "search by fault code", 0); 469 psMetadataAddStr(revertnormalizedexpArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID (required)", NULL); 470 psMetadataAddS32(revertnormalizedexpArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 471 psMetadataAddS16(revertnormalizedexpArgs, PS_LIST_TAIL, "-code", 0, "search by fault code", 0); 782 472 783 473 // -toresidimfile 784 474 psMetadata *toresidimfileArgs = psMetadataAlloc(); 785 psMetadataAddU64(toresidimfileArgs, PS_LIST_TAIL, "-limit", 0, 786 "limit result set to N items", 0); 787 psMetadataAddBool(toresidimfileArgs, PS_LIST_TAIL, "-simple", 0, 788 "use the simple output format", false); 475 psMetadataAddU64(toresidimfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 476 psMetadataAddBool(toresidimfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 789 477 790 478 // -toresidexp 791 479 psMetadata *toresidexpArgs = psMetadataAlloc(); 792 psMetadataAddU64(toresidexpArgs, PS_LIST_TAIL, "-limit", 0, 793 "limit result set to N items", 0); 794 psMetadataAddBool(toresidexpArgs, PS_LIST_TAIL, "-simple", 0, 795 "use the simple output format", false); 480 psMetadataAddU64(toresidexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 481 psMetadataAddBool(toresidexpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 796 482 797 483 // -addresidimfile 798 484 psMetadata *addresidimfileArgs = psMetadataAlloc(); 799 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-det_id", 0, 800 "define detrend ID (required)", NULL); 801 psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-iteration", 0, 802 "define iteration number", 0); 803 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-exp_id", 0, 804 "define detrend ID (required)", NULL); 805 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-class_id", 0, 806 "define class ID (required)", NULL); 807 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-uri", 0, 808 "define resid file URI", NULL); 809 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-recip", 0, 810 "define recipe", NULL); 811 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg", 0, 812 "define exposure background", NAN); 813 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_stdev", 0, 814 "define exposure background stdev", NAN); 815 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 816 "define exposure background mean stdev", NAN); 817 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_skewness", 0, 818 "define exposure background skewness", NAN); 819 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_kurtosis", 0, 820 "define exposure background kurtosis", NAN); 821 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bin_stdev", 0, 822 "define exposure background binned stdev", NAN); 823 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-fringe_0", 0, 824 "define fringe slope (0th term)", NAN); 825 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-fringe_1", 0, 826 "define fringe slope (1st term)", NAN); 827 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-fringe_2", 0, 828 "define fringe slope (2nd term)", NAN); 829 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-fringe_resid_0", 0, 830 "define fringe residual (0th term)", NAN); 831 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-fringe_resid_1", 0, 832 "define fringe residual (1st term)", NAN); 833 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-fringe_resid_2", 0, 834 "define fringe residual (2nd term)", NAN); 835 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-user_1", 0, 836 "define user statistic (1)", NAN); 837 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-user_2", 0, 838 "define user statistic (2)", NAN); 839 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-user_3", 0, 840 "define user statistic (3)", NAN); 841 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-user_4", 0, 842 "define user statistic (4)", NAN); 843 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-user_5", 0, 844 "define user statistic (5)", NAN); 845 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-path_base", 0, 846 "define base output location", NULL); 847 psMetadataAddS16(addresidimfileArgs, PS_LIST_TAIL, "-code", 0, 848 "set fault code", 0); 485 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", NULL); 486 psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 487 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "define detrend ID (required)", NULL); 488 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-class_id", 0, "define class ID (required)", NULL); 489 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-uri", 0, "define resid file URI", NULL); 490 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-recip", 0, "define recipe", NULL); 491 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 492 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 493 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 494 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_skewness", 0, "define exposure background skewness", NAN); 495 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_kurtosis", 0, "define exposure background kurtosis", NAN); 496 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bin_stdev", 0, "define exposure background binned stdev", NAN); 497 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-fringe_0", 0, "define fringe slope (0th term)", NAN); 498 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-fringe_1", 0, "define fringe slope (1st term)", NAN); 499 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-fringe_2", 0, "define fringe slope (2nd term)", NAN); 500 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-fringe_resid_0", 0, "define fringe residual (0th term)", NAN); 501 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-fringe_resid_1", 0, "define fringe residual (1st term)", NAN); 502 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-fringe_resid_2", 0, "define fringe residual (2nd term)", NAN); 503 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-user_1", 0, "define user statistic (1)", NAN); 504 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-user_2", 0, "define user statistic (2)", NAN); 505 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-user_3", 0, "define user statistic (3)", NAN); 506 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-user_4", 0, "define user statistic (4)", NAN); 507 psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-user_5", 0, "define user statistic (5)", NAN); 508 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 509 psMetadataAddS16(addresidimfileArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 849 510 850 511 // -residimfile 851 512 psMetadata *residimfileArgs = psMetadataAlloc(); 852 psMetadataAddStr(residimfileArgs, PS_LIST_TAIL, "-det_id", 0, 853 "search for detrend ID", NULL); 854 psMetadataAddS32(residimfileArgs, PS_LIST_TAIL, "-iteration", 0, 855 "search for iteration number", 0); 856 psMetadataAddStr(residimfileArgs, PS_LIST_TAIL, "-exp_id", 0, 857 "define detrend ID", NULL); 858 psMetadataAddStr(residimfileArgs, PS_LIST_TAIL, "-class_id", 0, 859 "search for class ID", NULL); 860 psMetadataAddStr(residimfileArgs, PS_LIST_TAIL, "-recip", 0, 861 "search for recipe", NULL); 862 psMetadataAddU64(residimfileArgs, PS_LIST_TAIL, "-limit", 0, 863 "limit result set to N items", 0); 864 psMetadataAddBool(residimfileArgs, PS_LIST_TAIL, "-faulted", 0, 865 "only return imfiles with a fault status set", false); 866 psMetadataAddBool(residimfileArgs, PS_LIST_TAIL, "-simple", 0, 867 "use the simple output format", false); 868 psMetadataAddStr(residimfileArgs, PS_LIST_TAIL, "-select_state", 0, 869 "search for state", NULL); 513 psMetadataAddStr(residimfileArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID", NULL); 514 psMetadataAddS32(residimfileArgs, PS_LIST_TAIL, "-iteration", 0, "search for iteration number", 0); 515 psMetadataAddStr(residimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "define detrend ID", NULL); 516 psMetadataAddStr(residimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search for class ID", NULL); 517 psMetadataAddStr(residimfileArgs, PS_LIST_TAIL, "-recip", 0, "search for recipe", NULL); 518 psMetadataAddU64(residimfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 519 psMetadataAddBool(residimfileArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 520 psMetadataAddBool(residimfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 521 psMetadataAddStr(residimfileArgs, PS_LIST_TAIL, "-select_state", 0, "search for state", NULL); 870 522 871 523 // -revertresidimfile 872 524 psMetadata *revertresidimfileArgs = psMetadataAlloc(); 873 psMetadataAddStr(revertresidimfileArgs, PS_LIST_TAIL, "-det_id", 0, 874 "search by detrend ID (required)", NULL); 875 psMetadataAddS32(revertresidimfileArgs, PS_LIST_TAIL, "-iteration", 0, 876 "search by iteration number", 0); 877 psMetadataAddStr(revertresidimfileArgs, PS_LIST_TAIL, "-exp_id", 0, 878 "search by detrend ID", NULL); 879 psMetadataAddStr(revertresidimfileArgs, PS_LIST_TAIL, "-class_id", 0, 880 "search for class ID", NULL); 881 psMetadataAddS16(revertresidimfileArgs, PS_LIST_TAIL, "-code", 0, 882 "search by fault code", 0); 525 psMetadataAddStr(revertresidimfileArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID (required)", NULL); 526 psMetadataAddS32(revertresidimfileArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 527 psMetadataAddStr(revertresidimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "search by detrend ID", NULL); 528 psMetadataAddStr(revertresidimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search for class ID", NULL); 529 psMetadataAddS16(revertresidimfileArgs, PS_LIST_TAIL, "-code", 0, "search by fault code", 0); 883 530 884 531 // -addresidexp 885 532 psMetadata *addresidexpArgs = psMetadataAlloc(); 886 psMetadataAddStr(addresidexpArgs, PS_LIST_TAIL, "-det_id", 0, 887 "define detrend ID (required)", NULL); 888 psMetadataAddS32(addresidexpArgs, PS_LIST_TAIL, "-iteration", 0, 889 "define iteration number", 0); 890 psMetadataAddStr(addresidexpArgs, PS_LIST_TAIL, "-exp_id", 0, 891 "define detrend ID (required)", NULL); 892 psMetadataAddStr(addresidexpArgs, PS_LIST_TAIL, "-recip", 0, 893 "define recipe", NULL); 894 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bg", 0, 895 "define exposure background", NAN); 896 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, 897 "define exposure background stdev", NAN); 898 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 899 "define exposure background mean stdev", NAN); 900 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bg_skewness", 0, 901 "define exposure background skewness", NAN); 902 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bg_kurtosis", 0, 903 "define exposure background kurtosis", NAN); 904 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bin_stdev", 0, 905 "define exposure background binned stdev", NAN); 906 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-fringe_0", 0, 907 "define fringe slope (0th term)", NAN); 908 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-fringe_1", 0, 909 "define fringe slope (1st term)", NAN); 910 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-fringe_2", 0, 911 "define fringe slope (2nd term)", NAN); 912 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-fringe_resid_0", 0, 913 "define fringe residual (0th term)", NAN); 914 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-fringe_resid_1", 0, 915 "define fringe residual (1st term)", NAN); 916 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-fringe_resid_2", 0, 917 "define fringe residual (2nd term)", NAN); 918 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-user_1", 0, 919 "define user statistic (1)", NAN); 920 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-user_2", 0, 921 "define user statistic (2)", NAN); 922 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-user_3", 0, 923 "define user statistic (3)", NAN); 924 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-user_4", 0, 925 "define user statistic (4)", NAN); 926 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-user_5", 0, 927 "define user statistic (5)", NAN); 928 psMetadataAddStr(addresidexpArgs, PS_LIST_TAIL, "-path_base", 0, 929 "define base output location", NULL); 930 psMetadataAddS16(addresidexpArgs, PS_LIST_TAIL, "-code", 0, 931 "set fault code", 0); 932 psMetadataAddBool(addresidexpArgs, PS_LIST_TAIL, "-reject", 0, 933 "exposure is not to be stacked in the next iteration", false); 533 psMetadataAddStr(addresidexpArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", NULL); 534 psMetadataAddS32(addresidexpArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 535 psMetadataAddStr(addresidexpArgs, PS_LIST_TAIL, "-exp_id", 0, "define detrend ID (required)", NULL); 536 psMetadataAddStr(addresidexpArgs, PS_LIST_TAIL, "-recip", 0, "define recipe", NULL); 537 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 538 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 539 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 540 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bg_skewness", 0, "define exposure background skewness", NAN); 541 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bg_kurtosis", 0, "define exposure background kurtosis", NAN); 542 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bin_stdev", 0, "define exposure background binned stdev", NAN); 543 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-fringe_0", 0, "define fringe slope (0th term)", NAN); 544 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-fringe_1", 0, "define fringe slope (1st term)", NAN); 545 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-fringe_2", 0, "define fringe slope (2nd term)", NAN); 546 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-fringe_resid_0", 0, "define fringe residual (0th term)", NAN); 547 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-fringe_resid_1", 0, "define fringe residual (1st term)", NAN); 548 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-fringe_resid_2", 0, "define fringe residual (2nd term)", NAN); 549 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-user_1", 0, "define user statistic (1)", NAN); 550 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-user_2", 0, "define user statistic (2)", NAN); 551 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-user_3", 0, "define user statistic (3)", NAN); 552 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-user_4", 0, "define user statistic (4)", NAN); 553 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-user_5", 0, "define user statistic (5)", NAN); 554 psMetadataAddStr(addresidexpArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 555 psMetadataAddS16(addresidexpArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 556 psMetadataAddBool(addresidexpArgs, PS_LIST_TAIL, "-reject", 0, "exposure is not to be stacked in the next iteration", false); 934 557 935 558 // -residexp 936 559 psMetadata *residexpArgs = psMetadataAlloc(); 937 psMetadataAddStr(residexpArgs, PS_LIST_TAIL, "-det_id", 0, 938 "search for detrend ID", NULL); 939 psMetadataAddS32(residexpArgs, PS_LIST_TAIL, "-iteration", 0, 940 "search for iteration number", 0); 941 psMetadataAddStr(residexpArgs, PS_LIST_TAIL, "-exp_id", 0, 942 "search for exp ID", NULL); 943 psMetadataAddStr(residexpArgs, PS_LIST_TAIL, "-recip", 0, 944 "search for recipe", NULL); 945 psMetadataAddU64(residexpArgs, PS_LIST_TAIL, "-limit", 0, 946 "limit result set to N items", 0); 947 psMetadataAddBool(residexpArgs, PS_LIST_TAIL, "-faulted", 0, 948 "only return imfiles with a fault status set", false); 949 psMetadataAddBool(residexpArgs, PS_LIST_TAIL, "-reject", 0, 950 "search for acceptable residuals", false); 951 psMetadataAddBool(residexpArgs, PS_LIST_TAIL, "-simple", 0, 952 "use the simple output format", false); 560 psMetadataAddStr(residexpArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID", NULL); 561 psMetadataAddS32(residexpArgs, PS_LIST_TAIL, "-iteration", 0, "search for iteration number", 0); 562 psMetadataAddStr(residexpArgs, PS_LIST_TAIL, "-exp_id", 0, "search for exp ID", NULL); 563 psMetadataAddStr(residexpArgs, PS_LIST_TAIL, "-recip", 0, "search for recipe", NULL); 564 psMetadataAddU64(residexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 565 psMetadataAddBool(residexpArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 566 psMetadataAddBool(residexpArgs, PS_LIST_TAIL, "-reject", 0, "search for acceptable residuals", false); 567 psMetadataAddBool(residexpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 953 568 954 569 // -revertresidexp 955 570 psMetadata *revertresidexpArgs = psMetadataAlloc(); 956 psMetadataAddStr(revertresidexpArgs, PS_LIST_TAIL, "-det_id", 0, 957 "search by detrend ID (required)", NULL); 958 psMetadataAddS32(revertresidexpArgs, PS_LIST_TAIL, "-iteration", 0, 959 "search by iteration number", 0); 960 psMetadataAddStr(revertresidexpArgs, PS_LIST_TAIL, "-exp_id", 0, 961 "search by detrend ID", NULL); 962 psMetadataAddS16(revertresidexpArgs, PS_LIST_TAIL, "-code", 0, 963 "search by fault code", 0); 571 psMetadataAddStr(revertresidexpArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID (required)", NULL); 572 psMetadataAddS32(revertresidexpArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 573 psMetadataAddStr(revertresidexpArgs, PS_LIST_TAIL, "-exp_id", 0, "search by detrend ID", NULL); 574 psMetadataAddS16(revertresidexpArgs, PS_LIST_TAIL, "-code", 0, "search by fault code", 0); 964 575 965 576 // -todetrunsummary 966 577 psMetadata *todetrunsummaryArgs = psMetadataAlloc(); 967 psMetadataAddBool(todetrunsummaryArgs, PS_LIST_TAIL, "-simple", 0, 968 "use the simple output format", false); 969 psMetadataAddU64(todetrunsummaryArgs, PS_LIST_TAIL, "-limit", 0, 970 "limit result set to N items", 0); 578 psMetadataAddBool(todetrunsummaryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 579 psMetadataAddU64(todetrunsummaryArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 971 580 972 581 // -updateresidexp 973 582 psMetadata *updateresidexpArgs = psMetadataAlloc(); 974 psMetadataAddStr(updateresidexpArgs, PS_LIST_TAIL, "-det_id", 0, 975 "define detrend ID", NULL); 976 psMetadataAddS32(updateresidexpArgs, PS_LIST_TAIL, "-iteration", 0, 977 "define iteration number", 0); 978 psMetadataAddStr(updateresidexpArgs, PS_LIST_TAIL, "-exp_id", 0, 979 "define exp ID", NULL); 980 psMetadataAddStr(updateresidexpArgs, PS_LIST_TAIL, "-recip", 0, 981 "define recipe", NULL); 982 psMetadataAddF64(updateresidexpArgs, PS_LIST_TAIL, "-bg", 0, 983 "define exposure background", NAN); 984 psMetadataAddF64(updateresidexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, 985 "define exposure background stdev", NAN); 986 psMetadataAddF64(updateresidexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 987 "define exposure background mean stdev", NAN); 988 psMetadataAddStr(updateresidexpArgs, PS_LIST_TAIL, "-path_base", 0, 989 "define base output location", NULL); 990 psMetadataAddBool(updateresidexpArgs, PS_LIST_TAIL, "-reject", 0, 991 "exposure is not to be stacked in the next iteration", false); 583 psMetadataAddStr(updateresidexpArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID", NULL); 584 psMetadataAddS32(updateresidexpArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 585 psMetadataAddStr(updateresidexpArgs, PS_LIST_TAIL, "-exp_id", 0, "define exp ID", NULL); 586 psMetadataAddStr(updateresidexpArgs, PS_LIST_TAIL, "-recip", 0, "define recipe", NULL); 587 psMetadataAddF64(updateresidexpArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 588 psMetadataAddF64(updateresidexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 589 psMetadataAddF64(updateresidexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 590 psMetadataAddStr(updateresidexpArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 591 psMetadataAddBool(updateresidexpArgs, PS_LIST_TAIL, "-reject", 0, "exposure is not to be stacked in the next iteration", false); 992 592 993 593 // -adddetrunsummary 994 594 psMetadata *adddetrunsummaryArgs = psMetadataAlloc(); 995 psMetadataAddStr(adddetrunsummaryArgs, PS_LIST_TAIL, "-det_id", 0, 996 "define detrend ID (required)", NULL); 997 psMetadataAddS32(adddetrunsummaryArgs, PS_LIST_TAIL, "-iteration", 0, 998 "define iteration number", 0); 999 psMetadataAddF64(adddetrunsummaryArgs, PS_LIST_TAIL, "-bg", 0, 1000 "define exposure background", NAN); 1001 psMetadataAddF64(adddetrunsummaryArgs, PS_LIST_TAIL, "-bg_stdev", 0, 1002 "define exposure background stdev", NAN); 1003 psMetadataAddF64(adddetrunsummaryArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 1004 "define exposure background mean stdev", NAN); 1005 psMetadataAddS16(adddetrunsummaryArgs, PS_LIST_TAIL, "-code", 0, 1006 "set fault code", 0); 1007 psMetadataAddBool(adddetrunsummaryArgs, PS_LIST_TAIL, "-accept", 0, 1008 "declare that this detrun iteration is accepted as a master", false); 1009 psMetadataAddBool(adddetrunsummaryArgs, PS_LIST_TAIL, "-again", 0, 1010 "start a new iteration of this detrend run", false); 595 psMetadataAddStr(adddetrunsummaryArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", NULL); 596 psMetadataAddS32(adddetrunsummaryArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 597 psMetadataAddF64(adddetrunsummaryArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 598 psMetadataAddF64(adddetrunsummaryArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 599 psMetadataAddF64(adddetrunsummaryArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 600 psMetadataAddS16(adddetrunsummaryArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 601 psMetadataAddBool(adddetrunsummaryArgs, PS_LIST_TAIL, "-accept", 0, "declare that this detrun iteration is accepted as a master", false); 602 psMetadataAddBool(adddetrunsummaryArgs, PS_LIST_TAIL, "-again", 0, "start a new iteration of this detrend run", false); 1011 603 1012 604 // -detrunsummary 1013 605 psMetadata *detrunsummaryArgs = psMetadataAlloc(); 1014 psMetadataAddStr(detrunsummaryArgs, PS_LIST_TAIL, "-det_id", 0, 1015 "search for detrend ID", NULL); 1016 psMetadataAddU64(detrunsummaryArgs, PS_LIST_TAIL, "-limit", 0, 1017 "limit result set to N items", 0); 1018 psMetadataAddS32(detrunsummaryArgs, PS_LIST_TAIL, "-iteration", 0, 1019 "search for iteration number", 0); 1020 psMetadataAddBool(detrunsummaryArgs, PS_LIST_TAIL, "-faulted", 0, 1021 "only return imfiles with a fault status set", false); 1022 psMetadataAddBool(detrunsummaryArgs, PS_LIST_TAIL, "-reject", 0, 1023 "search for acceptable residuals", false); 1024 psMetadataAddBool(detrunsummaryArgs, PS_LIST_TAIL, "-simple", 0, 1025 "use the simple output format", false); 606 psMetadataAddStr(detrunsummaryArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend ID", NULL); 607 psMetadataAddU64(detrunsummaryArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 608 psMetadataAddS32(detrunsummaryArgs, PS_LIST_TAIL, "-iteration", 0, "search for iteration number", 0); 609 psMetadataAddBool(detrunsummaryArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 610 psMetadataAddBool(detrunsummaryArgs, PS_LIST_TAIL, "-reject", 0, "search for acceptable residuals", false); 611 psMetadataAddBool(detrunsummaryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 1026 612 1027 613 // -revertdetrunsummary 1028 614 psMetadata *revertdetrunsummaryArgs = psMetadataAlloc(); 1029 psMetadataAddStr(revertdetrunsummaryArgs, PS_LIST_TAIL, "-det_id", 0, 1030 "search by detrend ID (required)", NULL); 1031 psMetadataAddS32(revertdetrunsummaryArgs, PS_LIST_TAIL, "-iteration", 0, 1032 "search by iteration number", 0); 1033 psMetadataAddS16(revertdetrunsummaryArgs, PS_LIST_TAIL, "-code", 0, 1034 "search by fault code", 0); 615 psMetadataAddStr(revertdetrunsummaryArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID (required)", NULL); 616 psMetadataAddS32(revertdetrunsummaryArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 617 psMetadataAddS16(revertdetrunsummaryArgs, PS_LIST_TAIL, "-code", 0, "search by fault code", 0); 1035 618 1036 619 // -updatedetrunsummary 1037 620 psMetadata *updatedetrunsummaryArgs = psMetadataAlloc(); 1038 psMetadataAddStr(updatedetrunsummaryArgs, PS_LIST_TAIL, "-det_id", 0, 1039 "search for detrend master for detrend ID (required)", NULL); 1040 psMetadataAddBool(updatedetrunsummaryArgs, PS_LIST_TAIL, "-accept", 0, 1041 "declare that this detrun iteration is accepted as a master", false); 1042 psMetadataAddBool(updatedetrunsummaryArgs, PS_LIST_TAIL, "-reject", 0, 1043 "reject this detrun iteration as a master", false); 621 psMetadataAddStr(updatedetrunsummaryArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend master for detrend ID (required)", NULL); 622 psMetadataAddBool(updatedetrunsummaryArgs, PS_LIST_TAIL, "-accept", 0, "declare that this detrun iteration is accepted as a master", false); 623 psMetadataAddBool(updatedetrunsummaryArgs, PS_LIST_TAIL, "-reject", 0, "reject this detrun iteration as a master", false); 1044 624 1045 625 // -updatedetrun 1046 626 psMetadata *updatedetrunArgs = psMetadataAlloc(); 1047 psMetadataAddStr(updatedetrunArgs, PS_LIST_TAIL, "-det_id", 0, 1048 "search for detrend master for detrend ID (required)", NULL); 1049 psMetadataAddBool(updatedetrunArgs, PS_LIST_TAIL, "-again", 0, 1050 "start a new iteration of this detrend run", false); 1051 psMetadataAddStr(updatedetrunArgs, PS_LIST_TAIL, "-state", 0, 1052 "set the state of this detrend run", false); 627 psMetadataAddStr(updatedetrunArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend master for detrend ID (required)", NULL); 628 psMetadataAddBool(updatedetrunArgs, PS_LIST_TAIL, "-again", 0, "start a new iteration of this detrend run", false); 629 psMetadataAddStr(updatedetrunArgs, PS_LIST_TAIL, "-state", 0, "set the state of this detrend run", false); 1053 630 1054 631 // -rerun 1055 632 psMetadata *rerunArgs = psMetadataAlloc(); 1056 psMetadataAddStr(rerunArgs, PS_LIST_TAIL, "-det_id", 0, 1057 "search for detrend master for detrend ID (required)", NULL); 1058 psMetadataAddStr(rerunArgs, PS_LIST_TAIL, "-exp_id", PS_META_DUPLICATE_OK, 1059 "include this exposure (multiple OK, required)", NULL); 633 psMetadataAddStr(rerunArgs, PS_LIST_TAIL, "-det_id", 0, "search for detrend master for detrend ID (required)", NULL); 634 psMetadataAddStr(rerunArgs, PS_LIST_TAIL, "-exp_id", PS_META_DUPLICATE_OK, "include this exposure (multiple OK, required)", NULL); 1060 635 1061 636 // -register_detrend 1062 637 psMetadata *register_detrendArgs = psMetadataAlloc(); 1063 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-det_type", 0, 1064 "define the type of detrend run (required)", NULL); 1065 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-mode", 0, 1066 "define the mode of this detrend run", "master"); 1067 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-filelevel", 0, 1068 "define filelevel (required)", NULL); 1069 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-workdir", 0, 1070 "define workdir", NULL); 1071 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-inst", 0, 1072 "define camera", NULL); 1073 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-telescope", 0, 1074 "define telescope", NULL); 1075 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-exp_type", 0, 1076 "define exposure type", NULL); 1077 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-filter", 0, 1078 "define filter ", NULL); 1079 psMetadataAddF32(register_detrendArgs, PS_LIST_TAIL, "-airmass_min", 0, 1080 "define min airmass", NAN); 1081 psMetadataAddF32(register_detrendArgs, PS_LIST_TAIL, "-airmass_max", 0, 1082 "define max airmass", NAN); 1083 psMetadataAddF32(register_detrendArgs, PS_LIST_TAIL, "-exp_time_min", 0, 1084 "define min exposure time", NAN); 1085 psMetadataAddF32(register_detrendArgs, PS_LIST_TAIL, "-exp_time_max", 0, 1086 "define max exposure time", NAN); 1087 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, 1088 "define min ccd tempature", NAN); 1089 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, 1090 "define max ccd tempature", NAN); 1091 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-posang_min", 0, 1092 "define min rotator position angle", NAN); 1093 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-posang_max", 0, 1094 "define max rotator position angle", NAN); 1095 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-solang_min", 0, 1096 "define min solar angle", NAN); 1097 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-solang_max", 0, 1098 "define max solar angle", NAN); 1099 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-registered", 0, 1100 "time detrend run was registered", now); 1101 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-time_begin", 0, 1102 "detrend applies to exposures taken during this period", NULL); 1103 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-time_end", 0, 1104 "detrend applies to exposures taken during this period", NULL); 1105 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-use_begin", 0, 1106 "start of detrend run applicable period", NULL); 1107 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-use_end", 0, 1108 "end of detrend run applicable period", NULL); 1109 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-parent", 0, 1110 "define parent det_id", NULL); 1111 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-label", 0, 1112 "define detrun label", NULL); 1113 psMetadataAddBool(register_detrendArgs, PS_LIST_TAIL, "-simple", 0, 1114 "use the simple output format", false); 638 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-det_type", 0, "define the type of detrend run (required)", NULL); 639 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-mode", 0, "define the mode of this detrend run", "master"); 640 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-filelevel", 0, "define filelevel (required)", NULL); 641 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-workdir", 0, "define workdir", NULL); 642 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-inst", 0, "define camera", NULL); 643 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope", NULL); 644 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-exp_type", 0, "define exposure type", NULL); 645 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-filter", 0, "define filter ", NULL); 646 psMetadataAddF32(register_detrendArgs, PS_LIST_TAIL, "-airmass_min", 0, "define min airmass", NAN); 647 psMetadataAddF32(register_detrendArgs, PS_LIST_TAIL, "-airmass_max", 0, "define max airmass", NAN); 648 psMetadataAddF32(register_detrendArgs, PS_LIST_TAIL, "-exp_time_min", 0, "define min exposure time", NAN); 649 psMetadataAddF32(register_detrendArgs, PS_LIST_TAIL, "-exp_time_max", 0, "define max exposure time", NAN); 650 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, "define min ccd tempature", NAN); 651 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, "define max ccd tempature", NAN); 652 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-posang_min", 0, "define min rotator position angle", NAN); 653 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-posang_max", 0, "define max rotator position angle", NAN); 654 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-solang_min", 0, "define min solar angle", NAN); 655 psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-solang_max", 0, "define max solar angle", NAN); 656 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 657 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-time_begin", 0, "detrend applies to exposures taken during this period", NULL); 658 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-time_end", 0, "detrend applies to exposures taken during this period", NULL); 659 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-use_begin", 0, "start of detrend run applicable period", NULL); 660 psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-use_end", 0, "end of detrend run applicable period", NULL); 661 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-parent", 0, "define parent det_id", NULL); 662 psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-label", 0, "define detrun label", NULL); 663 psMetadataAddBool(register_detrendArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 1115 664 1116 665 // -register_detrend_imfile 1117 666 psMetadata *register_detrend_imfileArgs = psMetadataAlloc(); 1118 psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-det_id", 0, 1119 "define detrend ID (required)", NULL); 1120 psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-class_id", 0, 1121 "search for class ID (required)", NULL); 1122 psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-uri", 0, 1123 "define resid file URI (required)", NULL); 1124 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-bg", 0, 1125 "define exposure background", NAN); 1126 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-bg_stdev", 0, 1127 "define exposure background stdev", NAN); 1128 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 1129 "define exposure background mean stdev", NAN); 1130 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_1", 0, 1131 "define user statistic (1)", NAN); 1132 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_2", 0, 1133 "define user statistic (2)", NAN); 1134 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_3", 0, 1135 "define user statistic (3)", NAN); 1136 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_4", 0, 1137 "define user statistic (4)", NAN); 1138 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_5", 0, 1139 "define user statistic (5)", NAN); 1140 psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-path_base", 0, 1141 "define base output location", NULL); 667 psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", NULL); 668 psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-class_id", 0, "search for class ID (required)", NULL); 669 psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-uri", 0, "define resid file URI (required)", NULL); 670 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); 671 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 672 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 673 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_1", 0, "define user statistic (1)", NAN); 674 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_2", 0, "define user statistic (2)", NAN); 675 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_3", 0, "define user statistic (3)", NAN); 676 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_4", 0, "define user statistic (4)", NAN); 677 psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_5", 0, "define user statistic (5)", NAN); 678 psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 1142 679 1143 680 psFree(now); … … 1175 712 PXOPT_ADD_MODE("-revertnormalizedstat", "", DETTOOL_MODE_REVERTNORMALIZEDSTAT, revertnormalizedstatArgs); 1176 713 1177 PXOPT_ADD_MODE("-tonormalizedstat", "", DETTOOL_MODE_TONORMALIZEDSTAT, tonorm statArgs);714 PXOPT_ADD_MODE("-tonormalizedstat", "", DETTOOL_MODE_TONORMALIZEDSTAT, tonormalizedstatArgs); 1178 715 PXOPT_ADD_MODE("-addnormalizedimfile", "", DETTOOL_MODE_ADDNORMALIZEDIMFILE,addnormalizedimfileArgs); 1179 716 PXOPT_ADD_MODE("-normalizedimfile","", DETTOOL_MODE_NORMALIZEDIMFILE, normalizedimfileArgs); … … 1213 750 psFree(modes); 1214 751 1215 // setup search criterion1216 #define addWhereStr(name) \1217 { \1218 psString str = NULL; \1219 bool status = false; \1220 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \1221 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\1222 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \1223 psFree(config); \1224 return NULL; \1225 } \1226 } \1227 }1228 1229 752 // generate SQL where clause 1230 753 config->where = psMetadataAlloc(); 1231 754 1232 755 addWhereStr(det_id); 1233 { 1234 // XXX this is broke because you can't specify -iteration 0 1235 psMetadataItem *item = psMetadataLookup(config->args, "-iteration"); 1236 if (item && psStrcasestr(item->comment, "found")) { 1237 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, "iteration", 0, "==", item->data.S32)) { 1238 psError(PS_ERR_UNKNOWN, false, "failed to add item iteration"); 1239 psFree(config); 1240 return NULL; 1241 } 1242 } 1243 } 1244 addWhereStr(det_type); 1245 addWhereStr(exp_id); 1246 addWhereStr(class_id); 1247 // convert '-inst' to 'camera' 1248 { 1249 psString str = NULL; 1250 bool status = false; 1251 if ((str = psMetadataLookupStr(&status, config->args, "-inst"))) { 1252 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, "camera", 0, "==", str)) { 1253 psError(PS_ERR_UNKNOWN, false, "failed to add item camera"); 1254 psFree(config); 1255 return NULL; 1256 } 1257 } 1258 } 1259 addWhereStr(telescope); 1260 addWhereStr(exp_type); 1261 { 1262 int n = 0; 1263 bool status = false; 1264 if ((n = psMetadataLookupS32(&status, config->args, "-imfiles"))) { 1265 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, "imfiles", 0, "==", n)) { 1266 psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles"); 1267 psFree(config); 1268 return NULL; 1269 } 1270 } 1271 } 1272 addWhereStr(filter); 1273 addWhereStr(recipe); 1274 { 1275 int n = 0; 1276 bool status = false; 1277 if ((n = psMetadataLookupS32(&status, config->args, "-guide_version"))) { 1278 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, "guide_version", 0, "==", n)) { 1279 psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version"); 1280 psFree(config); 1281 return NULL; 1282 } 1283 } 1284 } 1285 { 1286 bool boolean = false; 1287 bool status = false; 1288 1289 // map reject -> !accept 1290 if ((boolean = psMetadataLookupBool(&status, config->args, "-reject"))) { 1291 if (!psMetadataAddBool(config->where, PS_LIST_TAIL, "accept", 0, "==", !boolean)) { 1292 psError(PS_ERR_UNKNOWN, false, "failed to add item reject"); 1293 psFree(config); 1294 return NULL; 1295 } 1296 } 1297 } 1298 1299 // convert '-code' to 'fault' 1300 { 1301 psS16 fault = 0; 1302 bool status = false; 1303 if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) { 1304 if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) { 1305 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 1306 psFree(config); 1307 return NULL; 1308 } 1309 } 1310 } 756 PXOPT_ADD_WHERE_S32(iteration); 757 PXOPT_ADD_WHERE_STR(det_type); 758 PXOPT_ADD_WHERE_STR(exp_id); 759 PXOPT_ADD_WHERE_STR(class_id); 760 PXOPT_ADD_WHERE_STR_ALIAS("-inst","camera"); 761 PXOPT_ADD_WHERE_STR(telescope); 762 PXOPT_ADD_WHERE_STR(exp_type); 763 PXOPT_ADD_WHERE_S32(imfiles); 764 PXOPT_ADD_WHERE_STR(filter); 765 PXOPT_ADD_WHERE_STR(recipe); 766 PXOPT_ADD_WHERE_S32(guide_version); 767 PXOPT_ADD_WHERE_BOOL_ALIAS_INVERT("-reject", "accept"); 768 PXOPT_ADD_WHERE_S16_ALIAS("-code", "fault"); 1311 769 1312 770 if (config->where->list->n < 1) { -
branches/eam_branch_20080706/ippTools/src/difftoolConfig.c
r18336 r18468 216 216 psFree(modes); 217 217 218 // setup search criterion219 #define addWhereStr(name) \220 { \221 psString str = NULL; \222 bool status = false; \223 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \224 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\225 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \226 psFree(config); \227 return NULL; \228 } \229 } \230 }231 232 #define addWhereS32(name) \233 { \234 psS32 s32 = 0; \235 bool status = false; \236 if ((s32= psMetadataLookupS32(&status, config->args, "-" #name))) { \237 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, #name, 0, "==", s32)) { \238 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \239 psFree(config); \240 return NULL; \241 } \242 } \243 }244 245 246 218 // generate SQL where clause 247 219 config->where = psMetadataAlloc(); 248 220 249 { 250 psString str = NULL; 251 bool status = false; 252 if ((str = psMetadataLookupStr(&status, config->args, "-diff_id"))) { 253 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "diff_id", 0, "==", (psS64)atoll(str))) { 254 psError(PS_ERR_UNKNOWN, false, "failed to add item diff_id"); 255 psFree(config); 256 return NULL; 257 } 258 } 259 } 260 { 261 psString str = NULL; 262 bool status = false; 263 if ((str = psMetadataLookupStr(&status, config->args, "-warp_id"))) { 264 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "warp_id", 0, "==", (psS64)atoll(str))) { 265 psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id"); 266 psFree(config); 267 return NULL; 268 } 269 } 270 } 271 addWhereStr(skycell_id); 272 addWhereStr(tess_id); 273 274 // convert '-code' to 'fault' 275 { 276 psS16 fault = 0; 277 bool status = false; 278 if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) { 279 if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) { 280 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 281 psFree(config); 282 return NULL; 283 } 284 } 285 } 221 PXOPT_ADD_WHERE_S64(diff_id); 222 PXOPT_ADD_WHERE_S64(warp_id); 223 PXOPT_ADD_WHERE_STR(skycell_id); 224 PXOPT_ADD_WHERE_STR(tess_id); 225 PXOPT_ADD_WHERE_STR_ALIAS("-code", "fault"); 286 226 287 227 if (config->where->list->n < 1) { -
branches/eam_branch_20080706/ippTools/src/flatcorrConfig.c
r18172 r18468 214 214 psFree(modes); 215 215 216 // setup search criterion217 #define addWhereStr(name) \218 { \219 psString str = NULL; \220 bool status = false; \221 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \222 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\223 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \224 psFree(config); \225 return NULL; \226 } \227 } \228 }229 230 216 // generate SQL where clause 231 217 config->where = psMetadataAlloc(); 232 218 233 { 234 psString str = NULL; 235 bool status = false; 236 if ((str = psMetadataLookupStr(&status, config->args, "-corr_id"))) { 237 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "corr_id", 0, "==", (psS64)atoll(str))) { 238 psError(PS_ERR_UNKNOWN, false, "failed to add item corr_id"); 239 psFree(config); 240 return NULL; 241 } 242 } 243 } 219 PXOPT_ADD_WHERE_S64(corr_id); 244 220 245 221 if (config->where->list->n < 1) { -
branches/eam_branch_20080706/ippTools/src/guidetoolConfig.c
r18172 r18468 146 146 psFree(defineArgs); 147 147 148 // setup search criterion149 #define addWhereStr(name) \150 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \151 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\152 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \153 exit(EXIT_FAILURE); \154 } \155 }156 157 148 // generate SQL where clause 158 149 config->where = psMetadataAlloc(); 159 150 160 { 161 psString str = NULL; 162 int n = 0; 163 bool status = false; 164 165 addWhereStr(exp_id); 166 // convert '-inst' to 'camera' 167 if ((str = psMetadataLookupStr(&status, config->args, "-inst"))) { 168 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, "camera", 0, "==", str)) { 169 psError(PS_ERR_UNKNOWN, false, "failed to add item camera"); 170 exit(EXIT_FAILURE); 171 } 172 } 173 addWhereStr(telescope); 174 addWhereStr(exp_type); 175 if ((n = psMetadataLookupS32(&status, config->args, "-imfiles"))) { 176 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, "imfiles", 0, "==", n)) { 177 psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles"); 178 exit(EXIT_FAILURE); 179 } 180 } 181 addWhereStr(filter); 182 addWhereStr(stats); 183 addWhereStr(recipe); 184 if ((n = psMetadataLookupS32(&status, config->args, "-guide_version"))) { 185 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, "guide_version", 0, "==", n)) { 186 psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version"); 187 exit(EXIT_FAILURE); 188 } 189 } 190 } 151 PXOPT_ADD_WHERE_STR_ALIAS("-inst","camera"); 152 PXOPT_ADD_WHERE_STR(telescope); 153 PXOPT_ADD_WHERE_STR(exp_type); 154 PXOPT_ADD_WHERE_S32(imfiles); 155 PXOPT_ADD_WHERE_STR(filter); 156 PXOPT_ADD_WHERE_STR(stats); 157 PXOPT_ADD_WHERE_STR(recipe); 158 PXOPT_ADD_WHERE_S32(guide_version); 191 159 192 160 if (config->where->list->n < 1) { -
branches/eam_branch_20080706/ippTools/src/magictoolConfig.c
r18172 r18468 184 184 psFree(modes); 185 185 186 // setup search criterion187 #define addWhereStr(name) \188 { \189 psString str = NULL; \190 bool status = false; \191 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \192 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\193 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \194 psFree(config); \195 return NULL; \196 } \197 } \198 }199 200 #define addWhereS32(name) \201 { \202 psS32 s32 = 0; \203 bool status = false; \204 if ((s32= psMetadataLookupS32(&status, config->args, "-" #name))) { \205 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, #name, 0, "==", s32)) { \206 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \207 psFree(config); \208 return NULL; \209 } \210 } \211 }212 213 214 186 // generate SQL where clause 215 187 config->where = psMetadataAlloc(); 216 188 217 { 218 psString str = NULL; 219 bool status = false; 220 if ((str = psMetadataLookupStr(&status, config->args, "-warp_id"))) { 221 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "warp_id", 0, "==", (psS64)atoll(str))) { 222 psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id"); 223 psFree(config); 224 return NULL; 225 } 226 } 227 } 228 addWhereStr(skycell_id); 229 addWhereStr(tess_id); 230 addWhereStr(exp_id); 231 232 // convert '-code' to 'fault' 233 { 234 psS16 fault = 0; 235 bool status = false; 236 if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) { 237 if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) { 238 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 239 psFree(config); 240 return NULL; 241 } 242 } 243 } 189 PXOPT_ADD_WHERE_S64(warp_id); 190 PXOPT_ADD_WHERE_STR(skycell_id); 191 PXOPT_ADD_WHERE_STR(tess_id); 192 PXOPT_ADD_WHERE_STR(exp_id); 193 PXOPT_ADD_WHERE_STR_ALIAS("-code", "fault"); 244 194 245 195 if (config->where->list->n < 1) { -
branches/eam_branch_20080706/ippTools/src/pstamptoolConfig.c
r18377 r18468 208 208 psFree(modes); 209 209 210 // setup search criterion211 #define addWhereStr(name) \212 { \213 psString str = NULL; \214 bool status = false; \215 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \216 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\217 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \218 psFree(config); \219 return NULL; \220 } \221 } \222 }223 224 210 // generate SQL where clause 225 211 config->where = psMetadataAlloc(); 226 212 227 addWhereStr(req_id);228 addWhereStr(job_id);213 PXOPT_ADD_WHERE_STR(req_id); 214 PXOPT_ADD_WHERE_STR(job_id); 229 215 230 216 if (config->where->list->n < 1) { -
branches/eam_branch_20080706/ippTools/src/pxconfig.c
r17015 r18468 43 43 config->dbh = NULL; 44 44 config->modules = NULL; 45 config->where = NULL;45 // XXX config->where = NULL; 46 46 config->args = NULL; 47 47 … … 54 54 psFree(config->dbh); 55 55 psFree(config->modules); 56 psFree(config->where);56 // XXX psFree(config->where); 57 57 psFree(config->args); 58 58 } -
branches/eam_branch_20080706/ippTools/src/pxconfig.h
r14018 r18468 30 30 psDB *dbh; 31 31 psMetadata *args; 32 psMetadata *where;32 // XXX deprecate psMetadata *where; 33 33 int argc; 34 34 char **argv; -
branches/eam_branch_20080706/ippTools/src/pxinjectConfig.c
r18336 r18468 101 101 psFree(modes); 102 102 103 // setup search criterion104 #define addWhereStr(name) \105 { \106 psString str = NULL; \107 bool status = false; \108 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \109 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\110 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \111 psFree(config); \112 return NULL; \113 } \114 } \115 }116 117 103 // generate SQL where clause 118 104 config->where = psMetadataAlloc(); 119 105 120 addWhereStr(det_id); 121 { 122 int n = 0; 123 bool status = false; 124 if ((n = psMetadataLookupS32(&status, config->args, "-iteration"))) { 125 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, "iteration", 0, "==", n)) { 126 psError(PS_ERR_UNKNOWN, false, "failed to add item iteration"); 127 psFree(config); 128 return NULL; 129 } 130 } 131 } 132 addWhereStr(det_type); 133 addWhereStr(exp_id); 134 addWhereStr(class_id); 135 // convert '-inst' to 'camera' 136 { 137 psString str = NULL; 138 bool status = false; 139 if ((str = psMetadataLookupStr(&status, config->args, "-inst"))) { 140 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, "camera", 0, "==", str)) { 141 psError(PS_ERR_UNKNOWN, false, "failed to add item camera"); 142 psFree(config); 143 return NULL; 144 } 145 } 146 } 147 addWhereStr(telescope); 148 { 149 int n = 0; 150 bool status = false; 151 if ((n = psMetadataLookupS32(&status, config->args, "-imfiles"))) { 152 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, "imfiles", 0, "==", n)) { 153 psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles"); 154 psFree(config); 155 return NULL; 156 } 157 } 158 } 159 addWhereStr(filter); 160 addWhereStr(stats); 161 addWhereStr(recipe); 162 { 163 int n = 0; 164 bool status = false; 165 if ((n = psMetadataLookupS32(&status, config->args, "-guide_version"))) { 166 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, "guide_version", 0, "==", n)) { 167 psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version"); 168 psFree(config); 169 return NULL; 170 } 171 } 172 } 173 { 174 bool boolean = false; 175 bool status = false; 176 177 if ((boolean = psMetadataLookupBool(&status, config->args, "-accept"))) { 178 if (!psMetadataAddBool(config->where, PS_LIST_TAIL, "accept", 0, "==", boolean)) { 179 psError(PS_ERR_UNKNOWN, false, "failed to add item accept"); 180 psFree(config); 181 return NULL; 182 } 183 } 184 } 106 // XXXX this funciton had a large number of bogus entries 107 PXOPT_ADD_WHERE_S64(exp_id); 108 PXOPT_ADD_WHERE_STR(class_id); 185 109 186 110 if (config->where->list->n < 1) { -
branches/eam_branch_20080706/ippTools/src/pxtools.h
r18366 r18468 253 253 PXOPT_COPY_PRIMITIVE(from, to, psU64, U64, oldname, newname, comment) 254 254 255 256 /*** these PXOPT_ADD_WHERE macros are used to construct the default sql elements ***/ 257 258 #define PXOPT_ADD_WHERE_STR(name) \ 259 { \ 260 psString str = NULL; \ 261 bool status = false; \ 262 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \ 263 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\ 264 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \ 265 psFree(config); \ 266 return NULL; \ 267 } \ 268 } \ 269 } 270 271 #define PXOPT_ADD_WHERE_STR_ALIAS(name,realname) \ 272 { \ 273 psString str = NULL; \ 274 bool status = false; \ 275 if ((str = psMetadataLookupStr(&status, config->args, name))) { \ 276 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, realname, 0, "==", str)) {\ 277 psError(PS_ERR_UNKNOWN, false, "failed to add item %s", name); \ 278 psFree(config); \ 279 return NULL; \ 280 } \ 281 } \ 282 } 283 284 #define PXOPT_ADD_WHERE_S16(name) \ 285 { \ 286 psS16 s16 = 0; \ 287 bool status = false; \ 288 if ((s16= psMetadataLookupS16(&status, config->args, "-" #name))) { \ 289 if (!psMetadataAddS16(config->where, PS_LIST_TAIL, #name, 0, "==", s16)) { \ 290 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \ 291 psFree(config); \ 292 return NULL; \ 293 } \ 294 } \ 295 } 296 297 #define PXOPT_ADD_WHERE_BOOL(name) \ 298 { \ 299 bool value = false; \ 300 bool status = false; \ 301 if ((value = psMetadataLookupBool(&status, config->args, "-" #name))) { \ 302 if (!psMetadataAddBool(config->where, PS_LIST_TAIL, #name, 0, "==", value)) { \ 303 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \ 304 psFree(config); \ 305 return NULL; \ 306 } \ 307 } \ 308 } 309 310 #define PXOPT_ADD_WHERE_S32(name) \ 311 { \ 312 psS32 s32 = 0; \ 313 bool status = false; \ 314 if ((s32= psMetadataLookupS32(&status, config->args, "-" #name))) { \ 315 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, #name, 0, "==", s32)) { \ 316 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \ 317 psFree(config); \ 318 return NULL; \ 319 } \ 320 } \ 321 } 322 323 #define PXOPT_ADD_WHERE_S64(name) \ 324 { \ 325 psS64 s64 = 0; \ 326 bool status = false; \ 327 if ((s64= psMetadataLookupS64(&status, config->args, "-" #name))) { \ 328 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, #name, 0, "==", s64)) { \ 329 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \ 330 psFree(config); \ 331 return NULL; \ 332 } \ 333 } \ 334 } 335 336 #define PXOPT_ADD_WHERE_F32(name) \ 337 { \ 338 psF32 var = 0; \ 339 bool status = false; \ 340 if ((var = psMetadataLookupF32(&status, config->args, "-" #name))) { \ 341 if (!isnan(var)) { \ 342 if (!psMetadataAddF32(config->where, PS_LIST_TAIL, #name, 0, "==", var)) { \ 343 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \ 344 psFree(config); \ 345 return NULL; \ 346 } \ 347 } \ 348 } \ 349 } 350 351 #define PXOPT_ADD_WHERE_F64(name) \ 352 { \ 353 psF64 var = 0; \ 354 bool status = false; \ 355 if ((var = psMetadataLookupF64(&status, config->args, "-" #name))) { \ 356 if (!isnan(var)) { \ 357 if (!psMetadataAddF64(config->where, PS_LIST_TAIL, #name, 0, "==", var)) { \ 358 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \ 359 psFree(config); \ 360 return NULL; \ 361 } \ 362 } \ 363 } \ 364 } 365 366 #define PXOPT_ADD_WHERE_BOOL_ALIAS(flag,name) \ 367 { \ 368 bool value = 0; \ 369 bool status = false; \ 370 if ((value = psMetadataLookupBool(&status, config->args, flag))) { \ 371 if (!psMetadataAddBOOL(config->where, PS_LIST_TAIL, name, 0, "==", value)) { \ 372 psError(PS_ERR_UNKNOWN, false, "failed to add item %s", flag); \ 373 psFree(config); \ 374 return NULL; \ 375 } \ 376 } \ 377 } 378 379 #define PXOPT_ADD_WHERE_S16_ALIAS(flag,name) \ 380 { \ 381 psS16 s16 = 0; \ 382 bool status = false; \ 383 if ((s16= psMetadataLookupS16(&status, config->args, flag))) { \ 384 if (!psMetadataAddS16(config->where, PS_LIST_TAIL, name, 0, "==", s16)) { \ 385 psError(PS_ERR_UNKNOWN, false, "failed to add item %s", flag); \ 386 psFree(config); \ 387 return NULL; \ 388 } \ 389 } \ 390 } 391 392 #define PXOPT_ADD_WHERE_S32_ALIAS(flag,name) \ 393 { \ 394 psS32 s32 = 0; \ 395 bool status = false; \ 396 if ((s32= psMetadataLookupS32(&status, config->args, flag))) { \ 397 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, name, 0, "==", s32)) { \ 398 psError(PS_ERR_UNKNOWN, false, "failed to add item %s", flag); \ 399 psFree(config); \ 400 return NULL; \ 401 } \ 402 } \ 403 } 404 405 #define PXOPT_ADD_WHERE_S64_ALIAS(flag,name) \ 406 { \ 407 psS64 s64 = 0; \ 408 bool status = false; \ 409 if ((s64= psMetadataLookupS64(&status, config->args, flag))) { \ 410 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, name, 0, "==", s64)) { \ 411 psError(PS_ERR_UNKNOWN, false, "failed to add item %s", flag); \ 412 psFree(config); \ 413 return NULL; \ 414 } \ 415 } \ 416 } 417 418 #define PXOPT_ADD_WHERE_F32_ALIAS(flag,name) \ 419 { \ 420 psF32 var = 0; \ 421 bool status = false; \ 422 if ((var = psMetadataLookupF32(&status, config->args, flag))) { \ 423 if (!isnan(var)) { \ 424 if (!psMetadataAddF32(config->where, PS_LIST_TAIL, name, 0, "==", var)) { \ 425 psError(PS_ERR_UNKNOWN, false, "failed to add item %s", flag); \ 426 psFree(config); \ 427 return NULL; \ 428 } \ 429 } \ 430 } \ 431 } 432 433 #define PXOPT_ADD_WHERE_F64_ALIAS(flag,name) \ 434 { \ 435 psF64 var = 0; \ 436 bool status = false; \ 437 if ((var = psMetadataLookupF64(&status, config->args, flag))) { \ 438 if (!isnan(var)) { \ 439 if (!psMetadataAddF64(config->where, PS_LIST_TAIL, name, 0, "==", var)) { \ 440 psError(PS_ERR_UNKNOWN, false, "failed to add item %s", flag); \ 441 psFree(config); \ 442 return NULL; \ 443 } \ 444 } \ 445 } \ 446 } 447 448 #define PXOPT_ADD_WHERE_TIME_STR(name) \ 449 { \ 450 psString str = NULL; \ 451 bool status = false; \ 452 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \ 453 psTime *time = psTimeFromISO(str, PS_TIME_UTC); \ 454 if (!time) { \ 455 psError(PS_ERR_UNKNOWN, false, "failed to convert " #name " into a psTime object"); \ 456 psFree(config); \ 457 return NULL; \ 458 } \ 459 psMetadataItem *item = psMetadataLookup(config->args, "-" #name); \ 460 if (item) { \ 461 str = item->comment; \ 462 } else { \ 463 str = NULL; \ 464 } \ 465 if (!psMetadataAddTime(config->where, PS_LIST_TAIL, #name, 0, str, time)) {\ 466 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \ 467 psFree(config); \ 468 return NULL; \ 469 } \ 470 psFree(time); \ 471 } \ 472 } 473 255 474 #endif // PXTOOLS_H -
branches/eam_branch_20080706/ippTools/src/pztoolConfig.c
r18314 r18468 222 222 psFree(modes); 223 223 224 // setup search criterion225 #define addWhereStr(name) \226 { \227 psString str = NULL; \228 bool status = false; \229 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \230 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\231 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \232 psFree(config); \233 return NULL; \234 } \235 } \236 }237 238 224 // generate SQL where clause 239 225 config->where = psMetadataAlloc(); 240 226 241 addWhereStr(exp_name); 242 addWhereStr(telescope); 243 // convert '-inst' to 'camera' 244 { 245 psString str = NULL; 246 bool status = false; 247 if ((str = psMetadataLookupStr(&status, config->args, "-inst"))) { 248 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, "camera", 0, "==", str)) { 249 psError(PS_ERR_UNKNOWN, false, "failed to add item camera"); 250 psFree(config); 251 return NULL; 252 } 253 } 254 } 255 addWhereStr(exp_type); 256 addWhereStr(class); 257 addWhereStr(class_id); 227 PXOPT_ADD_WHERE_STR(exp_name); 228 PXOPT_ADD_WHERE_STR(telescope); 229 PXOPT_ADD_WHERE_STR_ALIAS("-inst", "camera"); 230 PXOPT_ADD_WHERE_STR(exp_type); 231 PXOPT_ADD_WHERE_STR(class); 232 PXOPT_ADD_WHERE_STR(class_id); 258 233 259 234 if (config->where->list->n < 1) { -
branches/eam_branch_20080706/ippTools/src/regtoolConfig.c
r18336 r18468 297 297 psFree(modes); 298 298 299 // setup search criterion300 #define addWhereStr(name) \301 { \302 psString str = NULL; \303 bool status = false; \304 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \305 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\306 psError(PXTOOLS_ERR_PROG, false, "failed to add item " #name); \307 psFree(config); \308 return NULL; \309 } \310 } \311 }312 313 299 // generate SQL where clause 314 300 config->where = psMetadataAlloc(); 315 301 316 addWhereStr(exp_id); 317 addWhereStr(exp_name); 318 // convert '-inst' to 'camera' 319 { 320 psString str = NULL; 321 bool status = false; 322 if ((str = psMetadataLookupStr(&status, config->args, "-inst"))) { 323 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, "camera", 0, "==", str)) { 324 psError(PXTOOLS_ERR_PROG, false, "failed to add item camera"); 325 psFree(config); 326 return NULL; 327 } 328 } 329 } 330 331 addWhereStr(telescope); 332 addWhereStr(exp_type); 333 addWhereStr(class); 334 addWhereStr(class_id); 335 addWhereStr(tmp_class_id); 336 addWhereStr(filter); 337 338 // convert '-code' to 'fault' 339 { 340 psS16 fault = 0; 341 bool status = false; 342 if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) { 343 if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) { 344 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 345 psFree(config); 346 return NULL; 347 } 348 } 349 } 302 PXOPT_ADD_WHERE_S64(exp_id); 303 PXOPT_ADD_WHERE_STR(exp_name); 304 PXOPT_ADD_WHERE_STR_ALIAS("-inst", "camera"); 305 PXOPT_ADD_WHERE_STR(telescope); 306 PXOPT_ADD_WHERE_STR(exp_type); 307 PXOPT_ADD_WHERE_STR(class); 308 PXOPT_ADD_WHERE_STR(class_id); 309 PXOPT_ADD_WHERE_STR(tmp_class_id); 310 PXOPT_ADD_WHERE_STR(filter); 311 PXOPT_ADD_WHERE_S16_ALIAS("-code", "fault"); 350 312 351 313 if (config->where->list->n < 1) { … … 353 315 config->where = NULL; 354 316 } 355 356 317 357 318 // define Database handle, if used -
branches/eam_branch_20080706/ippTools/src/stacktoolConfig.c
r18336 r18468 226 226 psFree(modes); 227 227 228 // setup search criterion229 #define addWhereStr(name) \230 { \231 psString str = NULL; \232 bool status = false; \233 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \234 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\235 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \236 psFree(config); \237 return NULL; \238 } \239 } \240 }241 242 #define addWhereS32(name) \243 { \244 psS32 s32 = 0; \245 bool status = false; \246 if ((s32= psMetadataLookupS32(&status, config->args, "-" #name))) { \247 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, #name, 0, "==", s32)) { \248 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \249 psFree(config); \250 return NULL; \251 } \252 } \253 }254 255 256 228 // generate SQL where clause 257 229 config->where = psMetadataAlloc(); 258 230 259 { 260 psString str = NULL; 261 bool status = false; 262 if ((str = psMetadataLookupStr(&status, config->args, "-warp_id"))) { 263 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "warp_id", 0, "==", (psS64)atoll(str))) { 264 psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id"); 265 psFree(config); 266 return NULL; 267 } 268 } 269 } 270 271 { 272 psString str = NULL; 273 bool status = false; 274 if ((str = psMetadataLookupStr(&status, config->args, "-stack_id"))) { 275 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "stack_id", 0, "==", (psS64)atoll(str))) { 276 psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id"); 277 psFree(config); 278 return NULL; 279 } 280 } 281 } 282 283 addWhereStr(skycell_id); 284 addWhereStr(tess_id); 285 286 // convert '-code' to 'fault' 287 { 288 psS16 fault = 0; 289 bool status = false; 290 if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) { 291 if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) { 292 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 293 psFree(config); 294 return NULL; 295 } 296 } 297 } 231 PXOPT_ADD_WHERE_S64(warp_id); 232 PXOPT_ADD_WHERE_S64(stack_id); 233 PXOPT_ADD_WHERE_STR(skycell_id); 234 PXOPT_ADD_WHERE_STR(tess_id); 235 PXOPT_ADD_WHERE_S16_ALIAS("-code","fault"); 298 236 299 237 if (config->where->list->n < 1) { -
branches/eam_branch_20080706/ippTools/src/warptoolConfig.c
r18467 r18468 429 429 psFree(modes); 430 430 431 // setup search criterion432 #define addWhereStr(name) \433 { \434 psString str = NULL; \435 bool status = false; \436 if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \437 if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\438 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \439 psFree(config); \440 return NULL; \441 } \442 } \443 }444 445 #define addWhereS32(name) \446 { \447 psS32 s32 = 0; \448 bool status = false; \449 if ((s32= psMetadataLookupS32(&status, config->args, "-" #name))) { \450 if (!psMetadataAddS32(config->where, PS_LIST_TAIL, #name, 0, "==", s32)) { \451 psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \452 psFree(config); \453 return NULL; \454 } \455 } \456 }457 458 459 431 // generate SQL where clause 460 432 config->where = psMetadataAlloc(); 461 433 462 { 463 psS64 warp_id = -1; 464 bool status = false; 465 if ((warp_id = psMetadataLookupS64(&status, config->args, "-warp_id"))) { 466 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "warp_id", 0, "==", warp_id)) { 467 psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id"); 468 psFree(config); 469 return NULL; 470 } 471 } 472 } 473 addWhereStr(skycell_id); 474 addWhereStr(tess_id); 475 addWhereStr(exp_id); 476 477 // convert '-code' to 'fault' 478 { 479 psS16 fault = 0; 480 bool status = false; 481 if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) { 482 if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) { 483 psError(PS_ERR_UNKNOWN, false, "failed to add item fault"); 484 psFree(config); 485 return NULL; 486 } 487 } 488 } 434 PXOPT_ADD_WHERE_S64(warp_id); 435 PXOPT_ADD_WHERE_STR(skycell_id); 436 PXOPT_ADD_WHERE_STR(tess_id); 437 PXOPT_ADD_WHERE_STR(exp_id); 438 PXOPT_ADD_WHERE_S16_ALIAS("-code", "fault"); 489 439 490 440 if (config->where->list->n < 1) {
Note:
See TracChangeset
for help on using the changeset viewer.
