Ignore:
Timestamp:
Aug 15, 2019 2:33:23 PM (3 years ago)
Author:
krzywon
Message:

Output NSORT data as NXcanSAS. Mostly tested, but a couple TODOs and FIXMEs left.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/branches/nxcansas_writer/NCNR_User_Procedures/Common/NIST_NXcanSAS_v709.ipf

    r1193 r1194  
    8888        Variable fileID 
    8989        String base 
    90         String parent,nxParent 
     90        String location,nxParent 
    9191        Variable sasentry = NumVarOrDefault("root:Packages:NIST:gSASEntryNumber", 1) 
    92         String location = base + parent 
     92        sPrintf location,"%s:sasentry%d",base,sasentry // Igor memory base path for all 
     93        sPrintf nxParent,"/sasentry%d/",sasentry // HDF5 base path for all 
    9394        NewDataFolder/O/S $(location) 
    9495        Make/O/T/N=1 $(location + ":vals") = {""} 
     
    145146                Make/O/T/N=1 vals_i_wave 
    146147                vals_i_wave[0] = vals_i 
    147                 if(!stringmatch(name_i,"")) 
     148                if(!CmpStr(name_i,"") == 0) 
    148149                        HDF5SaveData /A=name_i vals_i_wave, fileID, path 
    149150                endif 
     
    217218         
    218219        groupID = NxCansas_CreateGroup(fileID,parent) 
    219  
     220         
    220221        // Save data to disk 
    221222        if(!stringmatch(var,"")) 
     
    226227                endif 
    227228        endif 
    228                  
     229         
    229230        NxCansas_writeAttributes(fileID,parent+var,attr,attrValues) 
    230231         
     
    318319                                        Wave q = $(baseStr + "_q") 
    319320                                        Wave dq = $(baseStr + "_dq") 
     321                                         
     322                                        // 
     323                                        // FIXME: All points set to the same value - need to loop 
     324                                        // 
     325                                         
    320326                                        Make/O/N=(xdim,ydim) $(baseStr + "_qx") = q[0] 
    321327                                        Make/O/N=(xdim,ydim) $(baseStr + "_qy") = q[1] 
     
    410416        Wave rw = $(loadDir + ":realsRead") 
    411417        Wave/T textw = $(loadDir + ":textRead") 
    412         print rw 
    413418        int isMultiDetector = 0, ii = 0 
    414419         
     
    536541// 
    537542/////////////////////////////////////////////////////////////////////////// 
     543 
     544/////////////////////////////////////////////////////////////////////////// 
     545// 
     546// Methods related to NSORT 
     547 
     548Function WriteNSORTedNXcanSASFile(qw,iw,sw,firstFileName,secondFileName,thirdFileName,fourthFileName,normTo,norm12,norm23,norm34,[res]) 
     549        Wave qw,iw,sw,res 
     550        String firstFileName,secondFileName,thirdFileName,fourthFileName,normTo 
     551        Variable norm12,norm23,norm34 
     552         
     553        Variable err=0,refNum,numCols,dialog=1,useRes=0 
     554        String fullPath="",formatStr="",process 
     555         
     556        //check each wave - else REALLY FATAL error when writing file 
     557        If(!(WaveExists(qw))) 
     558                err = 1 
     559                return err 
     560        Endif 
     561        If(!(WaveExists(iw))) 
     562                err = 1 
     563                return err 
     564        Endif 
     565        If(!(WaveExists(sw))) 
     566                err = 1 
     567                return err 
     568        Endif 
     569        if(WaveExists(res)) 
     570                useRes = 1 
     571        endif 
     572         
     573        NVAR/Z useTable = root:myGlobals:CombineTable:useTable 
     574        if(NVAR_Exists(useTable) && useTable==1) 
     575                SVAR str=root:myGlobals:CombineTable:SaveNameStr        //messy, but pass in as a global 
     576                fullPath = str 
     577                dialog=0 
     578        endif 
     579         
     580        process = CreateNSORTProcess(firstFileName,secondFileName,thirdFileName,fourthFileName,normTo,norm12,norm23,norm34) 
     581         
     582        NewDataFolder/O/S root:Packages:NIST:NSORT 
     583        SetDataFolder root:Packages:NIST:NSORT 
     584         
     585        Variable pts = numpnts(qw) 
     586        Make/O/N=(pts) qval = qw 
     587        Make/O/N=(pts) aveint = iw 
     588        Make/O/N=(pts) sigave = sw 
     589        if (useRes) 
     590                Make/O/N=(dimsize(res,0)) SigmaQ = res[p][0] 
     591                Make/O/N=(dimsize(res,0)) QBar = res[p][1] 
     592                Make/O/N=(dimsize(res,0)) fSubS = res[p][2] 
     593        Else 
     594                Make/O/N=(pts) SigmaQ = 0 
     595                Make/O/N=(pts) QBar = 0 
     596                Make/O/N=(pts) fSubS = 0 
     597        EndIf 
     598         
     599        Make/O/T/N=11 textRead 
     600        textRead[6] = firstfileName 
     601        textRead[0] = "Combined data" 
     602         
     603        Make/O/N=52 realsRead = 0 
     604         
     605        WriteNxCanSAS1D("NSORT",fullpath,dialog) 
     606         
     607End 
     608 
     609Function/T CreateNSORTProcess(firstFileName,secondFileName,thirdFileName,fourthFileName,normTo,norm12,norm23,norm34) 
     610        String firstFileName,secondFileName,thirdFileName,fourthFileName,normTo 
     611        Variable norm12,norm23,norm34 
     612        String process 
     613        String processFormat = "COMBINED FILE CREATED: %s - NSORT-ed %s\t+ %s\t+ %s\t+%s, normalized to %s, multiplicative factor 1-2 = %12.8g\t multiplicative factor 2-3 = %12.8g\t multiplicative factor 3-4 = %12.8g" 
     614         
     615        sprintf process,processFormat,date(),firstFileName,secondFileName,thirdFileName,fourthFileName,normTo,norm12,norm23,norm34 
     616        return process 
     617End 
     618 
     619// 
     620/////////////////////////////////////////////////////////////////////////// 
Note: See TracChangeset for help on using the changeset viewer.