Ignore:
Timestamp:
Apr 25, 2017 2:55:34 PM (6 years ago)
Author:
srkline
Message:

re-wrote raw data reader for significant speed boost (mostly by skipping the read of DAS_logs)

added centroid calculation to the Marquee

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_HDF5_RW_Utils.ipf

    r1031 r1034  
    416416                base_name = "" 
    417417        else 
    418                 base_name = StringFromList(0,FileName,".") 
    419         endif 
    420          
    421         HDF5LoadGroup/Z/L=7/O/R/T=$base_name  :, fileID, hdf5Path               //      recursive 
     418                base_name = StringFromList(0,FileName,".")              // just the first part of the name, no .nxs.ngv 
     419        endif 
     420 
     421 
     422// TODO 
     423// -- write a separate function or add a flag to this one that will read everything, including the DAS_logs 
     424//   -- the DAS_logs are not needed for reduction, and slow everything down a LOT (0.6 s per file vs 0.04 s per file!) 
     425 
     426// 
     427//// loads everything with one line      (includes /DAS_logs) 
     428//      HDF5LoadGroup/Z/L=7/O/R/T=$base_name  :, fileID, hdf5Path               //      recursive 
     429// 
     430 
     431 
     432 
     433//// to skip DAS_logs. I need to generate all of the data folders myself 
     434//// must be an easier way to handle the different path syntax, but at least this works 
     435 
     436        String curDF = GetDataFolder(1) 
     437 
     438// load root/entry 
     439        hdf5path = "/entry" 
     440//      NewDataFolder/O $(curDF) 
     441        if(isFolder == -1) 
     442                NewDataFolder/O $(curDF+base_name) 
     443        endif 
     444        if(isFolder == -1) 
     445                NewDataFolder/O/S $(curDF+base_name+":entry") 
     446        else 
     447                // base_name is "", so get rid of the leading ":" on ":entry" 
     448                NewDataFolder/O/S $(curDF+base_name+"entry") 
     449        endif 
     450        HDF5LoadGroup/Z/L=7/O :, fileID, hdf5Path               //      NOT recursive 
     451 
     452 
     453        if(isFolder == -1) 
     454                NewDataFolder/O/S $(curDF+base_name+":entry:control") 
     455        else 
     456                NewDataFolder/O/S $(curDF+base_name+"entry:control") 
     457        endif 
     458        hdf5path = "/entry/control" 
     459        HDF5LoadGroup/Z/L=7/O/R  :, fileID, hdf5Path            //      YES recursive 
     460 
     461        if(isFolder == -1) 
     462                NewDataFolder/O/S $(curDF+base_name+":entry:instrument") 
     463        else 
     464                NewDataFolder/O/S $(curDF+base_name+"entry:instrument") 
     465        endif 
     466        hdf5path = "/entry/instrument" 
     467        HDF5LoadGroup/Z/L=7/O/R  :, fileID, hdf5Path            //      YES recursive 
     468 
     469        if(isFolder == -1) 
     470                NewDataFolder/O/S $(curDF+base_name+":entry:reduction") 
     471        else 
     472                NewDataFolder/O/S $(curDF+base_name+"entry:reduction") 
     473        endif    
     474        hdf5path = "/entry/reduction" 
     475        HDF5LoadGroup/Z/L=7/O/R  :, fileID, hdf5Path            //      YES recursive 
     476 
     477        if(isFolder == -1) 
     478                NewDataFolder/O/S $(curDF+base_name+":entry:sample") 
     479        else 
     480                NewDataFolder/O/S $(curDF+base_name+"entry:sample") 
     481        endif    
     482        hdf5path = "/entry/sample" 
     483        HDF5LoadGroup/Z/L=7/O/R  :, fileID, hdf5Path            //      YES recursive 
     484 
     485        if(isFolder == -1) 
     486                NewDataFolder/O/S $(curDF+base_name+":entry:user") 
     487        else 
     488                NewDataFolder/O/S $(curDF+base_name+"entry:user") 
     489        endif    
     490        hdf5path = "/entry/user" 
     491        HDF5LoadGroup/Z/L=7/O/R  :, fileID, hdf5Path            //      YES recursive 
     492 
     493 
     494         
    422495        if ( V_Flag != 0 ) 
    423496                Print fileName + ": could not open as HDF5 file" 
     
    429502         
    430503//s_toc() 
     504 
     505        SetDataFolder root: 
     506         
    431507        return(0) 
    432508end       
Note: See TracChangeset for help on using the changeset viewer.