Ignore:
Timestamp:
Nov 25, 2014 3:10:21 PM (8 years ago)
Author:
srkline
Message:

adding new procedures for testing -- that will enable:

(1) automation of SANS data reduction, at least in some of the more standard cases. The more consistently the data files are named, the better this works.
(2) Much simpler scripting of experiment simulation. now a simulated experiment can be set up is the same way that a real experiemtn can -- by setting up a list of "runs"

Help files are to follow for all of these. Prelimiary help for the automation has been added to the SANS Reduction Help file. Videos to follow. Loaders for these two items have been added to the Macros menu so that all of the dependencies are satisfied.

More testing is still necessary to make sure that nothing has been broken, and that sufficient error catching has been done so that meaningful testing can be done.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/Transmission.ipf

    r949 r950  
    18441844        endif 
    18451845         
     1846        Variable num=numpnts(matchRows) 
     1847        String result="",tmpStr 
     1848         
    18461849        Wave/T sw = root:myGlobals:TransHeaderInfo:S_Labels             //Sample file labels 
    18471850        Wave/T tw = root:myGlobals:TransHeaderInfo:T_Labels             //trans file labels 
     
    18491852        Wave/T snam = root:myGlobals:TransHeaderInfo:S_TRANS_FileNames  //Scattering - trans correspondence 
    18501853        Wave/T samfile = root:myGlobals:TransHeaderInfo:S_FileNames     //Scattering file name 
    1851          
     1854 
     1855        //// set up as a list box 
     1856        Make/O/T/N=(num,4) root:myGlobals:TransHeaderInfo:T_ListWave="" 
     1857        Make/O/D/N=(num,4,2) root:myGlobals:TransHeaderInfo:T_selWave 
     1858        Make/O/T/N=4 root:myGlobals:TransHeaderInfo:T_titles                                    // 4 rows to match 4-column ListWave 
     1859        Make/O/W/U/N=(2,3) root:myGlobals:TransHeaderInfo:T_Colors 
     1860        WAVE/T ListWave = root:myGlobals:TransHeaderInfo:T_ListWave 
     1861        WAVE selWave = root:myGlobals:TransHeaderInfo:T_selWave 
     1862        WAVE/T titles = root:myGlobals:TransHeaderInfo:T_titles 
     1863        WAVE colors = root:myGlobals:TransHeaderInfo:T_Colors 
     1864 
     1865 
     1866        colors[][] = 0 
     1867        colors[0][] = 65000 
     1868        colors[1][] = 60000 
     1869 
     1870 
    18521871        // can do fancy formatted string with ... 
    18531872        //"asdf* matches file: \\f01filen\\f00 \\K(52428,1,1)\\f01afdsfdd\\f00\\K(0,0,0)asdfasdfs" 
    1854         Variable num=numpnts(matchRows) 
    1855         String result="",tmpStr 
     1873 
    18561874        for(ii=0;ii<num;ii+=1) 
    18571875                sprintf tmpStr,"\\f01\\K(52428,1,1)%s\\K(0,0,0)\\f00* Matches file: \\f01%s\\f00 | \\K(52428,1,1)\\f01%s\\f00\\K(0,0,0)%s\r",(tw[row])[0,numChars-1],samfile[matchRows[ii]],(sw[matchRows[ii]])[0,numchars-1],(sw[matchRows[ii]])[numchars,59] 
    18581876                result += tmpStr 
     1877                listWave[ii][1] = (tw[row])[0,numChars-1] + "*" + (tw[row])[numChars,59] 
     1878                listWave[ii][2] = samfile[matchRows[ii]] 
     1879                listWave[ii][3] = (sw[matchRows[ii]])[0,numchars-1] + (sw[matchRows[ii]])[numchars,59]  // ?? 
    18591880        endfor 
     1881         
    18601882         
    18611883        if(cmpstr(result,"")==0) 
     
    18671889         
    18681890        String/G root:myGlobals:TransHeaderInfo:gResultStr = result 
     1891        selWave[][][] = 0 
     1892        selWave[][0][] = 2^5     + 2^4          //if 2^4 also, it's selected  --- if((val & 2^4) != 0), then the bit is set 
     1893         
     1894        selWave[][][1]= round(p/2-trunc(p/2))                                   // change the color index values 
     1895        SetDimLabel 2,1,backColors,selWave 
     1896 
     1897        titles[0] = "Keep Match?" 
     1898        titles[1] = "Match String" 
     1899        titles[2] = "Matching Sample File" 
     1900        titles[3] = "Matching Sample Label" 
     1901         
     1902 
    18691903         
    18701904        DoWindow/F ConfirmGuess         //if being called recursively, the panel is already up 
     
    18721906                TitleBox title0,pos={9,5},variable=root:myGlobals:TransHeaderInfo:gResultStr 
    18731907        else 
    1874                 NewPanel /W=(600,44,1150,225) as "Confirm Guess" 
     1908                NewPanel /W=(600,44,1200,270) as "Confirm Guess" 
    18751909                DoWindow/C ConfirmGuess 
    1876                 TitleBox title0,pos={15,8},size={560,32} 
    1877                 TitleBox title0,variable= root:myGlobals:TransHeaderInfo:gResultStr 
    1878                 Button button0,pos={240,150},size={190,20},proc=DoAssignTransButtonProc,title="Assign Transmission Files" 
    1879                 Button button1,pos={10,150},size={100,20},proc=DoTryAgainMoreButtonProc,title="Try Again (+)" 
    1880                 Button button2,pos={120,150},size={100,20},proc=DoTryAgainFewerButtonProc,title="Try Again (-)" 
    1881                 Button button3,pos={450,150},size={70,20},proc=SkipTransButtonProc,title="Skip" 
     1910 
     1911                ListBox list0,pos={1,2},size={580,180},listWave=ListWave,selWave=selWave,colorWave=colors 
     1912                ListBox list0,titleWave=titles,widths={70,180,150,180} 
     1913                         
     1914//              TitleBox title0,pos={15,8},size={560,32} 
     1915//              TitleBox title0,variable= root:myGlobals:TransHeaderInfo:gResultStr 
     1916                 
     1917                Button button0,pos={240,190},size={190,20},proc=DoAssignTransButtonProc,title="Assign Transmission Files" 
     1918                Button button1,pos={10,190},size={100,20},proc=DoTryAgainMoreButtonProc,title="Try Again (+)" 
     1919                Button button2,pos={120,190},size={100,20},proc=DoTryAgainFewerButtonProc,title="Try Again (-)" 
     1920                Button button3,pos={450,190},size={70,20},proc=SkipTransButtonProc,title="Skip" 
    18821921        endif 
    18831922         
     
    18981937                        num=numpnts(matchRows)          //this may have changed 
    18991938                        for(ii=0;ii<num;ii+=1) 
    1900                                 snam[matchRows[ii]] = tnam[row] 
    1901                                 AssignSelTransFilesToData(matchRows[ii],matchRows[ii]) 
    1902                                 CalcSelTransFromHeader(matchRows[ii],matchRows[ii])             //does only that sample file 
    1903                                 gMatchSamStr += samfile(matchRows[ii]) + ";" 
     1939                                if((selWave[ii][0] & 2^4) != 0)                 //box is checked, make the assignment for this file 
     1940                                        snam[matchRows[ii]] = tnam[row] 
     1941                                        AssignSelTransFilesToData(matchRows[ii],matchRows[ii]) 
     1942                                        CalcSelTransFromHeader(matchRows[ii],matchRows[ii])             //does only that sample file 
     1943                                        gMatchSamStr += samfile(matchRows[ii]) + ";"                    // this is for later, when trying to guess whish sample files to combine 
     1944                                endif 
    19041945                        endfor                   
    19051946                        break                                            
     
    20322073                        Make/O/D/N=0 root:myGlobals:TransHeaderInfo:matchRows 
    20332074                        Wave matchRows=root:myGlobals:TransHeaderInfo:matchRows 
    2034          
     2075 
     2076                        WAVE/T ListWave = root:myGlobals:TransHeaderInfo:T_ListWave 
     2077                        WAVE selWave = root:myGlobals:TransHeaderInfo:T_selWave 
     2078                        WAVE/T titles = root:myGlobals:TransHeaderInfo:T_titles 
     2079                 
    20352080                   //transTableExists = WinType("TransFileTable") 
    20362081                //if (transTableExists != 0) 
     
    20402085                 
    20412086                        num=numpnts(matchRows) 
     2087                         
     2088                        //Redimension the list box waves 
     2089                        Redimension/N=(num,4) ListWave 
     2090                        Redimension/N=(num,4,2) selWave 
     2091                        ListWave = "" 
     2092                        selWave[][][] = 0 
     2093 
     2094                        selWave[][0][] = 2^5 + 2^4 
     2095 
     2096                        selWave[][][1]= round(p/2-trunc(p/2))                                   // change the color index values 
    20422097 
    20432098                        resultStr = "" 
     
    20452100                                sprintf tmpStr,"\\f01\\K(52428,1,1)%s\\K(0,0,0)\\f00* Matches file: \\f01%s\\f00 | \\K(52428,1,1)\\f01%s\\f00\\K(0,0,0)%s\r",(tw[row])[0,numChars-1],samfile[matchRows[ii]],(sw[matchRows[ii]])[0,numchars-1],(sw[matchRows[ii]])[numchars,59] 
    20462101                                resultStr += tmpStr 
     2102                                listWave[ii][1] = (tw[row])[0,numChars-1] + "*" + (tw[row])[numChars,59] 
     2103                                listWave[ii][2] = samfile[matchRows[ii]] 
     2104                                listWave[ii][3] = (sw[matchRows[ii]])[0,numchars-1] + (sw[matchRows[ii]])[numchars,59]  // ?? 
    20472105                        endfor 
    20482106         
     
    20852143                        Make/O/D/N=0 root:myGlobals:TransHeaderInfo:matchRows 
    20862144                        Wave matchRows=root:myGlobals:TransHeaderInfo:matchRows 
    2087          
     2145 
     2146                        WAVE/T ListWave = root:myGlobals:TransHeaderInfo:T_ListWave 
     2147                        WAVE selWave = root:myGlobals:TransHeaderInfo:T_selWave 
     2148                        WAVE/T titles = root:myGlobals:TransHeaderInfo:T_titles 
     2149                 
    20882150                   //transTableExists = WinType("TransFileTable") 
    20892151                //if (transTableExists != 0) 
     
    20942156                        num=numpnts(matchRows) 
    20952157 
     2158                        //Redimension the list box waves 
     2159                        Redimension/N=(num,4) ListWave 
     2160                        Redimension/N=(num,4,2) selWave 
     2161                        ListWave = "" 
     2162                        selWave[][][] = 0 
     2163 
     2164                        selWave[][0][] = 2^5 + 2^4 
     2165 
     2166                        selWave[][][1]= round(p/2-trunc(p/2))                                   // change the color index values 
     2167 
    20962168                        resultStr = "" 
    20972169                        for(ii=0;ii<num;ii+=1) 
    20982170                                sprintf tmpStr,"\\f01\\K(52428,1,1)%s\\K(0,0,0)\\f00* Matches file: \\f01%s\\f00 | \\K(52428,1,1)\\f01%s\\f00\\K(0,0,0)%s\r",(tw[row])[0,numChars-1],samfile[matchRows[ii]],(sw[matchRows[ii]])[0,numchars-1],(sw[matchRows[ii]])[numchars,59] 
    20992171                                resultStr += tmpStr 
     2172                                listWave[ii][1] = (tw[row])[0,numChars-1] + "*" + (tw[row])[numChars,59] 
     2173                                listWave[ii][2] = samfile[matchRows[ii]] 
     2174                                listWave[ii][3] = (sw[matchRows[ii]])[0,numchars-1] + (sw[matchRows[ii]])[numchars,59]  // ?? 
    21002175                        endfor 
    21012176         
Note: See TracChangeset for help on using the changeset viewer.