Ignore:
Timestamp:
Mar 28, 2017 2:47:11 PM (6 years ago)
Author:
srkline
Message:

changes for combining of 1D data sets

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Combine_1D.ipf

    r1030 r1031  
    123123        PopupMenu C1DControl_0e,pos={120,100},size={109,20},title="Data Source" 
    124124        PopupMenu C1DControl_0e,mode=1,popvalue="RAW",value= #"\"RAW;SAM;EMP;BGD;COR;ABS;\""             
    125  
     125        Button C1DControl_0f,pos={200,39},size={120,20},proc=C1D_ConcatButtonProc,title="Concatenate" 
     126        Button C1DControl_0f,help={"Load slit-smeared USANS data = \".cor\" files"} 
    126127 
    127128         
     
    139140        Button C1DControl_1d,help={"Clears all mask points"} 
    140141        Button C1DControl_1d,disable=1 
     142        Button C1DControl_1e,pos={180,65},size={90,20},proc=C1D_MaskPercent,title="Percent Mask"                //bMask 
     143        Button C1DControl_1e,help={"Clears all mask points"} 
     144        Button C1DControl_1e,disable=1 
     145         
     146         
    141147//      Button C1DControl_1b,pos={144,66},size={110,20},proc=C1D_MaskDoneButton,title="Done Masking" 
    142148//      Button C1DControl_1b,disable=1 
     
    251257        if(tab==0) 
    252258                RemoveMask() 
     259//              RemoveConcatenated() 
    253260        endif 
    254261         
    255262        // masking 
    256263        if(tab==1) 
     264                C1D_ClearMaskProc("")           //starts with a blank mask 
    257265                C1D_MyMaskProc("")              //start masking if you click on the tab 
    258266        else 
     
    319327end 
    320328 
     329 
     330// concatenate the data, and replace the multiple data sets with the concatenated set 
     331// - then you can proceed to the mask tab 
     332// 
     333Function C1D_ConcatButtonProc(ctrlName) : ButtonControl 
     334        String ctrlName 
     335 
     336 
     337        ControlInfo C1DControl_0e 
     338        String folderStr = S_Value 
     339 
     340        SVAR gStr1 = $(ksCombine1DFolder+":gStr1") 
     341        gStr1 = folderStr 
     342 
     343 
     344        ControlInfo C1DControl_0d 
     345        Variable binType = V_Value 
     346         
     347        V_1DConcatenate(folderStr,binType) 
     348 
     349// sort the data set 
     350        V_TmpSort1D(folderStr) 
     351         
     352// now copy the concatenated data over to the combine folder     
     353        Duplicate/O $("root:Packages:NIST:VSANS:"+folderStr+":tmp_q") $(ksCombine1DFolder+":Q_exp")              
     354        Duplicate/O $("root:Packages:NIST:VSANS:"+folderStr+":tmp_i") $(ksCombine1DFolder+":I_exp")              
     355        Duplicate/O $("root:Packages:NIST:VSANS:"+folderStr+":tmp_s") $(ksCombine1DFolder+":S_exp")      
     356        wave Q_exp = $(ksCombine1DFolder+":Q_exp") 
     357        Wave I_exp = $(ksCombine1DFolder+":I_exp") 
     358        Wave S_exp = $(ksCombine1DFolder+":S_exp") 
     359         
     360 
     361//       
     362        Duplicate/O $(ksCombine1DFolder+":Q_exp") $(ksCombine1DFolder+":Q_exp_orig") 
     363        Duplicate/O $(ksCombine1DFolder+":I_exp") $(ksCombine1DFolder+":I_exp_orig") 
     364        Duplicate/O $(ksCombine1DFolder+":S_exp") $(ksCombine1DFolder+":S_exp_orig") 
     365        wave I_exp_orig = $(ksCombine1DFolder+":I_exp_orig") 
     366         
     367        Variable nq = numpnts($(ksCombine1DFolder+":Q_exp")) 
     368//       
     369 
     370//      // append the (blank) wave note to the intensity wave 
     371//      Note I_exp,"BOX=0;SPLINE=0;" 
     372//      Note I_exp_orig,"BOX=0;SPLINE=0;" 
     373//       
     374//      //add data to the graph 
     375        Execute "AppendConcatenated()"   
     376         
     377        // TODO: 
     378        // -- do I clear off the old data here, or somewhere else? 
     379        // clear off the old data from the individual panels 
     380        // use ClearAllIQIfDisplayed() 
     381        ClearIQIfDisplayed_AllBin(folderStr,"V_Combine_1D_Graph") 
     382 
     383        RemoveMask() 
     384         
     385        return(0) 
     386End 
    321387 
    322388// step (1) - get the data from a WORK folder, and plot it 
     
    469535        String ctrlName 
    470536         
    471          
    472         Wave MaskData=$(ksCombine1DFolder+":MaskData") 
    473         MaskData = NaN 
    474          
     537        SetDataFolder $ksCombine1DFolder 
     538         
     539        Wave Q_exp_orig 
     540        Duplicate/O Q_exp_orig MaskData 
     541        MaskData = NaN          //use all data 
     542                         
     543        SetDataFolder root: 
     544 
    475545        return(0) 
    476546end 
     
    579649End 
    580650 
     651// when the mask button is pressed, A must be on the graph 
     652// Displays MaskData wave on the graph 
     653// 
     654Function C1D_MaskPercent(ctrlName) : ButtonControl 
     655        String ctrlName 
     656         
     657        Variable aExists= strlen(CsrInfo(A)) > 0                        //Igor 5 
     658         
     659        if(!aExists) 
     660                return(1) 
     661        endif 
     662 
     663 
     664        SetDataFolder $(ksCombine1DFolder) 
     665 
     666        Wave data=I_exp_orig 
     667        Wave s_orig = S_exp_orig 
     668        Wave MaskData 
     669 
     670 
     671        Variable pct,ii,endPt 
     672        endPt=numpnts(MaskData) 
     673 
     674        pct = 0.25 
     675         
     676        for(ii=0;ii<endPt;ii+=1) 
     677                // toggle NaN (keep) or Data value (= masked) 
     678 
     679                MaskData[ii] = (abs(s_orig[ii]/data[ii]) < pct) ? NaN : data[ii]                //if NaN, doesn't plot  
     680        endfor 
     681 
     682 
     683        SetDataFolder root: 
     684 
     685        return(0) 
     686End 
     687 
     688 
     689 
    581690 
    582691Function CleanUpJunk() 
     
    586695        // -- activate both of these functions to clean old data off of the graph 
    587696//      Execute "RemoveOldData()" 
    588 //      Execute "RemoveMask()" 
     697        Execute "RemoveMask()" 
    589698         
    590699        //remove the cursor 
Note: See TracChangeset for help on using the changeset viewer.