Ignore:
Timestamp:
Aug 12, 2015 12:04:50 PM (7 years ago)
Author:
srkline
Message:

more work with SANS and VSANS Nexus files, still trying to organize the r/w routines for just the basic testing of the first pass of NICE-generated files. Ditched the idea of generating the files from Igor, since DAS_log is not included. Now the plan is to start from a NICE/Nexus template. All still EXTREMELY fluid at this point.

File:
1 edited

Legend:

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

    r959 r960  
    11#pragma rtGlobals=1             // Use modern global access method. 
     2 
     3 
     4// AUG 2015 ************** 
     5//////////// 
     6// this needs to be connected to the "new" Nexus file 
     7// remove the VSANS references, match to SASCALC, write proper documentation, etc. 
     8/////////// 
     9 
     10 
    211 
    312 
     
    817// 
    918 
    10  
    11  
    12  
    13  
    14 // 
    15 // lays out the tree and fills with dummy values 
    16 // 
    17 Proc H_Setup_SANS_Structure() 
    18          
    19         Variable n=100 
    20          
    21 NewDataFolder/O/S root:SANS_file         
    22         Make/O/T/N=1    file_name       = "SANSTest.h5" 
    23         Make/O/T/N=1    file_time       = "2015-02-28T08:15:30-5:00" 
    24         Make/O/T/N=1    facility        = "NCNR" 
    25         Make/O/T/N=1    NeXus_version   = "Nexus 0.0" 
    26         Make/O/T/N=1    hdf_version     = "hdf5.x" 
    27         Make/O/T/N=1    file_history    = "history log" 
    28         NewDataFolder/O/S  root:SANS_file:entry1                 
    29                 Make/O/T/N=1    title   = "title of entry1" 
    30                 Make/O/D/N=1    experiment_identifier   = 684636 
    31                 Make/O/T/N=1    experiment_description  = "description of expt" 
    32                 Make/O/T/N=1    entry_identifier        = "S22-33" 
    33                 Make/O/T/N=1    definition      = "NXsas" 
    34                 Make/O/T/N=1    start_time      = "2015-02-28T08:15:30-5:00" 
    35                 Make/O/T/N=1    end_time        = "2015-02-28T08:15:30-5:00" 
    36                 Make/O/D/N=1    duration        = 300 
    37                 Make/O/D/N=1    collection_time = 300 
    38                 Make/O/T/N=1    run_cycle       = "S22-23" 
    39                 Make/O/T/N=1    data_directory  = "[NG7SANS41]" 
    40                 Make/O/T/N=1    program_name    = "runPoint={stuff}" 
    41                 NewDataFolder/O/S  root:SANS_file:entry1:user            
    42                         Make/O/T/N=1    name    = "Dr. Pi" 
    43                         Make/O/T/N=1    role    = "evil scientist" 
    44                         Make/O/T/N=1    affiliation     = "NIST" 
    45                         Make/O/T/N=1    address = "100 Bureau Drive" 
    46                         Make/O/T/N=1    telephoneNumber = "301-999-9999" 
    47                         Make/O/T/N=1    faxNumber       = "301-999-9999" 
    48                         Make/O/T/N=1    email   = "sans@nist" 
    49                         Make/O/I/N=1    facility_user_id        = 6937596 
    50                 NewDataFolder/O/S  root:SANS_file:entry1:control                 
    51                         Make/O/T/N=1    mode    = "timer" 
    52                         Make/O/D/N=1    preset  = 555 
    53                         Make/O/D/N=1    integral        = 555 
    54                         Make/O/D/N=1    monitor_counts  = 666 
    55                         Make/O/D/N=1    monitor_preset  = 1e8 
    56                         Make/O/D/N=1    detector_counts = 100111222 
    57                         Make/O/D/N=1    detector_preset = 1e5 
    58 //                      Make/O/T/N=1    type    = "monitor type" 
    59 //                      Make/O/D/N=1    efficiency      = 0.01 
    60 //                      Make/O/D/N=1    sampled_fraction        = 1 
    61                         Make/O/D/N=1    count_start     = 1 
    62                         Make/O/D/N=1    count_end       = 1 
    63                         Make/O/D/N=1    count_time      = 1 
    64                         Make/O/D/N=1    count_time_preset       = 1 
    65 //              NewDataFolder/O/S  root:SANS_file:entry1:program_name            
    66 //                      Make/O/T/N=1    data    = "program data" 
    67 //                      Make/O/T/N=1    description     = "acquisition" 
    68 //                      Make/O/T/N=1    file_name       = "NICE" 
    69 //                      Make/O/T/N=1    type    = "client" 
    70                 NewDataFolder/O/S  root:SANS_file:entry1:sample          
    71                         Make/O/T/N=1    description     = "My Sample" 
    72                         Make/O/D/N=1    group_id        = 12345 
    73 //                      Make/O/T/N=1    chemical_formula        = "C8H10N4O2" 
    74                         NewDataFolder/O/S  root:SANS_file:entry1:sample:temperature_1            
    75                                 Make/O/T/N=1    name    = "Sample temperature" 
    76                                 Make/O/T/N=1    attached_to     = "block" 
    77                                 Make/O/T/N=1    measurement     = "temperature" 
    78                                 NewDataFolder/O/S  root:SANS_file:entry1:sample:temperature_1:value_log          
    79                                         Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00" 
    80                                         Make/O/D/N=(n)  nx_time = p 
    81                                         Make/O/D/N=(n)  value   = 2*p 
    82                         NewDataFolder/O/S  root:SANS_file:entry1:sample:temperature_2            
    83                                 Make/O/T/N=1    name    = "Sample temperature" 
    84                                 Make/O/T/N=1    attached_to     = "block" 
    85                                 Make/O/T/N=1    measurement     = "temperature" 
    86                                 NewDataFolder/O/S  root:SANS_file:entry1:sample:temperature_2:value_log          
    87                                         Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00" 
    88                                         Make/O/D/N=(n)  nx_time = p 
    89                                         Make/O/D/N=(n)  value   = 3*p 
    90                         NewDataFolder/O/S  root:SANS_file:entry1:sample:electric_field           
    91                                 Make/O/T/N=1    name    = "electric meter" 
    92                                 Make/O/T/N=1    attached_to     = "sample" 
    93                                 Make/O/T/N=1    measurement     = "voltage" 
    94                                 NewDataFolder/O/S  root:SANS_file:entry1:sample:electric_field:value_log                 
    95                                         Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00" 
    96                                         Make/O/D/N=(n)  nx_time = 2*p 
    97                                         Make/O/D/N=(n)  value   = sin(p/10) 
    98                         NewDataFolder/O/S  root:SANS_file:entry1:sample:shear_field              
    99                                 Make/O/T/N=1    name    = "rheometer" 
    100                                 Make/O/T/N=1    attached_to     = "sample" 
    101                                 Make/O/T/N=1    measurement     = "stress" 
    102                                 NewDataFolder/O/S  root:SANS_file:entry1:sample:shear_field:value_log            
    103                                         Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00" 
    104                                         Make/O/D/N=(n)  nx_time = p 
    105                                         Make/O/D/N=(n)  value   = cos(p/5) 
    106                         NewDataFolder/O/S  root:SANS_file:entry1:sample:pressure                 
    107                                 Make/O/T/N=1    name    = "Sample pressure" 
    108                                 Make/O/T/N=1    attached_to     = "pressure cell" 
    109                                 Make/O/T/N=1    measurement     = "pressure" 
    110                                 NewDataFolder/O/S  root:SANS_file:entry1:sample:pressure:value_log               
    111                                         Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00" 
    112                                         Make/O/D/N=(n)  nx_time = p 
    113                                         Make/O/D/N=(n)  value   = p/2 
    114                         NewDataFolder/O/S  root:SANS_file:entry1:sample:magnetic_field           
    115                                 Make/O/T/N=1    name    = "magnetic field (direction)" 
    116                                 Make/O/T/N=1    attached_to     = "cryostat" 
    117                                 Make/O/T/N=1    measurement     = "magnetic field" 
    118                                 NewDataFolder/O/S  root:SANS_file:entry1:sample:magnetic_field:value_log                 
    119                                         Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00" 
    120                                         Make/O/D/N=(n)  nx_time = p 
    121                                         Make/O/D/N=(n)  value   = 10*p 
    122                         SetDataFolder  root:SANS_file:entry1:sample              
    123                         Make/O/D/N=1    changer_position        = 5 
    124                         Make/O/T/N=1    sample_holder_description       = "10CB" 
    125 //                      Make/O/D/N=1    mass    = 0.3 
    126 //                      Make/O/D/N=1    density = 1.02 
    127 //                      Make/O/D/N=1    molecular_weight        = 194.19 
    128 //                      Make/O/T/N=1    description     = "My Sample" 
    129 //                      Make/O/T/N=1    preparation_date        = "2015-02-28T08:15:30-5:00" 
    130 //                      Make/O/D/N=1    volume_fraction = 0.2 
    131 //                      Make/O/D/N=1    scattering_length_density       = 6.35e-6 
    132                         Make/O/D/N=1    thickness       = 0.1 
    133                         Make/O/D/N=1    rotation_angle  = 30 
    134                         Make/O/D/N=1    transmission    = 0.888 
    135                         Make/O/D/N=1    transmission_error      = 0.011 
    136 //                      Make/O/D/N=1    xs_incoh        = 5.5 
    137 //                      Make/O/D/N=1    xs_coh  = 22.2 
    138 //                      Make/O/D/N=1    xs_absorb       = 3.1 
    139                 NewDataFolder/O/S  root:SANS_file:entry1:instrument              
    140 //                      Make/O/T/N=1    location        = "NCNR" 
    141                         Make/O/T/N=1    name    = "NGB30mSANS" 
    142                         Make/O/T/N=1    type    = "30 m SANS" 
    143                         Make/O/T/N=1    local_contact   = "Steve Kline" 
    144                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:source               
    145                                 Make/O/T/N=1    name    = "NCNR" 
    146                                 Make/O/T/N=1    type    = "Reactor Neutron Source" 
    147                                 Make/O/T/N=1    probe   = "neutron" 
    148                                 Make/O/D/N=1    power   = 20 
    149                         NewDataFolder/O/S root:SANS_file:entry1:instrument:beam_monitor          
    150                                 Make/O/D/N=1    data    = 1234567 
    151                                 Make/O/T/N=1    type    = "monitor" 
    152                                 Make/O/D/N=1    efficiency      = 0.01 
    153                                 Make/O/D/N=1    nx_distance     = 16 
    154                                 Make/O/D/N=1    saved_count     = 1e8 
    155                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:monochromator                
    156                                 Make/O/D/N=1    wavelength      = 6 
    157                                 Make/O/D/N=1    wavelength_spread       = 0.15 
    158                                 Make/O/T/N=1    type    = "VS" 
    159                                 NewDataFolder/O/S  root:SANS_file:entry1:instrument:monochromator:velocity_selector              
    160                                         Make/O/D/N=1    rotation_speed  = 5100 
    161                                         Make/O/D/N=1    wavelength      = 6 
    162                                         Make/O/D/N=1    wavelength_spread       = 0.15 
    163                                         Make/O/D/N=1    vs_tilt = 3 
    164                                         Make/O/D/N=1    nx_distance     = 18.8 
    165                                                 //table  
    166                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:polarizer            
    167                                 Make/O/T/N=1    type    = "supermirror" 
    168                                 Make/O/T/N=1    composition     = "multilayer" 
    169                                 Make/O/D/N=1    efficiency      = 0.95 
    170                                 Make/O/T/N=1    status  = "in" 
    171                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:flipper              
    172                                 Make/O/T/N=1    status  = "on" 
    173                                 Make/O/D/N=1    driving_current = 42 
    174                                 Make/O/T/N=1    waveform        = "sine" 
    175                                 Make/O/D/N=1    frequency       = 400 
    176                                 Make/O/D/N=1    transmitted_power       = 0.99 
    177                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:polarizer_analyzer           
    178                                 Make/O/T/N=1    status  = "down" 
    179                                 Make/O/D/N=1    guide_field_current_1   = 33 
    180                                 Make/O/D/N=1    guide_field_current_2   = 32 
    181                                 Make/O/D/N=1    solenoid_current        = 21 
    182                                 Make/O/D/N=1    cell_index      = 1 
    183                                 Make/O/T/N=(5)  cell_names      = {"Burgundy","Olaf","Jim","Bob","Joe"} 
    184                                 Make/O/D/N=(5,2)        cell_parameters = 1 
    185                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:chopper              
    186                                 Make/O/T/N=1    type    = "single" 
    187                                 Make/O/T/N=1    status  = "in" 
    188                                 Make/O/D/N=1    rotation_speed  = 12000 
    189                                 Make/O/D/N=1    distance_from_source    = 400 
    190                                 Make/O/D/N=1    distance_from_sample    = 1500 
    191                                 Make/O/D/N=1    slits   = 2 
    192                                 Make/O/D/N=1    angular_opening = 15 
    193                                 Make/O/D/N=1    duty_cycle      = 0.25 
    194                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:attenuator           
    195                                 Make/O/D/N=1    nx_distance     = 1500 
    196                                 Make/O/T/N=1    type    = "PMMA" 
    197                                 Make/O/D/N=1    thickness       = 0 
    198                                 Make/O/D/N=1    attenuator_transmission = 1 
    199                                 Make/O/T/N=1    status  = "in" 
    200                                 Make/O/D/N=1    atten_number    = 0 
    201                                 Make/O/D/N=(10,10)      index   = 1 
    202                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:source_aperture              
    203 //                              Make/O/T/N=1    material        = "Gd" 
    204                                 Make/O/T/N=1    description     = "source aperture" 
    205                                 Make/O/D/N=1    diameter        = 1.27 
    206                                 Make/O/D/N=1    nx_distance     = 13.0 
    207                                 NewDataFolder/O/S  root:SANS_file:entry1:instrument:source_aperture:shape                
    208                                         Make/O/D/N=(1,2)        size    = 1.27 
    209                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:sample_aperture              
    210 //                              Make/O/T/N=1    material        = "Gd" 
    211                                 Make/O/T/N=1    description     = "sample aperture" 
    212                                 Make/O/D/N=1    diameter        = 1.27 
    213                                 Make/O/D/N=1    nx_distance     = 10 
    214                                 NewDataFolder/O/S  root:SANS_file:entry1:instrument:sample_aperture:shape                
    215                                         Make/O/D/N=(1,2)        size    = 1.27 
    216                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:collimator           
    217                                 NewDataFolder/O/S root:SANS_file:entry1:instrument:collimator:geometry           
    218                                         NewDataFolder/O/S root:SANS_file:entry1:instrument:collimator:geometry:shape             
    219                                                 Make/O/T/N=1    shape   = "box" 
    220                                                 Make/O/D/N=1    size    = 11 
    221                                 Make/O/I/N=1    nx_NumGuides    = 1 
    222                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:lenses               
    223                                 Make/O/T/N=1    status  = "in" 
    224                                 Make/O/T/N=1    lens_geometry   = "concave_lens" 
    225                                 Make/O/T/N=1    focus_type      = "point" 
    226                                 Make/O/I/N=1    number_of_lenses        = 28 
    227                                 Make/O/I/N=1    number_of_prisms        = 7 
    228                                 Make/O/D/N=1    curvature       = 1 
    229                                 Make/O/D/N=1    lens_distance   = 123 
    230                                 Make/O/D/N=1    prism_distance  = 123 
    231                                 Make/O/T/N=1    lens_material   = "MgF2" 
    232                                 Make/O/T/N=1    prism_material  = "MgF2" 
    233                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:sample_table                 
    234                                 Make/O/T/N=1    location        = "chamber" 
    235                                 Make/O/D/N=1    offset_distance = 0 
    236                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:beam_stop            
    237                                 Make/O/T/N=1    description     = "circular" 
    238                                 Make/O/D/N=1    nx_distance     = 12.5 
    239                                 Make/O/D/N=1    size    = 7.62 
    240                                 Make/O/T/N=1    status  = "out" 
    241                                 Make/O/D/N=1    xPos    = 66.4 
    242                                 Make/O/D/N=1    yPos    = 64.4 
    243                                 Make/O/D/N=1    x_motor_position        = 0.15 
    244                                 Make/O/D/N=1    y_motor_position        = 0.55 
    245                         NewDataFolder/O/S  root:SANS_file:entry1:instrument:detector             
    246                                 Make/O/I/N=(128,128)    data    = trunc(abs(gnoise(p+q))) 
    247 //                              Make/O/D/N=(128,128)    data_error      = 0.01*abs(gnoise(p+q)) 
    248                                 Make/O/D/N=1    nx_distance     = 13.1 
    249                                 Make/O/T/N=1    description     = "Ordela 2660N" 
    250                                 Make/O/T/N=1    settings        = "just right" 
    251                                 Make/O/D/N=1    dead_time       = 5e-6 
    252                                 Make/O/D/N=1    x_pixel_size    = 5.08 
    253                                 Make/O/D/N=1    y_pixel_size    = 5.08 
    254                                 Make/O/D/N=1    beam_center_x   = 65.55 
    255                                 Make/O/D/N=1    beam_center_y   = 62.33 
    256                                 Make/O/T/N=1    type    = "Ordela" 
    257 //                              Make/O/D/N=1    flatfield_applied       = 0 
    258 //                              Make/O/D/N=1    countrate_correction_applied    = 0 
    259                                 Make/O/D/N=(128,128)    pixel_mask      = 0 
    260                                 Make/O/I/N=1    integrated_count        = 100111222 
    261                                 Make/O/D/N=1    lateral_offset  = 20 
    262                                 Make/O/I/N=1    PixelNumX       = 128 
    263                                 Make/O/I/N=1    PixelNumY       = 128 
    264                                 Make/O/D/N=1    PixelFWHM       = 0.5 
    265                                         //calibration_method     
    266                                 Make/O/D/N=3    CALX    = {0.5,0.5,10000} 
    267                                 Make/O/D/N=3    CALY    = {0.5,0.5,10000} 
    268                                 Make/O/D/N=1    size    = 65 
    269                                 Make/O/T/N=1    event_file_name ="something.hst" 
    270                 NewDataFolder/O/S  root:SANS_file:entry1:data            
    271                         Make/O/I/N=(128,128)    data    = trunc(abs(gnoise(p+q))) 
    272 //                      Make/O/D/N=(128,128)    error   = 0.01*abs(gnoise(p+q)) 
    273                         Make/O/D/N=2    variables       = {128,128} 
    274                         Make/O/I/N=(128,128)    data_image      = p 
    275                 NewDataFolder/O/S  root:SANS_file:entry1:reduction               
    276                         Make/O/T/N=1    intent  = "SCATTER" 
    277                         Make/O/T/N=1    transmission_file_name  = "SANSFile_TRN.h5" 
    278                         Make/O/T/N=1    empty_beam_file_name    = "SANSFile_EB.h5" 
    279                         Make/O/T/N=1    background_file_name    = "SANSFile_BKG.h5" 
    280                         Make/O/T/N=1    empty_file_name = "SANSFile_EMP.h5" 
    281                         Make/O/T/N=1    sensitivity_file_name   = "SANSFile_DIV.h5" 
    282                         Make/O/T/N=1    mask_file_name  = "SANSFile_MASK.h5" 
    283                         Make/O/T/N=1    sans_log_file_name      = "SANSFile_log.txt" 
    284                         Make/O/D/N=1    whole_trans     = 0.888 
    285                         Make/O/D/N=1    whole_trans_error       = 0.008 
    286                         Make/O/D/N=1    box_count       = 23232 
    287                         Make/O/D/N=1    box_count_error = 22 
    288                         Make/O/I/N=4    box_coordinates = {50,80,45,75} 
    289                         Make/O/T/N=1    comments        = "extra data comments" 
    290                         Make/O/D/N=4    absolute_scaling        = {1,1,1e5,1} 
    291                         NewDataFolder/O/S  root:SANS_file:entry1:reduction:pol_sans              
    292                                 Make/O/T/N=1    pol_sans_purpose        = "name from the list" 
    293                                 Make/O/T/N=1    cell_name       = "Burgundy" 
    294                                 Make/O/D/N=(5)  cell_parameters = {1,2,3,4,5} 
    295                                                  
    296  
    297         NewDataFolder/O/S  root:SANS_file:DAS_Logs               
    298                         //...multiple entries and levels... to add       
    299  
    300         SetDataFolder root: 
    301          
    302 End 
    303  
    304  
    305  
    306  
    307 Proc H_Fill_SANS_Attributes() 
    308  
    309 SetDataFolder  root:SANS_file            
    310         Make/O/N=0 Igor___folder_attributes      
    311         Note/K Igor___folder_attributes, "producer=IgorPro\rNX_class=NXroot" 
    312         //      file_name                
    313         //      file_time                
    314         //      facility                 
    315         //      NeXus_version            
    316         //      hdf_version              
    317         //      file_history             
    318         SetDataFolder  root:SANS_file:entry1             
    319                 Make/O/N=0 Igor___folder_attributes      
    320                 Note/K Igor___folder_attributes, "NX_class=NXentry" 
    321                 //      title            
    322                 //      experiment_identifier            
    323                 //      experiment_description           
    324                 //      entry_identifier                 
    325                 //      definition               
    326                 //      start_time               
    327                 //      end_time                 
    328                 //      duration                 
    329                 Note/K duration, "units=s" 
    330                 //      collection_time          
    331                 Note/K collection_time, "units=s" 
    332                 //      run_cycle                
    333                 //      data_directory           
    334                 //      program_name             
    335                 SetDataFolder  root:SANS_file:entry1:user                
    336                         Make/O/N=0 Igor___folder_attributes      
    337                         Note/K Igor___folder_attributes, "NX_class=NXuser" 
    338                         //      name             
    339                         //      role             
    340                         //      affiliation              
    341                         //      address          
    342                         //      telephoneNumber          
    343                         //      faxNumber                
    344                         //      email            
    345                         //      facility_user_id                 
    346                 SetDataFolder  root:SANS_file:entry1:control             
    347                         Make/O/N=0 Igor___folder_attributes      
    348                         Note/K Igor___folder_attributes, "NX_class=NXmonitor" 
    349                         //      mode             
    350                         //      preset           
    351                         //      integral                 
    352                         //      monitor_counts           
    353                         //      monitor_preset           
    354                         //      detector_counts          
    355                         //      detector_preset          
    356                         //      type             
    357                         //      efficiency               
    358                         //      sampled_fraction                 
    359                         //      count_start              
    360                         Note/K count_start, "units=s" 
    361                         //      count_end                
    362                         Note/K count_end, "units=s" 
    363                         //      count_time               
    364                         Note/K count_time, "units=s" 
    365                         //      count_time_preset                
    366                         Note/K count_time_preset, "units=s" 
    367 //              SetDataFolder  root:SANS_file:entry1:program_name                
    368 //                      Make/O/N=0 Igor___folder_attributes      
    369                         //      data             
    370                         //      description              
    371                         //      file_name                
    372                         //      type             
    373                 SetDataFolder  root:SANS_file:entry1:sample              
    374                         Make/O/N=0 Igor___folder_attributes      
    375                         Note/K Igor___folder_attributes, "NX_class=NXsample" 
    376                         //      description              
    377                         //      group_id                 
    378                         //      chemical_formula                 
    379                         SetDataFolder  root:SANS_file:entry1:sample:temperature_1                
    380                                 Make/O/N=0 Igor___folder_attributes      
    381                                 Note/K Igor___folder_attributes, "NX_class=NXsensor" 
    382                                 //      name             
    383                                 //      attached_to              
    384                                 //      measurement              
    385                                 SetDataFolder  root:SANS_file:entry1:sample:temperature_1:value_log              
    386                                         Make/O/N=0 Igor___folder_attributes      
    387                                         Note/K Igor___folder_attributes, "NX_class=NXlog" 
    388                                         //      start            
    389                                         //      nx_time          
    390                                         Note/K nx_time, "units=s" 
    391                                         //      value            
    392                                         Note/K value, "units=C" 
    393                         SetDataFolder  root:SANS_file:entry1:sample:temperature_2                
    394                                 Make/O/N=0 Igor___folder_attributes      
    395                                 Note/K Igor___folder_attributes, "NX_class=NXsensor" 
    396                                 //      name             
    397                                 //      attached_to              
    398                                 //      measurement              
    399                                 SetDataFolder  root:SANS_file:entry1:sample:temperature_2:value_log              
    400                                         Make/O/N=0 Igor___folder_attributes      
    401                                         Note/K Igor___folder_attributes, "NX_class=NXlog" 
    402                                         //      start            
    403                                         //      nx_time          
    404                                         Note/K nx_time, "units=s" 
    405                                         //      value            
    406                                         Note/K value, "units=C" 
    407                         SetDataFolder  root:SANS_file:entry1:sample:electric_field               
    408                                 Make/O/N=0 Igor___folder_attributes      
    409                                 Note/K Igor___folder_attributes, "NX_class=NXsensor" 
    410                                 //      name             
    411                                 //      attached_to              
    412                                 //      measurement              
    413                                 SetDataFolder  root:SANS_file:entry1:sample:electric_field:value_log             
    414                                         Make/O/N=0 Igor___folder_attributes      
    415                                         Note/K Igor___folder_attributes, "NX_class=NXlog" 
    416                                         //      start            
    417                                         //      nx_time          
    418                                         Note/K nx_time, "units=s" 
    419                                         //      value            
    420                                         Note/K value, "units=V" 
    421                         SetDataFolder  root:SANS_file:entry1:sample:shear_field          
    422                                 Make/O/N=0 Igor___folder_attributes      
    423                                 Note/K Igor___folder_attributes, "NX_class=NXsensor" 
    424                                 //      name             
    425                                 //      attached_to              
    426                                 //      measurement              
    427                                 SetDataFolder  root:SANS_file:entry1:sample:shear_field:value_log                
    428                                         Make/O/N=0 Igor___folder_attributes      
    429                                         Note/K Igor___folder_attributes, "NX_class=NXlog" 
    430                                         //      start            
    431                                         //      nx_time          
    432                                         Note/K nx_time, "units=s" 
    433                                         //      value            
    434                                         Note/K value, "units=Pa s" 
    435                         SetDataFolder  root:SANS_file:entry1:sample:pressure             
    436                                 Make/O/N=0 Igor___folder_attributes      
    437                                 Note/K Igor___folder_attributes, "NX_class=NXsensor" 
    438                                 //      name             
    439                                 //      attached_to              
    440                                 //      measurement              
    441                                 SetDataFolder  root:SANS_file:entry1:sample:pressure:value_log           
    442                                         Make/O/N=0 Igor___folder_attributes      
    443                                         Note/K Igor___folder_attributes, "NX_class=NXlog" 
    444                                         //      start            
    445                                         //      nx_time          
    446                                         Note/K nx_time, "units=s" 
    447                                         //      value            
    448                                         Note/K value, "units=psi" 
    449                         SetDataFolder  root:SANS_file:entry1:sample:magnetic_field               
    450                                 Make/O/N=0 Igor___folder_attributes      
    451                                 Note/K Igor___folder_attributes, "NX_class=NXsensor" 
    452                                 //      name             
    453                                 //      attached_to              
    454                                 //      measurement              
    455                                 SetDataFolder  root:SANS_file:entry1:sample:magnetic_field:value_log             
    456                                         Make/O/N=0 Igor___folder_attributes      
    457                                         Note/K Igor___folder_attributes, "NX_class=NXlog" 
    458                                         //      start            
    459                                         //      nx_time          
    460                                         Note/K nx_time, "units=s" 
    461                                         //      value            
    462                                         Note/K value, "units=T" 
    463                         SetDataFolder  root:SANS_file:entry1:sample                      
    464                         //      changer_position                 
    465                         //      sample_holder_description                
    466                         //      mass             
    467 //                      Note/K mass, "units=g" 
    468                         //      density          
    469 //                      Note/K density, "units=g ml-1" 
    470                         //      molecular_weight                 
    471 //                      Note/K molecular_weight, "units=g mol-1" 
    472                         //      description              
    473                         //      preparation_date                 
    474                         //      volume_fraction          
    475                         //      scattering_length_density                
    476 //                      Note/K scattering_length_density, "units=A-2" 
    477                         //      thickness                
    478                         Note/K thickness, "units=cm" 
    479                         //      rotation_angle           
    480                         Note/K rotation_angle, "units=degrees" 
    481                         //      transmission             
    482                         //      transmission_error               
    483                         //      xs_incoh                 
    484 //                      Note/K xs_incoh, "units=cm-1" 
    485                         //      xs_coh           
    486 //                      Note/K xs_coh, "units=cm-1" 
    487                         //      xs_absorb                
    488 //                      Note/K xs_absorb, "units=cm-1" 
    489                 SetDataFolder  root:SANS_file:entry1:instrument          
    490                         Make/O/N=0 Igor___folder_attributes      
    491                         Note/K Igor___folder_attributes, "NX_class=NXinstrument" 
    492                         //      location                 
    493                         //      name             
    494                         //      type             
    495                         //      local_contact            
    496                         SetDataFolder  root:SANS_file:entry1:instrument:source           
    497                                 Make/O/N=0 Igor___folder_attributes      
    498                                 Note/K Igor___folder_attributes, "NX_class=NXsource" 
    499                                 //      name             
    500                                 //      type             
    501                                 //      probe            
    502                                 //      power            
    503                                 Note/K power, "units=MW" 
    504                         SetDataFolder root:SANS_file:entry1:instrument:beam_monitor              
    505                                 Make/O/N=0 Igor___folder_attributes      
    506                                 Note/K Igor___folder_attributes, "NX_class=NXmonitor" 
    507                                 //      data             
    508                                 //      type             
    509                                 //      efficiency               
    510                                 //      nx_distance              
    511                                 Note/K nx_distance, "units=m" 
    512                                 //      saved_count              
    513                         SetDataFolder  root:SANS_file:entry1:instrument:monochromator            
    514                                 Make/O/N=0 Igor___folder_attributes      
    515                                 Note/K Igor___folder_attributes, "NX_class=NXmonochromator" 
    516                                 //      wavelength               
    517                                 Note/K wavelength, "units=A" 
    518                                 //      wavelength_spread                
    519                                 //      type             
    520                                 SetDataFolder  root:SANS_file:entry1:instrument:monochromator:velocity_selector          
    521                                         Make/O/N=0 Igor___folder_attributes      
    522                                         Note/K Igor___folder_attributes, "NX_class=NXvelocity_selector" 
    523                                         //      rotation_speed           
    524                                         Note/K rotation_speed, "units=RPM" 
    525                                         //      wavelength               
    526                                         Note/K wavelength, "units=A" 
    527                                         //      wavelength_spread                
    528                                         //      vs_tilt          
    529                                         Note/K vs_tilt, "units=degrees" 
    530                                         //      nx_distance              
    531                                         Note/K nx_distance, "units=m" 
    532                                                 //table          
    533                         SetDataFolder  root:SANS_file:entry1:instrument:polarizer                
    534                                 Make/O/N=0 Igor___folder_attributes      
    535                                 //      type             
    536                                 //      composition              
    537                                 //      efficiency               
    538                                 //      status           
    539                         SetDataFolder  root:SANS_file:entry1:instrument:flipper          
    540                                 Make/O/N=0 Igor___folder_attributes      
    541                                 //      status           
    542                                 //      driving_current          
    543                                 Note/K driving_current, "units=A" 
    544                                 //      waveform                 
    545                                 //      frequency                
    546                                 Note/K frequency, "units=Hz" 
    547                                 //      transmitted_power                
    548                         SetDataFolder  root:SANS_file:entry1:instrument:polarizer_analyzer               
    549                                 Make/O/N=0 Igor___folder_attributes      
    550                                 //      status           
    551                                 //      guide_field_current_1            
    552                                 Note/K guide_field_current_1, "units=A" 
    553                                 //      guide_field_current_2            
    554                                 Note/K guide_field_current_2, "units=A" 
    555                                 //      solenoid_current                 
    556                                 Note/K solenoid_current, "units=A" 
    557                                 //      cell_index               
    558                                 //      cell_names               
    559                                 //      cell_parameters          
    560                         SetDataFolder  root:SANS_file:entry1:instrument:chopper          
    561                                 Make/O/N=0 Igor___folder_attributes      
    562                                 Note/K Igor___folder_attributes, "NX_class=NXdisk_chopper" 
    563                                 //      type             
    564                                 //      status           
    565                                 //      rotation_speed           
    566                                 Note/K rotation_speed, "units=RPM" 
    567                                 //      distance_from_source             
    568                                 Note/K distance_from_source, "units=m" 
    569                                 //      distance_from_sample             
    570                                 Note/K distance_from_sample, "units=m" 
    571                                 //      slits            
    572                                 //      angular_opening          
    573                                 Note/K angular_opening, "units=degrees" 
    574                                 //      duty_cycle               
    575                         SetDataFolder  root:SANS_file:entry1:instrument:attenuator               
    576                                 Make/O/N=0 Igor___folder_attributes      
    577                                 Note/K Igor___folder_attributes, "NX_class=NXattenuator" 
    578                                 //      nx_distance              
    579                                 Note/K nx_distance, "units=m" 
    580                                 //      type             
    581                                 //      thickness                
    582                                 Note/K thickness, "units=cm" 
    583                                 //      attenuator_transmission          
    584                                 //      status           
    585                                 //      atten_number             
    586                                 //      index            
    587                         SetDataFolder  root:SANS_file:entry1:instrument:source_aperture          
    588                                 Make/O/N=0 Igor___folder_attributes      
    589                                 Note/K Igor___folder_attributes, "NX_class=NXaperture" 
    590                                 //      material                 
    591                                 //      description              
    592                                 //      diameter                 
    593                                 Note/K diameter, "units=cm" 
    594                                 //      nx_distance              
    595                                 Note/K nx_distance, "units=m" 
    596                                 SetDataFolder  root:SANS_file:entry1:instrument:source_aperture:shape            
    597                                         Make/O/N=0 Igor___folder_attributes      
    598                                         Note/K Igor___folder_attributes, "NX_class=NXshape" 
    599                                         //      size             
    600                                         Note/K size, "units=cm" 
    601                         SetDataFolder  root:SANS_file:entry1:instrument:sample_aperture          
    602                                 Make/O/N=0 Igor___folder_attributes      
    603                                 Note/K Igor___folder_attributes, "NX_class=NXaperture" 
    604                                 //      material                 
    605                                 //      description              
    606                                 //      diameter                 
    607                                 Note/K diameter, "units=cm" 
    608                                 //      nx_distance              
    609                                 Note/K nx_distance, "units=m" 
    610                                 SetDataFolder  root:SANS_file:entry1:instrument:sample_aperture:shape            
    611                                         Make/O/N=0 Igor___folder_attributes      
    612                                         Note/K Igor___folder_attributes, "NX_class=NXshape" 
    613                                         //      size             
    614                                         Note/K size, "units=cm" 
    615                         SetDataFolder root:SANS_file:entry1:instrument:collimator                        
    616                                 SetDataFolder root:SANS_file:entry1:instrument:collimator:geometry                       
    617                                         SetDataFolder root:SANS_file:entry1:instrument:collimator:geometry:shape                         
    618                                                 //      shape            
    619                                                 //      size             
    620                                                 Note/K size, "units=m" 
    621                                 //      nx_NumGuides             
    622                         SetDataFolder  root:SANS_file:entry1:instrument:lenses           
    623                                 Make/O/N=0 Igor___folder_attributes      
    624                                 Note/K Igor___folder_attributes, "NX_class=NXxraylens" 
    625                                 //      status           
    626                                 //      lens_geometry            
    627                                 //      focus_type               
    628                                 //      number_of_lenses                 
    629                                 //      number_of_prisms                 
    630                                 //      curvature                
    631                                 //      lens_distance            
    632                                 Note/K lens_distance, "units=m" 
    633                                 //      prism_distance           
    634                                 Note/K prism_distance, "units=m" 
    635                                 //      lens_material            
    636                                 //      prism_material           
    637                         SetDataFolder  root:SANS_file:entry1:instrument:sample_table             
    638                                 Make/O/N=0 Igor___folder_attributes      
    639                                 //      location                 
    640                                 //      offset_distance          
    641                                 Note/K offset_distance, "units=cm" 
    642                         SetDataFolder  root:SANS_file:entry1:instrument:beam_stop                
    643                                 Make/O/N=0 Igor___folder_attributes      
    644                                 Note/K Igor___folder_attributes, "NX_class=NXbeam_stop" 
    645                                 //      description              
    646                                 //      nx_distance              
    647                                 Note/K nx_distance, "units=m" 
    648                                 //      size             
    649                                 Note/K size, "units=cm" 
    650                                 //      status           
    651                                 //      xPos             
    652                                 //      yPos             
    653                                 //      x_motor_position                 
    654                                 Note/K x_motor_position, "units=cm" 
    655                                 //      y_motor_position                 
    656                                 Note/K y_motor_position, "units=cm" 
    657                         SetDataFolder  root:SANS_file:entry1:instrument:detector                 
    658                                 Make/O/N=0 Igor___folder_attributes      
    659                                 Note/K Igor___folder_attributes, "NX_class=NXdetector" 
    660                                 //      data             
    661                                 Note/K data, "signal=1" 
    662                                 //      data_error               
    663                                 //      nx_distance              
    664                                 Note/K nx_distance, "units=m" 
    665                                 //      description              
    666                                 //      settings                 
    667                                 //      dead_time                
    668                                 Note/K dead_time, "units=s" 
    669                                 //      x_pixel_size             
    670                                 Note/K x_pixel_size, "units=cm" 
    671                                 //      y_pixel_size             
    672                                 Note/K y_pixel_size, "units=cm" 
    673                                 //      beam_center_x            
    674                                 //      beam_center_y            
    675                                 //      type             
    676                                 //      flatfield_applied                
    677                                 //      countrate_correction_applied             
    678                                 //      pixel_mask               
    679                                 //      integrated_count                 
    680                                 //      lateral_offset           
    681                                 Note/K lateral_offset, "units=cm" 
    682                                 //      PixelNumX                
    683                                 //      PixelNumY                
    684                                 //      PixelFWHM                
    685                                         //calibration_method             
    686                                 //      CALX             
    687                                 //      CALY             
    688                                 //      size             
    689                                 Note/K size, "units=cm" 
    690                                 //      event_file_name          
    691                 SetDataFolder  root:SANS_file:entry1:data                
    692                         Make/O/N=0 Igor___folder_attributes      
    693                         Note/K Igor___folder_attributes, "NX_class=NXdata" 
    694                         //      data             
    695                         Note/K data, "signal=1" 
    696                         //      error            
    697                         //      variables                
    698                         //      data_image               
    699                 SetDataFolder  root:SANS_file:entry1:reduction           
    700                         Make/O/N=0 Igor___folder_attributes      
    701                         //      intent           
    702                         //      transmission_file_name           
    703                         //      empty_beam_file_name             
    704                         //      background_file_name             
    705                         //      empty_file_name          
    706                         //      sensitivity_file_name            
    707                         //      mask_file_name           
    708                         //      sans_log_file_name               
    709                         //      whole_trans              
    710                         //      whole_trans_error                
    711                         //      box_count                
    712                         //      box_count_error          
    713                         //      box_coordinates          
    714                         //      comments                 
    715                         //      absolute_scaling                 
    716                         SetDataFolder  root:SANS_file:entry1:reduction:pol_sans          
    717                                 Make/O/N=0 Igor___folder_attributes      
    718                                 //      pol_sans_purpose                 
    719                                 //      cell_name                
    720                                 //      cell_parameters          
    721                                                          
    722         SetDataFolder  root:SANS_file:DAS_Logs           
    723                 Make/O/N=0 Igor___folder_attributes      
    724                 Note/K Igor___folder_attributes, "NX_class=NXlog" 
    725                         //...multiple entries and levels... to add               
    726  
    727  
    728         SetDataFolder root:      
    729  
    730 End 
     19/// 
     20// for the simulator, routines to be able to write out a proper Nexus file 
     21// based on a template 
     22//// 
     23 
     24 
     25 
     26// overwrites the dummy values as needed with SASCALC information 
     27// 
     28// TODO 
     29// issues here with the potential for Nexus to have data as INTEGER 
     30// where I'd rather have the data here in Igor be DP, so there are no  
     31// conversion/assignment issues 
     32// 
     33// simuation data from VCALC = DP, but I need to assign to an Integer wave... 
     34// - sometimes this works, sometimes not... 
     35// may need to Redimension/I 
     36// 
     37/// break this up into several smaller procedures as this is a VERY lengthy task to do 
     38 
     39        // TODO 
     40// set the "accessible" copies of the data (these are really to be links in the file!) 
     41 
     42 
     43 
     44// 
     45// A "template" VSANS Nexus file has been loaded and is then filled in with 
     46// the simulation results. Some of teh file, will therefor be garbage, but the  
     47// overall structure and attributes should be correct. 
     48// 
     49// Hopefully this will make the maintenance and testing of the file structure easier... 
     50// AUG 2015 
     51// 
     52/////////////////////////// 
     53// 
     54// these are all of the VCALC changes to the simulated files. ADD to these as needed, making these changes to the  
     55// folder structure after the "default" values have been re-filled in the waves (to make sure something is really there) 
     56// 
     57//////////////////////// 
     58 
     59// TODO: 
     60//      -- Need to write all of the "accessors" to r/w all of the simulated bits to the data file... lots to do 
     61// -- THIS DOES NOT MATCH THE CURRENT NICE_GENERATED FILE !!!! 
     62// 
     63 
     64 
    73165 
    73266// 
     
    73468// of how to ever keep this in sync if the Nexus tree changes... 
    73569// 
    736 Proc H_Fill_SANS_wSim() 
     70Proc H_Fill_SANS_Template_wSim() 
    73771 
    73872SetDataFolder  root:SANS_file            
Note: See TracChangeset for help on using the changeset viewer.