Changeset 1190


Ignore:
Timestamp:
Aug 13, 2019 12:06:53 PM (3 years ago)
Author:
krzywon
Message:

Update loader for multidata and multientry items. TODO: differentiate 1D and 2D data, load in multiple detectors (VSANS), and create an NSORT method that outputs in the NXcanSAS format.

Location:
sans/Dev/branches/nxcansas_writer/NCNR_User_Procedures
Files:
2 edited

Legend:

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

    r1189 r1190  
    255255         
    256256        String filename 
     257        String I_dataS,Q_dataS,dQ_dataS,dQl_dataS,dQw_dataS,dI_dataS 
    257258        String angst = StrVarOrDefault("root:Packages:NIST:gAngstStr", "A") 
    258259         
     
    272273                baseStr = outstr                        //for output, hopefully correct length as passed in 
    273274        endif 
    274         String/G loadDir = "root:" + baseStr 
    275          
    276         String I_dataStore = baseStr + "_i" 
    277         String Q_dataStore = baseStr + "_q" 
    278         String dQ_dataStore = baseStr + "_dq" 
    279         String dQl_dataStore = baseStr + "_dql" 
    280         String dQw_dataStore = baseStr + "_dqw" 
    281         String dI_dataStore = baseStr + "_s" 
    282          
    283         //go back to the root folder and clean up before leaving 
    284         NewDataFolder/O/S $loadDir 
    285         Make/O/N=52 $(loadDir + ":realsRead") 
    286         Make/O/T/N=11 $(loadDir + ":textRead") 
     275        String baseFormat = baseStr + "_%d" 
    287276         
    288277        if(fileID) 
    289278                HDF5ListGroup /F/R/Type=1/Z fileID,"/" 
    290279                String groupList = S_HDF5ListGroup 
    291                  
    292                 // 
    293                 // TODO: Differentiate between 1D, 2D, and USANS data (resolutions) (DO I NEED TO?) 
    294                 // 
    295          
    296280                Variable groupID 
    297                 Variable inc = 1 
     281                Variable inc=1,ii=0,isMultiData=0 
    298282                String entryUnformatted = "/sasentry%d/" 
     283                String dataUnformatted = "sasdata%d/" 
     284                String addDigit = "%d" 
    299285                String entryBase 
     286                String dataBase = "sasdata/" 
    300287                sPrintf entryBase,entryUnformatted,inc 
    301288                // Open first group 
    302                 HDF5OpenGroup /Z fileID, entryBase + "sasdata/", groupID 
     289                HDF5OpenGroup /Z fileID, entryBase + dataBase, groupID 
     290                If (groupID == 0) 
     291                        sPrintF dataBase,dataUnformatted,0 
     292                        HDF5OpenGroup /z fileID, entryBase + dataBase, groupID 
     293                        isMultiData = 1 
     294                        sPrintF baseStr,baseformat,0 
     295                EndIf 
     296                 
     297                String I_dataStore,Q_dataStore,dQ_dataStore,dQl_dataStore,dQw_dataStore,dI_dataStore 
     298                 
     299                // Multiple SASentry groups 
    303300                do 
    304                         // Load in data 
    305                         HDF5LoadData /O/Z/N=$I_dataStore fileID, entryBase + "sasdata/I" 
    306                         HDF5LoadData /O/Z/N=$Q_dataStore fileID, entryBase + "sasdata/Q" 
    307                         HDF5LoadData /O/Z/N=$dQ_dataStore fileID, entryBase + "sasdata/dQ" 
    308                         HDF5LoadData /O/Z/N=$dQl_dataStore fileID, entryBase + "sasdata/dQl" 
    309                         HDF5LoadData /O/Z/N=$dQw_dataStore fileID, entryBase + "sasdata/dQw" 
    310                         HDF5LoadData /O/Z/N=$dI_dataStore fileID, entryBase + "sasdata/Idev" 
    311                         // Load in Meta Data 
    312                         LoadMetaData(fileID,loadDir,entryBase) 
     301                        //go back to the root folder and clean up before leaving 
     302                        // Multiple SASdata groups 
     303                        do 
     304                                if (isMultiData == 1) 
     305                                        sPrintF baseStr,baseformat,ii 
     306                                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 
     319                                // 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" 
     326                                if (isMultiData == 1) 
     327                                        sprintf dataBase,dataUnformatted,ii 
     328                                        // Open next group to see if it exists 
     329                                        HDF5OpenGroup /Z fileID, entryBase + dataBase, groupID 
     330                                else 
     331                                        groupID = 0 
     332                                endIf 
     333                                ii += 1 
     334                                // Load in Meta Data 
     335                                LoadMetaData(fileID,loadDir,entryBase) 
     336                        while (groupID != 0) 
     337                        inc += 1 
     338                        If (isMultiData == 1) 
     339                                sprintf dataBase,dataUnformatted,ii 
     340                        endIf 
    313341                        // Open next group to see if it exists 
    314                         inc += 1 
    315                         sPrintf entryBase,entryUnformatted,inc 
    316                         HDF5OpenGroup /Z fileID, entryBase + "sasdata/", groupID 
     342                sPrintf entryBase,entryUnformatted,inc 
     343                        HDF5OpenGroup /Z fileID, entryBase + dataBase, groupID 
    317344                while(groupID != 0) 
    318345                 
     
    402429         
    403430        // SASdetector 
     431         
     432        // 
     433        // TODO: Check for VSANS multi-detector 
     434        // 
     435         
    404436        String detectorParent = instrParent + "sasdetector/" 
    405437        HDF5OpenGroup /Z fileID, detectorParent, groupID 
  • sans/Dev/branches/nxcansas_writer/NCNR_User_Procedures/Reduction/SANS/NSORT.ipf

    r983 r1190  
    201201 
    202202        NVAR useXMLOutput = root:Packages:NIST:gXML_Write 
     203        NVAR useNXcanSASOutput = root:Packages:NIST:gNXcanSAS_Write 
     204         
     205        // 
     206        // TODO: create WriteNSORTedNXcanSASFile 
     207        // 
    203208 
    204209        if (useXMLOutput == 1) 
Note: See TracChangeset for help on using the changeset viewer.