Ignore:
Timestamp:
Jan 29, 2016 3:59:18 PM (7 years ago)
Author:
srkline
Message:

Folder utilities to be able to properly move data between work folders (Duplicate w/ recursion)

Utilities to load in raw data from the main panel

Crude display of the raw data (fake, wrong dimensions) in a tabbed data panel

File:
1 edited

Legend:

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

    r972 r976  
    2424 
    2525// passing null file string presents a dialog 
    26 Macro Read_HDF5_Raw_No_Attributes() 
    27         V_LoadHDF5Data("") 
     26Proc Read_HDF5_Raw_No_Attributes() 
     27        V_LoadHDF5Data("","RAW") 
    2828End 
    2929 
     
    3131//  x- move the initializtion of the raw data folder to be in the as-yet unwritten initialization routine for 
    3232// reduction. be sure that it's duplicated in the VCALC initialization too. 
    33 // 
    34 Function V_LoadHDF5Data(file) 
    35         String file 
    36  
    37         SetDataFolder root:Packages:NIST:VSANS:RawVSANS 
     33// -- as needed, get rid of the FAKE redimension of the data from 3D->2D and from 128x128 to something else for VSANS 
     34//    This is a fake since I don't have anything close to correct fake data yet. (1/29/16) 
     35// 
     36Function V_LoadHDF5Data(file,folder) 
     37        String file,folder 
     38 
     39        String base_name 
     40        SetDataFolder $("root:Packages:NIST:VSANS:"+folder) 
    3841//      SetDataFolder root: 
    39         Variable err= V_LoadHDF5_NoAtt(file)    // reads into current folder 
     42        if(cmpstr(folder,"RAW")==0) 
     43                base_name="entry" 
     44        else 
     45                base_name="" 
     46        endif 
     47         
     48        Variable err= V_LoadHDF5_NoAtt(file,base_name)  // reads into current folder 
     49         
     50        // if RAW data, then generate the errors and linear data copy 
     51        // do this 9x 
     52        string tmpStr = "root:Packages:NIST:VSANS:RAW:entry:entry:instrument:"  
     53        if(cmpstr(folder,"RAW")==0) 
     54                V_MakeDataError(tmpStr+"detector_B") 
     55                V_MakeDataError(tmpStr+"detector_MB") 
     56                V_MakeDataError(tmpStr+"detector_MT") 
     57                V_MakeDataError(tmpStr+"detector_ML") 
     58                V_MakeDataError(tmpStr+"detector_MR") 
     59                V_MakeDataError(tmpStr+"detector_FB") 
     60                V_MakeDataError(tmpStr+"detector_FT") 
     61                V_MakeDataError(tmpStr+"detector_FL") 
     62                V_MakeDataError(tmpStr+"detector_FR") 
     63 
     64// TODO -- once I get "real" data, get rid of this call to force the data to be proper dimensions. 
     65                V_RedimFakeData() 
     66                 
     67/// END FAKE DATA CORRECTIONS            
     68                 
     69        endif 
     70         
    4071        SetDataFolder root: 
    4172        return(err) 
     73End 
     74 
     75// 
     76// TODO -- this is all FAKED since all the data arrays are (1,128,128) 
     77// I'm intentionally using the wrong number of pixels so I'm more likely to go back and get rid of this later. 
     78// 
     79// the SetScale parts may be useful later. 
     80// 
     81Function V_RedimFakeData() 
     82         
     83                SetDataFolder root:Packages:NIST:VSANS:RAW:entry:entry:instrument:detector_B 
     84                Wave det_B=data 
     85                Redimension/N=(300,300)/E=1 det_B 
     86                 
     87                Variable ctr=20,npix=100 
     88                SetDataFolder root:Packages:NIST:VSANS:RAW:entry:entry:instrument:detector_MT 
     89                Wave det_MT=data 
     90                Redimension/N=(npix,48)/E=1 det_MT               
     91                SetScale/I x -npix/2,npix/2,"",det_MT 
     92                SetScale/I y ctr,ctr+48,"",det_MT 
     93 
     94                SetDataFolder root:Packages:NIST:VSANS:RAW:entry:entry:instrument:detector_MB 
     95                Wave det_MB=data 
     96                Redimension/N=(npix,48)/E=1 det_MB               
     97                SetScale/I x -npix/2,npix/2,"",det_MB 
     98                SetScale/I y -ctr,-ctr-48,"",det_MB 
     99                 
     100                ctr=30 
     101                SetDataFolder root:Packages:NIST:VSANS:RAW:entry:entry:instrument:detector_ML 
     102                Wave det_ML=data 
     103                Redimension/N=(48,npix)/E=1 det_ML               
     104                SetScale/I x -ctr-48,-ctr,"",det_ML 
     105                SetScale/I y -npix/2,npix/2,"",det_ML 
     106                 
     107                SetDataFolder root:Packages:NIST:VSANS:RAW:entry:entry:instrument:detector_MR 
     108                Wave det_MR=data 
     109                Redimension/N=(48,npix)/E=1 det_MR               
     110                SetScale/I x ctr,ctr+48,"",det_MR 
     111                SetScale/I y -npix/2,npix/2,"",det_MR 
     112                 
     113                ctr=30 
     114                SetDataFolder root:Packages:NIST:VSANS:RAW:entry:entry:instrument:detector_FT 
     115                Wave det_FT=data 
     116                Redimension/N=(npix,48)/E=1 det_FT               
     117                SetScale/I x -npix/2,npix/2,"",det_FT 
     118                SetScale/I y ctr,ctr+48,"",det_FT 
     119 
     120                SetDataFolder root:Packages:NIST:VSANS:RAW:entry:entry:instrument:detector_FB 
     121                Wave det_FB=data 
     122                Redimension/N=(npix,48)/E=1 det_FB               
     123                SetScale/I x -npix/2,npix/2,"",det_FB 
     124                SetScale/I y -ctr,-ctr-48,"",det_FB 
     125                 
     126                SetDataFolder root:Packages:NIST:VSANS:RAW:entry:entry:instrument:detector_FL 
     127                Wave det_FL=data 
     128                Redimension/N=(48,npix)/E=1 det_FL               
     129                SetScale/I x -ctr-48,-ctr,"",det_FL 
     130                SetScale/I y -npix/2,npix/2,"",det_FL 
     131                 
     132                SetDataFolder root:Packages:NIST:VSANS:RAW:entry:entry:instrument:detector_FR 
     133                Wave det_FR=data 
     134                Redimension/N=(48,npix)/E=1 det_FR               
     135                SetScale/I x ctr,ctr+48,"",det_FR 
     136                SetScale/I y -npix/2,npix/2,"",det_FR 
     137 
     138 
     139        return(0) 
    42140End 
    43141 
     
    51149// -- get rid of bits leftover here that I don't need 
    52150// -- be sure I'm using all of the correct flags in the HDF5LoadGroup operation 
    53 // 
    54 Function V_LoadHDF5_NoAtt(fileName, [hdf5Path]) 
    55         String fileName, hdf5Path 
    56         if ( ParamIsDefault(hdf5Path) ) 
    57                 hdf5Path = "/" 
    58         endif 
    59  
     151// -- settle on how the base_name is to be used. "entry" for the RAW, fileName for the "rawVSANS"? 
     152// 
     153// passing in "" for base_name will take the name from the file name as selected 
     154// 
     155Function V_LoadHDF5_NoAtt(fileName,base_name) 
     156        String fileName, base_name 
     157         
     158//      if ( ParamIsDefault(hdf5Path) ) 
     159//              hdf5Path = "/" 
     160//      endif 
     161 
     162        String hdf5path = "/"           //always read from the top 
    60163        String status = "" 
    61164 
     
    78181         
    79182        SVAR tmpStr=root:file_name 
    80         fileName=tmpStr         //SRK - in case the file was chosen from a dialog 
     183        fileName=tmpStr         //SRK - in case the file was chosen from a dialog, I'll need access to the name later 
    81184         
    82185        //   read the data (too bad that HDF5LoadGroup does not read the attributes) 
    83         String base_name = StringFromList(0,FileName,".") 
     186        if(cmpstr(base_name,"") == 0) 
     187                base_name = StringFromList(0,FileName,".") 
     188        endif 
     189        //base_name = "entry" 
     190         
    84191        HDF5LoadGroup/Z/L=7/O/R/T=$base_name  :, fileID, hdf5Path               //      recursive 
    85192        if ( V_Flag != 0 ) 
     
    118225        if(!valExists) 
    119226                //then read in the file 
    120                 V_LoadHDF5_NoAtt(fname) 
     227                V_LoadHDF5_NoAtt(fname,"") 
    121228        endif 
    122229 
     
    155262        if(!valExists) 
    156263                //then read in the file 
    157                 V_LoadHDF5_NoAtt(fname) 
     264                V_LoadHDF5_NoAtt(fname,"") 
    158265        endif 
    159266 
     
    189296        if(!valExists) 
    190297                //then read in the file 
    191                 V_LoadHDF5_NoAtt(fname) 
     298                V_LoadHDF5_NoAtt(fname,"") 
    192299        endif 
    193300 
     
    249356        if(!valExists) 
    250357                //then read in the file 
    251                 V_LoadHDF5_NoAtt(fname) 
     358                V_LoadHDF5_NoAtt(fname,"") 
    252359        endif 
    253360 
Note: See TracChangeset for help on using the changeset viewer.