Ignore:
Timestamp:
Aug 13, 2019 1:19:55 PM (3 years ago)
Author:
krzywon
Message:

Load in multiple detectors and fix errors happening when loading data.

File:
1 edited

Legend:

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

    r1190 r1191  
    9090        String parent,nxParent 
    9191        Variable sasentry = NumVarOrDefault("root:Packages:NIST:gSASEntryNumber", 1) 
    92         sPrintf parent,":sasentry%d",sasentry 
    9392        String location = base + parent 
    94         sPrintf nxParent,"/sasentry%d/",sasentry 
    9593        NewDataFolder/O/S $(location) 
    9694        Make/O/T/N=1 $(location + ":vals") = {""} 
     
    257255        String I_dataS,Q_dataS,dQ_dataS,dQl_dataS,dQw_dataS,dI_dataS 
    258256        String angst = StrVarOrDefault("root:Packages:NIST:gAngstStr", "A") 
     257        String/G loadDir = "root:" 
    259258         
    260259        // Check fullpath and dialog 
     
    295294                EndIf 
    296295                 
    297                 String I_dataStore,Q_dataStore,dQ_dataStore,dQl_dataStore,dQw_dataStore,dI_dataStore 
    298                  
    299296                // Multiple SASentry groups 
    300297                do 
     
    305302                                        sPrintF baseStr,baseformat,ii 
    306303                                EndIf 
    307                                 String/G loadDir = "root:" + baseStr 
    308                                 NewDataFolder/O/S $loadDir 
    309                                 I_dataStore = baseStr + "_i" 
    310                                 Q_dataStore = baseStr + "_q" 
    311                                 dQ_dataStore = baseStr + "_dq" 
    312                                 dQl_dataStore = baseStr + "_dql" 
    313                                 dQw_dataStore = baseStr + "_dqw" 
    314                                 dI_dataStore = baseStr + "_s" 
    315                                 print "loadDir: ",loadDir 
    316                                 print "baseStr: ",baseStr 
    317                                 print "baseformat: ",baseformat 
    318                                 print "I_dataStore: ",I_dataStore 
     304                                loadDir = "root:" + baseStr 
     305                                NewDataFolder/O/S $(loadDir) 
    319306                                // Load in data 
    320                                 HDF5LoadData /O/Z/N=$I_dataStore fileID, entryBase + dataBase + "I" 
    321                                 HDF5LoadData /O/Z/N=$Q_dataStore fileID, entryBase + dataBase + "Q" 
    322                                 HDF5LoadData /O/Z/N=$dQ_dataStore fileID, entryBase + dataBase + "dQ" 
    323                                 HDF5LoadData /O/Z/N=$dQl_dataStore fileID, entryBase + dataBase + "dQl" 
    324                                 HDF5LoadData /O/Z/N=$dQw_dataStore fileID, entryBase + dataBase + "dQw" 
    325                                 HDF5LoadData /O/Z/N=$dI_dataStore fileID, entryBase + dataBase + "Idev" 
     307                                HDF5LoadData /O/Z/N=$(baseStr + "_i") fileID, entryBase + dataBase + "I" 
     308                                HDF5LoadData /O/Z/N=$(baseStr + "_q") fileID, entryBase + dataBase + "Q" 
     309                                HDF5LoadData /O/Z/N=$(baseStr + "_dq") fileID, entryBase + dataBase + "dQ" 
     310                                HDF5LoadData /O/Z/N=$(baseStr + "_dql") fileID, entryBase + dataBase + "dQl" 
     311                                HDF5LoadData /O/Z/N=$(baseStr + "_dqw") fileID, entryBase + dataBase + "dQw" 
     312                                HDF5LoadData /O/Z/N=$(baseStr + "_s") fileID, entryBase + dataBase + "Idev" 
    326313                                if (isMultiData == 1) 
    327314                                        sprintf dataBase,dataUnformatted,ii 
     
    348335                        Print GetDataFolder(1) 
    349336                         
    350                         String w0 = Q_dataStore 
    351                         String w1 = I_dataStore 
    352                         String w2 = dI_dataStore 
     337                        String w0 = (baseStr + "_q") 
     338                        String w1 = (baseStr + "_i") 
     339                        String w2 = (baseStr + "_s") 
    353340                         
    354341                        // assign colors randomly 
     
    390377                        endif 
    391378                endif 
    392                  
    393379        endif 
    394380         
     
    405391        Variable groupID 
    406392        SetDataFolder $(loadDir) 
     393        Make/O/N=52 $(loadDir + ":realsRead") 
     394        Make/O/T/N=11 $(loadDir + ":textRead") 
    407395        Wave rw = $(loadDir + ":realsRead") 
    408396        Wave/T textw = $(loadDir + ":textRead") 
     397        print rw 
     398        int isMultiDetector = 0, ii = 0 
    409399         
    410400        // Title 
     
    429419         
    430420        // SASdetector 
    431          
    432         // 
    433         // TODO: Check for VSANS multi-detector 
    434         // 
    435          
    436421        String detectorParent = instrParent + "sasdetector/" 
    437422        HDF5OpenGroup /Z fileID, detectorParent, groupID 
    438         HDF5LoadData /O/Z/N=detname fileID, detectorParent + "name" 
    439         HDF5LoadData /O/Z/N=sdd fileID, detectorParent + "SDD" 
    440         HDF5LoadData /O/Z/N=bcx fileID, detectorParent + "beam_center_x" 
    441         HDF5LoadData /O/Z/N=bcy fileID, detectorParent + "beam_center_y" 
    442         HDF5LoadData /O/Z/N=xps fileID, detectorParent + "x_pixel_size" 
    443         HDF5LoadData /O/Z/N=xpy fileID, detectorParent + "y_pixel_size" 
    444         Wave/T detname = $(loadDir + ":detname") 
    445         Wave sdd = $(loadDir + ":sdd") 
    446         Wave bcx = $(loadDir + ":bcx") 
    447         Wave bcy = $(loadDir + ":bcy") 
    448         Wave xps = $(loadDir + ":xps") 
    449         Wave xpy = $(loadDir + ":xpy") 
     423        If (groupID == 0) 
     424                isMultiDetector = 1 
     425                ii = 1 
     426                String detectorUnformatted = "sasdetector%d/" 
     427                sprintf detectorParent,instrParent + detectorUnformatted,ii 
     428                HDF5OpenGroup /Z fileID, detectorParent, groupID 
     429        EndIf 
     430        do 
     431                HDF5LoadData /O/Z/N=detname fileID, detectorParent + "name" 
     432                HDF5LoadData /O/Z/N=sdd fileID, detectorParent + "SDD" 
     433                HDF5LoadData /O/Z/N=bcx fileID, detectorParent + "beam_center_x" 
     434                HDF5LoadData /O/Z/N=bcy fileID, detectorParent + "beam_center_y" 
     435                HDF5LoadData /O/Z/N=xps fileID, detectorParent + "x_pixel_size" 
     436                HDF5LoadData /O/Z/N=xpy fileID, detectorParent + "y_pixel_size" 
     437                Wave/T detname = $(loadDir + ":detname") 
     438                Wave sdd = $(loadDir + ":sdd") 
     439                Wave bcx = $(loadDir + ":bcx") 
     440                Wave bcy = $(loadDir + ":bcy") 
     441                Wave xps = $(loadDir + ":xps") 
     442                Wave xpy = $(loadDir + ":xpy") 
     443                If (isMultiDetector) 
     444                        ii += 1 
     445                        sprintf detectorParent,instrParent + detectorUnformatted,ii 
     446                        HDF5OpenGroup /Z fileID, detectorParent, groupID 
     447                Else 
     448                        groupID = 0 
     449                EndIf 
     450        while (groupID != 0) 
    450451         
    451452        // SASsource 
Note: See TracChangeset for help on using the changeset viewer.