Changeset 9137
- Timestamp:
- Oct 2, 2006, 5:27:04 PM (20 years ago)
- Location:
- trunk/ippTools/src
- Files:
-
- 2 edited
-
dettool.c (modified) (3 diffs)
-
dettoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/dettool.c
r9123 r9137 2583 2583 PS_ASSERT_PTR_NON_NULL(config, false); 2584 2584 2585 // select detProcessedImfile.det_id2586 // select detRun.iteration2587 // select detRun.det_type2588 // select detProcessedImfile.exp_tag2589 // by:2590 // find the current iteration bassed on det_id2591 // find all exp_tags in the current det_id/iteration from detInputExp2592 // find all rawImfiles in the current exp_tags2593 // compare to detProcessedImfiles by det_id/exp_tag2594 // found how many imfile there are in each class_id2595 // and:2596 // det_id is not in detProcessedExp;2597 // iteration is not in detProcessedExp;2598 2599 2585 psString query = psStringCopy( 2600 2586 " SELECT DISTINCT" … … 2679 2665 psFree(output); 2680 2666 2681 2682 2667 return true; 2683 2668 } … … 2686 2671 { 2687 2672 PS_ASSERT_PTR_NON_NULL(config, false); 2673 2674 // det_id, recip, -bg, -bg_stdev, & -bg_mean_stdev 2675 // are required 2676 bool status = false; 2677 psString det_id = psMetadataLookupStr(&status, config->args, "-det_id"); 2678 if (!status) { 2679 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -det_id"); 2680 return false; 2681 } 2682 if (!det_id) { 2683 psError(PS_ERR_UNKNOWN, true, "-det_id is required"); 2684 return false; 2685 } 2686 psString recipe = psMetadataLookupStr(&status, config->args, "-recip"); 2687 if (!status) { 2688 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -recip"); 2689 return false; 2690 } 2691 if (!recipe) { 2692 psError(PS_ERR_UNKNOWN, true, "-recip is required"); 2693 return false; 2694 } 2695 psF64 bg = psMetadataLookupF64(&status, config->args, "-bg"); 2696 if (!status) { 2697 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg"); 2698 return false; 2699 } 2700 if (isnan(bg)) { 2701 psError(PS_ERR_UNKNOWN, true, "-bg is required"); 2702 return false; 2703 } 2704 psF64 bg_stdev = psMetadataLookupF64(&status, config->args, "-bg_stdev"); 2705 if (!status) { 2706 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg_stdev"); 2707 return false; 2708 } 2709 if (isnan(bg_stdev)) { 2710 psError(PS_ERR_UNKNOWN, true, "-bg_stdev is required"); 2711 return false; 2712 } 2713 psF64 bg_mean_stdev = psMetadataLookupF64(&status, config->args, "-bg_mean_stdev"); 2714 if (!status) { 2715 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg_mean_stdev"); 2716 return false; 2717 } 2718 if (isnan(bg_mean_stdev)) { 2719 psError(PS_ERR_UNKNOWN, true, "-bg_mean_stdev is required"); 2720 return false; 2721 } 2722 // iteration has a default value 2723 psS32 iteration = psMetadataLookupS32(&status, config->args, "-iteration"); 2724 if (!status) { 2725 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -iteration"); return false; 2726 } 2727 // optional 2728 psString b1_uri = psMetadataLookupStr(&status, config->args, "-b1_uri"); 2729 if (!status) { 2730 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -b1_uri"); 2731 return false; 2732 } 2733 psString b2_uri = psMetadataLookupStr(&status, config->args, "-b2_uri"); 2734 if (!status) { 2735 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -b2_uri"); 2736 return false; 2737 } 2738 2739 psString query = psStringCopy( 2740 " SELECT DISTINCT" 2741 " detRun.position as det_id," 2742 " detRun.iteration," 2743 " detRun.det_type," 2744 " rawDetrendExp.camera," 2745 " rawDetrendExp.telescope," 2746 " rawDetrendExp.exp_type," 2747 " rawDetrendExp.imfiles" 2748 " FROM detRun" 2749 " JOIN detInputExp" 2750 " ON detRun.position = detInputExp.det_id" 2751 " AND detRun.iteration = detInputExp.iteration" 2752 " JOIN rawDetrendExp" 2753 " ON detInputExp.exp_tag = rawDetrendExp.exp_tag" 2754 " JOIN detNormalizedImfile" 2755 " ON detInputExp.det_id = detNormalizedImfile.det_id" 2756 " AND detInputExp.iteration = detNormalizedImfile.iteration" 2757 " LEFT JOIN rawImfile" 2758 " ON detInputExp.exp_tag = rawImfile.exp_tag" 2759 " AND detNormalizedImfile.class_id = rawImfile.class_id" 2760 " LEFT JOIN detNormalizedExp" 2761 " ON detInputExp.det_id = detNormalizedExp.det_id" 2762 " AND detInputExp.iteration = detNormalizedExp.iteration" 2763 " WHERE" 2764 " detNormalizedExp.det_id IS NULL" 2765 " AND detNormalizedExp.iteration IS NULL" 2766 " AND detInputExp.include = 1" 2767 " AND detRun.position = %s" 2768 " AND detNormalizedImfile.iteration = %d" 2769 " GROUP BY" 2770 " detNormalizedImfile.iteration," 2771 " detRun.position" 2772 " HAVING" 2773 " COUNT(detNormalizedImfile.class_id) = COUNT(rawImfile.class_id)" 2774 ); 2775 2776 if (!p_psDBRunQuery(config->dbh, query, det_id, iteration)) { 2777 psError(PS_ERR_UNKNOWN, false, "database error"); 2778 psFree(query); 2779 return false; 2780 } 2781 psFree(query); 2782 2783 psArray *output = p_psDBFetchResult(config->dbh); 2784 if (!output) { 2785 psError(PS_ERR_UNKNOWN, false, "database error"); 2786 psFree(query); 2787 } 2788 if (!psArrayLength(output)) { 2789 // XXX check psError here 2790 psError(PS_ERR_UNKNOWN, false, "no complete detNormalizedImfile exp found"); 2791 psFree(output); 2792 return true; 2793 } 2794 2795 // create a new detProcessedImfile object 2796 detNormalizedExpRow *detRow = detNormalizedExpRowAlloc( 2797 (psS32)atol(det_id), 2798 iteration, 2799 recipe, 2800 bg, 2801 bg_stdev, 2802 bg_mean_stdev, 2803 b1_uri, 2804 b2_uri 2805 ); 2806 2807 // insert the new row into the detProcessedImfile table 2808 if (!detNormalizedExpInsertObject(config->dbh, detRow)) { 2809 psError(PS_ERR_UNKNOWN, false, "database error"); 2810 psFree(detRow); 2811 return false; 2812 } 2813 2814 psFree(detRow); 2688 2815 2689 2816 return true; -
trunk/ippTools/src/dettoolConfig.c
r9123 r9137 288 288 psMetadataAddS32(addnormalizedexpArgs, PS_LIST_TAIL, "-iteration", 0, 289 289 "define iteration number", 0); 290 psMetadataAddStr(addnormalizedexpArgs, PS_LIST_TAIL, "- exp_tag", 0,291 " define detrend ID (required)", NULL);290 psMetadataAddStr(addnormalizedexpArgs, PS_LIST_TAIL, "-recip", 0, 291 "search for recipe", NULL); 292 292 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-bg", 0, 293 293 "define exposue background", NAN); … … 303 303 // -normalizedexp 304 304 psMetadata *normalizedexpArgs = psMetadataAlloc(); 305 psMetadataAddStr(normalizedexpArgs, PS_LIST_TAIL, "-det_id", 0, 306 "define detrend ID (required)", NULL); 307 psMetadataAddS32(normalizedexpArgs, PS_LIST_TAIL, "-iteration", 0, 308 "define iteration number", 0); 309 psMetadataAddStr(normalizedexpArgs, PS_LIST_TAIL, "-recip", 0, 310 "search for recipe", NULL); 311 psMetadataAddF64(normalizedexpArgs, PS_LIST_TAIL, "-bg", 0, 312 "define exposue background", NAN); 313 psMetadataAddF64(normalizedexpArgs, PS_LIST_TAIL, "-bg_stdev", 0, 314 "define exposue background stdev", NAN); 315 psMetadataAddF64(normalizedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, 316 "define exposue background mean stdev", NAN); 317 psMetadataAddStr(normalizedexpArgs, PS_LIST_TAIL, "-b1_uri", 0, 318 "define banana 1", NULL); 319 psMetadataAddStr(normalizedexpArgs, PS_LIST_TAIL, "-b2_uri", 0, 320 "define banana 2", NULL); 305 321 psMetadataAddBool(normalizedexpArgs, PS_LIST_TAIL, "-simple", 0, 306 322 "use the simple output format", false);
Note:
See TracChangeset
for help on using the changeset viewer.
