Ignore:
Timestamp:
Sep 14, 2009 11:59:44 AM (13 years ago)
Author:
ajj
Message:
  • Code for output of canSAS XML files for AVE and ABS generated via protocol panel.
  • NOT set as default output as yet.
Location:
sans/Dev/trunk/NCNR_User_Procedures
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Common/NIST_XML_v40.ipf

    r548 r555  
    361361End 
    362362 
     363//AJJ 12/5/08 
     364 
     365//Define struct for file contents 
     366Structure NISTXMLfile 
     367//      string filename 
     368        string Run 
     369        string title 
     370 
     371        //<SASdata> 
     372        Wave Q,I,Idev,Qdev,Qmean,Shadowfactor,dQl 
     373        string unitsQ,unitsI,unitsIdev,unitsQdev,unitsQmean,unitsShadowfactor,unitsdQl 
     374 
     375//      Variable flux_monitor 
     376//      string Q_resolution 
     377 
     378        //<SASsample> 
     379        string sample_ID 
     380        variable sample_thickness 
     381        string unitssample_thickness 
     382        variable sample_transmission 
     383 
     384        //SASinstrument 
     385        string nameSASinstrument 
     386        // SASinstrument/SASsource 
     387        string radiation 
     388//      string beam_shape 
     389        variable wavelength 
     390        string unitswavelength 
     391        variable wavelength_spread 
     392        string unitswavelength_spread 
     393  
     394        //<SAScollimation> 
     395//      variable collimation_length 
     396//      string unitscollimation_length 
     397        variable source_aperture 
     398        string unitssource_aperture 
     399        string typesource_aperture 
     400        variable sample_aperture 
     401        string unitssample_aperture 
     402        string typesample_aperture 
     403 
     404        //SASdetector         <SASdetector> 
     405        string detector_name 
     406        variable offset_angle 
     407        string unitsoffset_angle 
     408        variable  SDD 
     409        string unitsSDD 
     410        variable beamcenter_X 
     411        string unitsbeamcenter_X 
     412        variable beamcenter_Y 
     413        string unitsbeamcenter_Y 
     414//      variable pixel_sizeX 
     415//      string unitspixel_sizeX 
     416//      variable pixel_sizeY 
     417//      string unitspixel_sizeY 
     418//      string detectortype  
     419 
     420        // <SASprocess name="NCNR-IGOR"> 
     421        string nameSASprocess 
     422        string SASprocessnote 
     423//      string SASprocessdate 
     424//      string average_type 
     425//      string SAM_file 
     426//      string BKD_file 
     427//      string EMP_file 
     428//      string DIV_file 
     429//      string MASK_file 
     430//      string ABS_parameters 
     431//      variable TSTAND 
     432//      variable DSTAND 
     433//      string unitsDSTAND 
     434//      variable IZERO 
     435//      variable XSECT 
     436//      string unitsXSECT 
     437        string SASnote 
     438Endstructure 
     439 
     440 
     441//Function to write NIST canSAS XML files 
     442//Minimalist XML file - AJJ Dec 2008 
     443function writeNISTXML(fileName, NISTfile) 
     444        String fileName 
     445        Struct NISTXMLfile &NISTfile 
     446 
     447        variable fileID 
     448         
     449        //create the sasXML file with SASroot 
     450        //no namespace, no prefix 
     451        fileID = xmlcreatefile(fileName,"SASroot","cansas1d/1.0","") 
     452 
     453        //create a version attribute for the root element 
     454        xmlsetAttr(fileID,"/SASroot","","version","1.0") 
     455        xmlsetAttr(fileID,"/SASroot","","xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance") 
     456        xmlsetAttr(fileID,"/SASroot","","xsi:schemaLocation","cansas1d/1.0 http://svn.smallangles.net/svn/canSAS/1dwg/trunk/cansas1d.xsd") 
     457 
     458 
     459        //create the SASentry node 
     460        xmladdnode(fileID,"/SASroot","","SASentry","",1) 
     461                 
     462        //create the Title node 
     463        xmladdnode(fileID,"/SASroot/SASentry","","Title",NISTfile.Title,1) 
     464 
     465        //create the Run node 
     466        xmladdnode(fileID,"/SASroot/SASentry","","Run",NISTfile.Run,1) 
     467         
     468        //create the SASdata node 
     469        xmladdnode(fileID,"/SASroot/SASentry","","SASdata","",1) 
     470 
     471        variable ii 
     472         
     473        if (WaveExists(NISTfile.dQl) == 1) 
     474                for(ii=0 ; ii<numpnts(NISTfile.Q) ; ii+=1) 
     475                        xmladdnode(fileID,"/SASroot/SASentry/SASdata","","Idata","",1) 
     476                        xmladdnode(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]","","Q",num2str(NISTfile.Q[ii]),1) 
     477                        xmlsetAttr(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]/Q","","unit",NISTfile.unitsQ) 
     478         
     479                        xmladdnode(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]","","I",num2str(NISTfile.I[ii]),1) 
     480                        xmlsetAttr(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]/I","","unit",NISTfile.unitsI) 
     481         
     482                        xmladdnode(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]","","Idev",num2str(NISTfile.Idev[ii]),1) 
     483                        xmlsetAttr(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]/Idev","","unit",NISTfile.unitsIdev)       
     484         
     485                        xmladdnode(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]","","Idev",num2str(NISTfile.dQl[ii]),1) 
     486                        xmlsetAttr(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]/Idev","","unit",NISTfile.unitsdQl)                
     487                endfor 
     488        else 
     489                for(ii=0 ; ii<numpnts(NISTfile.Q) ; ii+=1) 
     490                        xmladdnode(fileID,"/SASroot/SASentry/SASdata","","Idata","",1) 
     491                        xmladdnode(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]","","Q",num2str(NISTfile.Q[ii]),1) 
     492                        xmlsetAttr(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]/Q","","unit",NISTfile.unitsQ) 
     493         
     494                        xmladdnode(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]","","I",num2str(NISTfile.I[ii]),1) 
     495                        xmlsetAttr(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]/I","","unit",NISTfile.unitsI) 
     496         
     497                        xmladdnode(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]","","Idev",num2str(NISTfile.Idev[ii]),1) 
     498                        xmlsetAttr(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]/Idev","","unit",NISTfile.unitsIdev) 
     499         
     500                        xmladdnode(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]","","Qdev",num2str(NISTfile.Qdev[ii]),1) 
     501                        xmlsetAttr(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]/Qdev","","unit",NISTfile.unitsQdev) 
     502         
     503                        xmladdnode(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]","","Qmean",num2str(NISTfile.Qmean[ii]),1) 
     504                        xmlsetAttr(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]/Qmean","","unit",NISTfile.unitsQmean) 
     505         
     506                        xmladdnode(fileID,"/SASroot/SASentry/SASdata/Idata["+num2istr(ii+1)+"]","","Shadowfactor",num2str(NISTfile.shadowfactor[ii]),1) 
     507                endfor 
     508        endif 
     509 
     510        //SASsample node 
     511        xmladdnode(fileID,"/SASroot/SASentry","","SASsample","",1) 
     512        xmladdnode(fileID,"/SASroot/SASentry/SASsample","","ID",NISTfile.sample_ID,1) 
     513 
     514        //SASInstrument node 
     515        xmladdnode(fileID,"/SASroot/SASentry","","SASinstrument","",1) 
     516        xmladdnode(fileID,"/SASroot/SASentry/SASinstrument","","name",NISTfile.nameSASinstrument,1) 
     517         
     518        //SASsource 
     519        xmladdnode(fileID,"/SASroot/SASentry/SASinstrument","","SASsource","",1) 
     520        xmladdnode(fileID,"/SASroot/SASentry/SASinstrument/SASsource","","radiation",NISTfile.radiation,1) 
     521 
     522        //SAScollimation 
     523        xmladdnode(fileID,"/SASroot/SASentry/SASinstrument","","SAScollimation","",1) 
     524 
     525        //SASdetector 
     526        xmladdnode(fileID,"/SASroot/SASentry/SASinstrument","","SASdetector","",1) 
     527        xmladdnode(fileID,"/SASroot/SASentry/SASinstrument/SASdetector","","name",NISTfile.detector_name,1) 
     528 
     529 
     530        //SASprocess 
     531        xmladdnode(fileID,"/SASroot/SASentry","","SASprocess","",1) 
     532        xmlsetAttr(fileID,"/SASroot/SASentry/SASprocess","","name",NISTfile.nameSASprocess)      
     533        xmladdnode(fileID,"/SASroot/SASentry/SASprocess","","SASprocessnote",NISTfile.SASprocessnote,1) 
     534         
     535        //SASnote 
     536        xmladdnode(fileID,"/SASroot/SASentry","","SASnote",NISTfile.SASnote,1) 
     537         
     538        xmlsavefile(fileID) 
     539        xmlclosefile(fileID,0) 
     540         
     541end 
     542 
     543Function convertNISTtoNISTXML(fileStr) 
     544        String fileStr 
     545         
     546        Struct NISTXMLfile nf 
     547         
     548        Variable rr,gg,bb,refnum,dQv 
     549        SetDataFolder root:      
     550         
     551        if (cmpStr(fileStr,"") == 0) 
     552                //No filename given, open dialog 
     553                Open/D/R  refnum 
     554                if (cmpstr(S_filename,"") == 0) 
     555                        return 0 
     556                else 
     557                        fileStr = S_filename 
     558                endif 
     559        endif 
     560 
     561        //Load the waves, using default waveX names 
     562        //if no path or file is specified for LoadWave, the default Mac open dialog will appear 
     563        LoadWave/G/D/A/Q fileStr 
     564        String fileNamePath = S_Path+S_fileName 
     565        String basestr = CleanupName(ParseFilePath(3,ParseFilePath(5,fileNamePath,":",0,0),":",0,0),0) 
     566//      String baseStr = CleanupName(S_fileName,0) 
     567//              print "basestr :"+basestr 
     568        String fileName =  ParseFilePath(0,ParseFilePath(5,filestr,":",0,0),":",1,0) 
     569//              print "filename :"+filename 
     570        Variable numCols = V_flag 
     571        String outfileName = S_Path+basestr+".xml" 
     572 
     573         
     574        if(numCols==3)          //simple 3-column data with no resolution information 
     575                 
     576                Wave nf.Q = $(StringFromList(0, S_waveNames ,";" )) 
     577                Wave nf.I = $(StringFromList(1, S_waveNames ,";" )) 
     578                Wave nf.Idev = $(StringFromList(2, S_waveNames ,";" )) 
     579                                 
     580                //Set units 
     581                nf.unitsQ = "1/A" 
     582                nf.unitsI = "1/cm" 
     583                nf.unitsIdev = "1/cm" 
     584                                 
     585        endif           //3-col data 
     586         
     587        if(numCols == 6)                //6-column SANS or USANS data that has resolution information 
     588                 
     589                // put the names of the (default named) loaded waves into local names 
     590                Wave nf.Q = $(StringFromList(0, S_waveNames ,";" )) 
     591                Wave nf.I  = $(StringFromList(1, S_waveNames ,";" )) 
     592                Wave nf.Idev  = $(StringFromList(2, S_waveNames ,";" )) 
     593 
     594                //Set units 
     595                nf.unitsQ = "1/A" 
     596                nf.unitsI = "1/cm" 
     597                nf.unitsIdev = "1/cm" 
     598 
     599                WAVE resTest = $(StringFromList(3, S_waveNames ,";" )) 
     600 
     601                // need to switch based on SANS/USANS 
     602                if (isSANSResolution(resTest[0]))               //checks to see if the first point of the wave is <0] 
     603                        Wave nf.Qdev  = $(StringFromList(3, S_waveNames ,";" )) 
     604                        Wave nf.Qmean  = $(StringFromList(4, S_waveNames ,";" )) 
     605                        Wave nf.Shadowfactor  = $(StringFromList(5, S_waveNames ,";" )) 
     606                         
     607                        //Set units 
     608                        nf.unitsQdev = "1/A" 
     609                        nf.unitsQmean = "1/A" 
     610                else 
     611                        Wave nf.dQl = $(StringFromList(3, S_waveNames ,";" )) 
     612                         
     613                        //Set units 
     614                        nf.unitsdQl = "1/A" 
     615                         
     616                endif 
     617                 
     618                //Tidy up 
     619                Variable i = 0 
     620                do 
     621                        WAVE wv= $(StringFromList(i,S_waveNames,";")) 
     622                        if( WaveExists(wv) == 0 ) 
     623                                break 
     624                        endif 
     625                        KillWaves wv 
     626                        i += 1 
     627                while (1)       // exit is via break statement 
     628 
     629         
     630        endif   //6-col data 
     631 
     632        //Get file header 
     633        setmetadataFromASCHeader(fileStr,nf) 
     634 
     635        //Set required metadata that we can't get from these files 
     636        nf.detector_name = "Ordela 128x128" 
     637        nf.nameSASinstrument = "NIST NG3/NG7 SANS" 
     638        nf.radiation = "neutron" 
     639        nf.sample_ID = nf.title 
     640        nf.nameSASProcess = "NIST Data Converter" 
     641        nf.sasnote = "Data converted from previous NIST format. SASProcessnote contains header from original text file." 
     642 
     643        writeNISTXML(outfileName, nf) 
     644 
     645end 
     646 
     647function setmetadataFromASCHeader(fileStr,NISTfile) 
     648        String fileStr 
     649        Struct NISTXMLfile &NISTfile 
     650 
     651        String hdr="",buffer="" 
     652        Variable lineNum = 0, fileref 
     653        Variable num 
     654         
     655        Open/R fileref as fileStr 
     656        do 
     657                FReadLine fileref, buffer 
     658                if (stringmatch(buffer,"*The 6 columns are*") == 1) 
     659                        break 
     660                endif 
     661                buffer = RemoveEnding(buffer) 
     662                print buffer 
     663                //Get run value 
     664                if (stringmatch(buffer,"*file:*") == 1) 
     665                        NISTfile.run = TrimWS(StringFromList(0,StringFromList(1, buffer, ":"),"C")) 
     666                elseif (stringmatch(buffer,"combined file*") == 1) 
     667                        NISTfile.run = "Combined Data" 
     668                endif 
     669                 
     670                //Get title value 
     671                if (stringmatch(buffer,"*FIRST File LABEL:*") == 1) 
     672                        NISTfile.title = TrimWS(StringFromList(1,buffer, ":")) 
     673                elseif(stringmatch(buffer,"*LABEL:*") == 1) 
     674                        NISTfile.title = TrimWS(StringFromList(1,buffer, ":")) 
     675                endif 
     676                 
     677                hdr += buffer+"\n" 
     678        while(strlen(buffer) > 0) 
     679         
     680        if (strlen(NISTfile.title) == 0) 
     681                NISTfile.title = CleanupName(ParseFilePath(3,ParseFilePath(5,fileStr,":",0,0),":",0,0),0) 
     682        endif 
     683        if (strlen(NISTfile.run) == 0) 
     684                NISTfile.run = "Unknown" 
     685        endif 
     686         
     687        NISTfile.sasprocessnote = RemoveEnding(hdr) 
     688         
     689end 
     690 
     691 
    363692#else   // if( Exists("XmlOpenFile") ) 
    364693        // No XMLutils XOP: provide dummy function so that IgorPro can compile dependent support code 
     
    371700         
    372701 
     702        function writeNISTXML(fileName, NISTfile) 
     703            String fileName, NISTfile 
     704            Abort  "XML function provided by XMLutils XOP is not available, get the XOP from : http://www.igorexchange.com/project/XMLutils (see http://www.smallangles.net/wgwiki/index.php/cansas1d_binding_IgorPro for details)" 
     705         RETURN(-6) 
     706         
    373707         
    374708#endif  // if( Exists("XmlOpenFile")  
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/ProtocolAsPanel.ipf

    r510 r555  
    19131913                        default: 
    19141914                                WriteWaves_W_Protocol(activeType,fullpath,dialog) 
     1915                                //WriteXMLWaves_W_Protocol(activeType,fullpath,dialog) 
    19151916                endswitch 
    19161917                 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/WriteQIS.ipf

    r544 r555  
    858858        return(0) 
    859859End 
     860 
     861 
     862//for writing out data (q-i-s) from the "type" folder, and including reduction information 
     863//if fullpath is a complete HD path:filename, no dialog will be presented 
     864//if fullpath is just a filename, the save dialog will be presented 
     865//if dialog = 1, a dialog will always be presented 
     866// 
     867// root:myGlobals:Protocols:gProtoStr is the name of the currently active protocol 
     868// 
     869Function WriteXMLWaves_W_Protocol(type,fullpath,dialog) 
     870        String type,fullpath 
     871        Variable dialog         //=1 will present dialog for name 
     872         
     873        Struct NISTXMLfile nf 
     874         
     875        String destStr="" 
     876        destStr = "root:Packages:NIST:"+type 
     877         
     878        Variable refNum 
     879        String formatStr = "%15.4g %15.4g %15.4g %15.4g %15.4g %15.4g\r\n" 
     880        String fname,ave="C",hdrStr1="",hdrStr2="" 
     881        Variable step=1 
     882         
     883        //*****these waves MUST EXIST, or IGOR Pro will crash, with a type 2 error**** 
     884        WAVE intw=$(destStr + ":integersRead") 
     885        WAVE rw=$(destStr + ":realsRead") 
     886        WAVE/T textw=$(destStr + ":textRead") 
     887        WAVE qvals =$(destStr + ":qval") 
     888        WAVE inten=$(destStr + ":aveint") 
     889        WAVE sig=$(destStr + ":sigave") 
     890        WAVE qbar = $(destStr + ":QBar") 
     891        WAVE sigmaq = $(destStr + ":SigmaQ") 
     892        WAVE fsubs = $(destStr + ":fSubS") 
     893 
     894 
     895        SVAR gProtoStr = root:myGlobals:Protocols:gProtoStr 
     896        Wave/T proto=$("root:myGlobals:Protocols:"+gProtoStr) 
     897 
     898         
     899        //check each wave 
     900        If(!(WaveExists(intw))) 
     901                Abort "intw DNExist BinaryWrite_W_Protocol()" 
     902        Endif 
     903        If(!(WaveExists(rw))) 
     904                Abort "rw DNExist BinaryWrite_W_Protocol()" 
     905        Endif 
     906        If(!(WaveExists(textw))) 
     907                Abort "textw DNExist BinaryWrite_W_Protocol()" 
     908        Endif 
     909        If(!(WaveExists(qvals))) 
     910                Abort "qvals DNExist BinaryWrite_W_Protocol()" 
     911        Endif 
     912        If(!(WaveExists(inten))) 
     913                Abort "inten DNExist BinaryWrite_W_Protocol()" 
     914        Endif 
     915        If(!(WaveExists(sig))) 
     916                Abort "sig DNExist BinaryWrite_W_Protocol()" 
     917        Endif 
     918        If(!(WaveExists(qbar))) 
     919                Abort "qbar DNExist BinaryWrite_W_Protocol()" 
     920        Endif 
     921        If(!(WaveExists(sigmaq))) 
     922                Abort "sigmaq DNExist BinaryWrite_W_Protocol()" 
     923        Endif 
     924        If(!(WaveExists(fsubs))) 
     925                Abort "fsubs DNExist BinaryWrite_W_Protocol()" 
     926        Endif 
     927        If(!(WaveExists(proto))) 
     928                Abort "current protocol wave DNExist BinaryWrite_W_Protocol()" 
     929        Endif 
     930         
     931        if(dialog) 
     932                PathInfo/S catPathName 
     933                fullPath = DoSaveFileDialog("Save data as") 
     934                If(cmpstr(fullPath,"")==0) 
     935                        //user cancel, don't write out a file 
     936                        Close/A 
     937                        Abort "no data file was written" 
     938                Endif 
     939                //Print "dialog fullpath = ",fullpath 
     940        Endif 
     941         
     942        SVAR samFiles = $("root:Packages:NIST:"+type+":fileList") 
     943        //actually open the file here 
     944        //Open refNum as fullpath 
     945         
     946        //Data 
     947        Wave nf.Q = qvals 
     948        nf.unitsQ = "1/A" 
     949        Wave nf.I = inten 
     950        nf.unitsI = "1/cm" 
     951        Wave nf.Idev = sig 
     952        nf.unitsIdev = "1/cm" 
     953        Wave nf.Qdev = sigmaq 
     954        nf.unitsQdev = "1/A" 
     955        Wave nf.Qmean = qbar 
     956        nf.unitsQmean = "1/A" 
     957        Wave nf.Shadowfactor = fSubS 
     958        nf.unitsShadowfactor = "none" 
     959         
     960         
     961        //write out the standard header information 
     962        //fprintf refnum,"FILE: %s\t\t CREATED: %s\r\n",textw[0],textw[1] 
     963         
     964        //AJJ to fix with sensible values 
     965        nf.run = "Test" 
     966        String acct = textw[3] 
     967        nf.nameSASinstrument = acct[1,3] 
     968        nf.SASnote = "" 
     969        // 
     970        nf.sample_ID = textw[6] 
     971        nf.title = textw[6] 
     972        nf.radiation = "neutron" 
     973        nf.wavelength = rw[26] 
     974        nf.unitswavelength = "A" 
     975        nf.offset_angle = rw[19] 
     976        nf.unitsoffset_angle = "cm" 
     977        nf.SDD = rw[18] 
     978        nf.unitsSDD = "m" 
     979        nf.sample_transmission = rw[4] 
     980        nf.sample_thickness = rw[5] 
     981        nf.unitssample_thickness = "mm" 
     982         
     983        nf.beamcenter_X = rw[16]   
     984        nf.beamcenter_Y = rw[17] 
     985        nf.unitsbeamcenter_X = "pixels" 
     986        nf.unitsbeamcenter_Y = "pixels" 
     987        nf.source_aperture = rw[23] 
     988        nf.typesource_aperture = "pinhole" 
     989        nf.unitssource_aperture = "mm" 
     990        nf.sample_aperture = rw[24] 
     991        nf.typesample_aperture = "pinhole" 
     992        nf.unitssample_aperture = "mm" 
     993        //nf.collimation_length = total length - rw[25] 
     994        nf.wavelength_spread = rw[27] 
     995        nf.unitswavelength_spread = "percent" 
     996        //Do something with beamstop (rw[21]) 
     997        nf.detector_name = textW[9] 
     998//      fprintf refnum,"MON CNT   LAMBDA   DET ANG   DET DIST   TRANS   THICK   AVE   STEP\r\n" 
     999//      fprintf refnum,hdrStr1 
     1000 
     1001//      fprintf refnum,"BCENT(X,Y)   A1(mm)   A2(mm)   A1A2DIST(m)   DL/L   BSTOP(mm)   DET_TYP \r\n" 
     1002//      fprintf refnum,hdrStr2 
     1003 
     1004        //insert protocol information here 
     1005        //-1 list of sample files 
     1006        //0 - bkg 
     1007        //1 - emp 
     1008        //2 - div 
     1009        //3 - mask 
     1010        //4 - abs params c2-c5 
     1011        //5 - average params 
     1012        nf.SASprocessnote =  "SAM: "+samFiles+"\n" 
     1013        nf.SASprocessnote += "BGD: "+proto[0]+"\n" 
     1014        nf.SASprocessnote += "EMP: "+Proto[1]+"\n" 
     1015        nf.SASprocessnote += "DIV: "+Proto[2]+"\n" 
     1016        nf.SASprocessnote += "MASK: "+Proto[3]+"\n" 
     1017        nf.SASprocessnote += "ABS Parameters (3-6): "+Proto[4]+"\n" 
     1018        nf.SASprocessnote += "Average Choices: "+Proto[5]+"\n" 
     1019         
     1020        nf.nameSASProcess = "NIST IGOR" 
     1021 
     1022        //Close refnum 
     1023         
     1024        writeNISTXML(fullpath, nf) 
     1025         
     1026        SetDataFolder root:             //(redundant) 
     1027         
     1028        //write confirmation of write operation to history area 
     1029        Print "Averaged XML File written: ", GetFileNameFromPathNoSemi(fullPath) 
     1030        KillWaves/Z tempShortProto 
     1031        Return(0) 
     1032End 
Note: See TracChangeset for help on using the changeset viewer.