Ignore:
Timestamp:
Dec 1, 2009 10:02:58 PM (13 years ago)
Author:
ajj
Message:
  • Write out data file as XML
  • Fix XML input
  • Finished Data Arithmetic panel as replacement for Subtract_1D
File:
1 edited

Legend:

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

    r601 r607  
    3434                        String w0,w1,w2,w3,w4,w5,basestr,fileName 
    3535                        String xmlDataFolder,xmlDataSetFolder 
    36                          
    37                          
    3836                         
    3937                        for (i = 0; i < CountObjects(xmlReaderFolder,4); i+=1) 
     
    4644                                                 
    4745                                                xmlDataSetFolder = xmlDataFolder+GetIndexedObjName(xmlDataFolder,4,j)+":" 
    48                                                  
    49                                                 SetDataFolder xmlDataSetFolder 
     46                                         
     47                                                SetDataFolder xmlDataSetFolder   
    5048                                         
    5149                                                basestr = CleanupName(getXMLDataSetTitle(xmlDataSetFolder,j),0) 
    5250                                                //String basestr = ParseFilePath(3, ParseFilePath(5,filestr,":",0,0),":",0,0)                            
    5351                                                fileName =  ParseFilePath(0,ParseFilePath(5,filestr,":",0,0),":",1,0) 
     52                                                         
    5453                                                         
    5554                                                //print "In NIST XML Loader" 
     
    170169                                else 
    171170                                        //No multiple SASData sets for this SASEntry 
    172                                         SetDataFolder xmlDataFolder 
     171                                        SetDataFolder xmlDataFolder                                      
     172                                         
     173                                        print xmlDataFolder 
    173174                                         
    174175                                        basestr = CleanupName(getXMLDataSetTitle(xmlDataFolder,0),0) 
    175176                                        //String basestr = ParseFilePath(3, ParseFilePath(5,filestr,":",0,0),":",0,0)                            
    176177                                        fileName =  ParseFilePath(0,ParseFilePath(5,filestr,":",0,0),":",1,0) 
    177                                                  
     178                                                                                                                                 
    178179                                        //print "In NIST XML Loader" 
    179180                                        //print "fileStr: ",fileStr 
     
    299300        SVAR title = root:Packages:NIST:gXMLLoader_Title 
    300301 
    301  
    302302        String mdstring = xmlDF+"metadata" 
    303303 
     
    315315        else 
    316316                FindValue/TEXT="Run"/TXOP=4/Z meta 
    317                 title = title+" "+TrimWS(meta[V_Value][1])       
    318                 print title 
     317                if (V_Value >= 0) 
     318                        title = title+" "+TrimWS(meta[V_Value][1])       
     319                        print title 
     320                endif 
    319321        endif 
    320322 
     
    715717         
    716718        Variable refNum 
    717         String formatStr = "%15.4g %15.4g %15.4g %15.4g %15.4g %15.4g\r\n" 
    718         String fname,ave="C",hdrStr1="",hdrStr2="" 
    719         Variable step=1 
     719//      String fname,ave="C",hdrStr1="",hdrStr2="" 
     720//      Variable step=1 
    720721         
    721722        //*****these waves MUST EXIST, or IGOR Pro will crash, with a type 2 error**** 
     
    870871End 
    871872 
     873/// See WriteModelData_v40.ipf for 6 column equivalent 
     874Function ReWrite1DXMLData(folderStr) 
     875        String folderStr 
     876 
     877        String fullpath="" 
     878        Variable dialog=1 
     879        String dataSetFolderParent,basestr,fullBase 
     880         
     881        Struct NISTXMLfile nf 
     882 
     883        //Abuse ParseFilePath to get path without folder name 
     884        dataSetFolderParent = ParseFilePath(1,folderStr,":",1,0) 
     885        //Abuse ParseFilePath to get basestr 
     886        basestr = ParseFilePath(0,folderStr,":",1,0) 
     887 
     888        SetDataFolder $(dataSetFolderParent+basestr) 
     889        WAVE/Z qw = $(baseStr+"_q") 
     890        WAVE/Z iw = $(baseStr+"_i") 
     891        WAVE/Z sw = $(baseStr+"_s") 
     892        WAVE/Z resw = $(baseStr+"_res") 
     893         
     894        if(WaveExists(qw) == 0) 
     895                Abort "q is missing" 
     896        endif 
     897        if(WaveExists(iw) == 0) 
     898                Abort "i is missing" 
     899        endif 
     900        if(WaveExists(sw) == 0) 
     901                Abort "s is missing" 
     902        endif 
     903        if(WaveExists(resw) == 0) 
     904                Abort "Resolution information is missing." 
     905        endif 
     906         
     907        Duplicate/O qw qbar,sigQ,fs 
     908                 
     909 
     910                 
     911        //Data 
     912        Wave nf.Q = qw 
     913        nf.unitsQ = "1/A" 
     914        Wave nf.I = iw 
     915        nf.unitsI = "1/cm" 
     916        Wave nf.Idev = sw 
     917        nf.unitsIdev = "1/cm" 
     918        Wave nf.Qdev = sigQ 
     919        nf.unitsQdev = "1/A" 
     920        Wave nf.Qmean = qbar 
     921        nf.unitsQmean = "1/A" 
     922        Wave nf.Shadowfactor = fs 
     923        nf.unitsShadowfactor = "none" 
     924         
     925         
     926        //write out the standard header information 
     927        //fprintf refnum,"FILE: %s\t\t CREATED: %s\r\n",textw[0],textw[1] 
     928         
     929        //AJJ to fix with sensible values 
     930        nf.run = "" 
     931        nf.nameSASinstrument = "NIST IGOR Procedures" 
     932        nf.SASnote = "" 
     933        // 
     934        nf.sample_ID = baseStr 
     935        nf.title = baseStr 
     936        nf.radiation = "neutron" 
     937        //Do something with beamstop (rw[21]) 
     938        nf.detector_name = "Re-written data" 
     939 
     940        nf.SASprocessnote =  "Modified data written from folder "+baseStr+" on "+(date()+" "+time()) 
     941         
     942        nf.nameSASProcess = "NIST IGOR" 
     943 
     944        //Close refnum 
     945         
     946        if(dialog) 
     947                PathInfo/S catPathName 
     948                fullPath = DoSaveFileDialog("Save data as",fname=baseStr+".xml") 
     949                If(cmpstr(fullPath,"")==0) 
     950                        //user cancel, don't write out a file 
     951                        Close/A 
     952                        Abort "no data file was written" 
     953                Endif 
     954                //Print "dialog fullpath = ",fullpath 
     955        Endif 
     956         
     957         
     958        writeNISTXML(fullpath,nf) 
     959        //write confirmation of write operation to history area 
     960        Print "XML File written: ", GetFileNameFromPathNoSemi(fullPath) 
     961        KillWaves/Z tempShortProto 
     962        Return(0) 
     963End 
     964 
    872965#else   // if( Exists("XmlOpenFile") ) 
    873966        // No XMLutils XOP: provide dummy function so that IgorPro can compile dependent support code 
     
    893986                return(-6) 
    894987        end 
     988         
     989        Function ReWrite1DXMLData(folderStr) 
     990                String folderStr 
     991         
     992            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)" 
     993                return(-6) 
     994        end 
    895995#endif 
    896996 
Note: See TracChangeset for help on using the changeset viewer.