Example #1
0
def define_instrument():
    # Define modules
    modules = make_modules(steps.ALL_ACTIONS, prefix=INSTRUMENT + '.')

    # Define data types
    vsans_raw = df.DataType(INSTRUMENT + ".raw", RawVSANSData)
    vsans_realspace = df.DataType(INSTRUMENT + ".realspace",
                                  VSansDataRealSpace)
    vsans_qspace = df.DataType(INSTRUMENT + ".qspace", VSansDataQSpace)
    vsans_1d = df.DataType(INSTRUMENT + '.v1d', VSans1dData)
    #vsans_metadata = df.DataType(INSTRUMENT+".metadata", Metadata)
    params = df.DataType(INSTRUMENT + ".params", Parameters)

    # Define instrument
    vsans = df.Instrument(
        id=INSTRUMENT,
        name='NCNR Very Small Angle Neutron Scattering (VSANS) instrument',
        menu=[('steps', modules)],
        datatypes=[vsans_raw, vsans_realspace, vsans_qspace, params, vsans_1d],
        template_defs=df.load_templates(templates),
    )

    # Register instrument
    df.register_instrument(vsans)
    return vsans
Example #2
0
def define_instrument():
    # Define modules
    modules = make_modules(steps.ALL_ACTIONS, prefix=INSTRUMENT+'.')
    modules.append(make_cached_subloader_module(steps.super_load, prefix=INSTRUMENT+'.'))
    modules.append(make_cached_subloader_module(steps.ncnr_load, prefix=INSTRUMENT+'.'))
    
    # Define data types
    refldata = df.DataType(INSTRUMENT+".refldata", ReflData)
    poldata = df.DataType(INSTRUMENT+".poldata", PolarizationData)
    deadtime = df.DataType(INSTRUMENT+".deadtime", DeadTimeData)
    footprint = df.DataType(INSTRUMENT+".footprint.params", FootprintData)

    #import json
    #import os
    #from pkg_resources import resource_string, resource_listdir
    #template_names = [fn for fn in resource_listdir('dataflow', 'templates') if fn.endswith(".json")]
    #templates = [json.loads(resource_string('dataflow', 'templates/' + tn)) for tn in template_names]
    #template_path = resource_path("../dataflow/templates")
    #template_names = [fn for fn in os.listdir(template_path) if fn.endswith(".json")]
    #templates = [json.loads(open(os.path.join(template_path, tn), 'r').read()) for tn in template_names]
    
    # Define instrument
    refl1d = df.Instrument(
        id=INSTRUMENT,
        name='NCNR reflectometer',
        menu=[('steps', modules)],
        datatypes=[refldata, poldata, deadtime, footprint],
        template_defs = templates.get_templates(INSTRUMENT),
        )

    # Register instrument
    df.register_instrument(refl1d)
    return refl1d
Example #3
0
def define_instrument():
    # Define modules
    actions = get_modules(steps) + get_modules(candor_steps)
    modules = make_modules(actions, prefix=INSTRUMENT + '.')
    modules.append(
        make_cached_subloader_module(steps.super_load,
                                     prefix=INSTRUMENT + '.'))
    modules.append(
        make_cached_subloader_module(steps.ncnr_load, prefix=INSTRUMENT + '.'))
    # Define data types
    refldata = df.DataType(INSTRUMENT + ".refldata", ReflData)
    poldata = df.DataType(INSTRUMENT + ".poldata", PolarizationData)
    psddata = df.DataType(INSTRUMENT + ".psddata", PSDData)
    candordata = df.DataType(INSTRUMENT + ".candordata", Candor)
    deadtime = df.DataType(INSTRUMENT + ".deadtime", DeadTimeData)
    footprint = df.DataType(INSTRUMENT + ".footprint.params", FootprintData)
    flux = df.DataType(INSTRUMENT + ".flux.params", FluxData)
    backgroundfield = df.DataType(INSTRUMENT + ".backgroundfield.params",
                                  BackgroundFieldData)
    plottable = df.DataType(INSTRUMENT + ".plot", Plottable)

    #import json
    #import os
    #from pkg_resources import resource_string, resource_listdir
    #template_names = [fn for fn in resource_listdir('dataflow', 'templates') if fn.endswith(".json")]
    #templates = [json.loads(resource_string('dataflow', 'templates/' + tn)) for tn in template_names]
    #template_path = resource_path("../dataflow/templates")
    #template_names = [fn for fn in os.listdir(template_path) if fn.endswith(".json")]
    #templates = [json.loads(open(os.path.join(template_path, tn), 'r').read()) for tn in template_names]

    # Define instrument
    refl1d = df.Instrument(
        id=INSTRUMENT,
        name='NCNR reflectometer',
        menu=[('steps', modules)],
        datatypes=[
            refldata,
            poldata,
            psddata,
            candordata,
            deadtime,
            footprint,
            flux,
            backgroundfield,
            plottable,
        ],
        template_defs=df.load_templates(templates),
    )

    # Register instrument
    df.register_instrument(refl1d)
    return refl1d
Example #4
0
def define_instrument():
    # Define modules
    modules = make_modules(steps.ALL_ACTIONS, prefix=INSTRUMENT+'.')

    # Define data types
    sans2d = df.DataType(INSTRUMENT+".sans2d", SansData)
    sans1d = df.DataType(INSTRUMENT+".sans1d", Sans1dData)
    params = df.DataType(INSTRUMENT+".params", Parameters)
    #offset_data = df.DataType(INSTRUMENT+".offset_data", dict)
    
    # Define instrument
    sans = df.Instrument(
        id=INSTRUMENT,
        name='NCNR SANS',
        menu=[('steps', modules)],
        datatypes=[sans2d, sans1d, params],
        template_defs = templates.get_templates(INSTRUMENT),
        )

    # Register instrument
    df.register_instrument(sans)
    return sans
Example #5
0
def define_instrument():
    # Define modules
    modules = make_modules(steps.ALL_ACTIONS, prefix=INSTRUMENT+'.')

    # Define data types
    usansraw = df.DataType(INSTRUMENT+".raw", RawData)
    usansdata = df.DataType(INSTRUMENT+".data", USansData)
    usanscor = df.DataType(INSTRUMENT+".cor", USansCorData)
    params = df.DataType(INSTRUMENT+".params", Parameters)

    # Define instrument
    usans = df.Instrument(
        id=INSTRUMENT,
        name='NCNR Ultra-Small Angle Neutron Scattering Instrument (USANS)',
        menu=[('steps', modules)],
        datatypes=[usansdata, params, usanscor], # usansraw],
        template_defs=df.load_templates(templates),
        )

    # Register instrument
    df.register_instrument(usans)
    return usans
Example #6
0
def define_instrument():
    # Define modules
    modules = make_modules(steps.ALL_ACTIONS, prefix=INSTRUMENT + '.')

    # Define data types
    sans2d = df.DataType(INSTRUMENT + ".sans2d", SansData)
    sans1d = df.DataType(INSTRUMENT + ".sans1d", Sans1dData)
    params = df.DataType(INSTRUMENT + ".params", Parameters)
    #offset_data = df.DataType(INSTRUMENT+".offset_data", dict)

    # Define instrument
    sans = df.Instrument(
        id=INSTRUMENT,
        name='NCNR SANS',
        menu=[('steps', modules)],
        datatypes=[sans2d, sans1d, params],
        template_defs=templates.get_templates(INSTRUMENT),
    )

    # Register instrument
    df.register_instrument(sans)
    return sans
Example #7
0
def define_instrument():
    # Define modules
    modules = make_modules(steps.ALL_ACTIONS, prefix=INSTRUMENT+'.')

    # Define data types
    ospec2d = df.DataType(INSTRUMENT+".ospec2d", FilterableMetaArray)
    ospec1d = df.DataType(INSTRUMENT+".ospec1d", FilterableMetaArray)
    params = df.DataType(INSTRUMENT+".params", Parameters)
    #offset_data = df.DataType(INSTRUMENT+".offset_data", dict)
    
    # Define instrument
    ospec = df.Instrument(
        id=INSTRUMENT,
        name='NCNR offspecular',
        menu=[('steps', modules)],
        datatypes=[ospec2d, ospec1d, params],
        template_defs = templates.get_templates(INSTRUMENT),
        )

    # Register instrument
    df.register_instrument(ospec)
    return ospec
Example #8
0
def define_instrument():
    # Define modules
    modules = make_modules(steps.ALL_ACTIONS, prefix=INSTRUMENT+'.')

    # Define data types
    dcsraw = df.DataType(INSTRUMENT+".raw", RawData)
    eqdata = df.DataType(INSTRUMENT+".eq", EQData)
    ef2thetadata = df.DataType(INSTRUMENT+".ef2th", EfTwoThetaData)
    eq1ddata = df.DataType(INSTRUMENT+".eq1d", DCS1dData)
    #params = df.DataType(INSTRUMENT+".params", Parameters)

    # Define instrument
    dcs = df.Instrument(
        id=INSTRUMENT,
        name='NCNR Disk Chopper Spectrometer',
        menu=[('steps', modules)],
        datatypes=[dcsraw, eqdata, eq1ddata, ef2thetadata], # params],
        template_defs=templates.get_templates(INSTRUMENT),
        )

    # Register instrument
    df.register_instrument(dcs)
    return dcs
Example #9
0
def define_instrument():
    # Define modules
    modules = make_modules(steps.ALL_ACTIONS, prefix=INSTRUMENT + '.')

    # Define data types
    dcsraw = df.DataType(INSTRUMENT + ".raw", RawData)
    eqdata = df.DataType(INSTRUMENT + ".eq", EQData)
    ef2thetadata = df.DataType(INSTRUMENT + ".ef2th", EfTwoThetaData)
    eq1ddata = df.DataType(INSTRUMENT + ".eq1d", DCS1dData)
    #params = df.DataType(INSTRUMENT+".params", Parameters)

    # Define instrument
    dcs = df.Instrument(
        id=INSTRUMENT,
        name='NCNR Disk Chopper Spectrometer',
        menu=[('steps', modules)],
        datatypes=[dcsraw, eqdata, eq1ddata, ef2thetadata],  # params],
        template_defs=df.load_templates(templates),
    )

    # Register instrument
    df.register_instrument(dcs)
    return dcs
Example #10
0
def define_instrument():
    # Define modules
    modules = make_modules(steps.ALL_ACTIONS, prefix=INSTRUMENT + '.')

    # Define data types
    ospec2d = df.DataType(INSTRUMENT + ".ospec2d", FilterableMetaArray)
    #ospec1d = df.DataType(INSTRUMENT+".ospec1d", FilterableMetaArray)
    ospecnd = df.DataType(INSTRUMENT + ".ospecnd", FilterableMetaArray)
    params = df.DataType(INSTRUMENT + ".params", Parameters)
    #offset_data = df.DataType(INSTRUMENT+".offset_data", dict)

    # Define instrument
    ospec = df.Instrument(
        id=INSTRUMENT,
        name='NCNR offspecular',
        menu=[('steps', modules)],
        datatypes=[ospec2d, ospecnd, params],
        template_defs=df.load_templates(templates),
    )

    # Register instrument
    df.register_instrument(ospec)
    return ospec
Example #11
0
def define_instrument():
    # Define modules
    modules = make_modules(steps.ALL_ACTIONS, prefix=INSTRUMENT + '.')
    modules.append(
        make_cached_subloader_module(steps.super_load,
                                     prefix=INSTRUMENT + '.'))
    modules.append(
        make_cached_subloader_module(steps.ncnr_load, prefix=INSTRUMENT + '.'))

    # Define data types
    refldata = df.DataType(INSTRUMENT + ".refldata", ReflData)
    poldata = df.DataType(INSTRUMENT + ".poldata", PolarizationData)
    deadtime = df.DataType(INSTRUMENT + ".deadtime", DeadTimeData)
    footprint = df.DataType(INSTRUMENT + ".footprint.params", FootprintData)
    flux = df.DataType(INSTRUMENT + ".flux.params", FluxData)

    #import json
    #import os
    #from pkg_resources import resource_string, resource_listdir
    #template_names = [fn for fn in resource_listdir('dataflow', 'templates') if fn.endswith(".json")]
    #templates = [json.loads(resource_string('dataflow', 'templates/' + tn)) for tn in template_names]
    #template_path = resource_path("../dataflow/templates")
    #template_names = [fn for fn in os.listdir(template_path) if fn.endswith(".json")]
    #templates = [json.loads(open(os.path.join(template_path, tn), 'r').read()) for tn in template_names]

    # Define instrument
    refl1d = df.Instrument(
        id=INSTRUMENT,
        name='NCNR reflectometer',
        menu=[('steps', modules)],
        datatypes=[refldata, poldata, deadtime, footprint, flux],
        template_defs=templates.get_templates(INSTRUMENT),
    )

    # Register instrument
    df.register_instrument(refl1d)
    return refl1d
Example #12
0
    name='sans',
    archive=config.NCNR_DATA + '/sansins',
    menu=[
        ('Input', [load, save]),
        ('Reduction', [
            deadtime, generate_trans, correct_det_sens, initial_corr, annul_av,
            absolute
        ]),
    ],
    requires=[config.JSCRIPT + '/sansplot.js'],
    datatypes=[data2d],
)

instruments = [SANS_NG3]
for instrument in instruments:
    register_instrument(instrument)

# Testing
if __name__ == '__main__':
    #def TESTING():
    #global fileList
    fileList = [
        map_files('sample_4m'),
        map_files('empty_cell_4m'),
        map_files('empty_4m'),
        map_files('trans_sample_4m'),
        map_files('trans_empty_cell_4m'),
        map_files('blocked_4m'),
        map_files('div')
    ]
    #fileList = ["/home/elakian/dataflow/reduction/sans/ncnr_sample_data/SILIC010.SA3_SRK_S110","/home/elakian/dataflow/reduction/sans/ncnr_sample_data/SILIC008.SA3_SRK_S108","/home/elakian/dataflow/reduction/sans/ncnr_sample_data/SILIC002.SA3_SRK_S102","/home/elakian/dataflow/reduction/sans/ncnr_sample_data/SILIC006.SA3_SRK_S106","/home/elakian/dataflow/reduction/sans/ncnr_sample_data/SILIC005.SA3_SRK_S105"]
Example #13
0
#Instrument definitions
SANS_INS = Instrument(id='ncnr.sans.ins',
                 name='NCNR SANS INS',
                 archive=config.NCNR_DATA + '/sansins',
                 menu=[('Input', [load, save]),
                       ('Reduction', [convertq,correct_det_eff,mon_norm,correct_back])
                                              ],
                 requires=[config.JSCRIPT + '/sansplot.js'],
                 datatypes=[data2d],
                 )
instruments = [SANS_INS]

# Testing
if __name__ == '__main__':
    for instrument in instruments:
        register_instrument(instrument)
    modules = [
        dict(module="sans.load", position=(5, 20),
             config={'files': ["/home/elakian/dataflow/reduction/sans/ncnr_sample_data/PLEX_2NOV2007_NG3.DIV","/home/elakian/dataflow/reduction/sans/ncnr_sample_data/SILIC002.SA3_SRK_S102","/home/elakian/dataflow/reduction/sans/ncnr_sample_data/SILIC005.SA3_SRK_S105","/home/elakian/dataflow/reduction/sans/ncnr_sample_data/SILIC006.SA3_SRK_S106","/home/elakian/dataflow/reduction/sans/ncnr_sample_data/SILIC010.SA3_SRK_S110"], 'intent': 'signal'}),
        dict(module="sans.save", position=(280, 40), config={'ext': 'dat'}),
        dict(module="sans.monitor_normalize", position=(360 , 60), config={}),
        dict(module="sans.correct_detector_efficiency", position=(360 , 60), config={}),
        dict(module="sans.correct_background", position=(360 , 60), config={}),
        ]
    wires = [
        dict(source=[0, 'output'], target=[2, 'input']),
        dict(source=[2, 'output'], target=[1, 'input']),
        
        ]
    config = [d['config'] for d in modules]
    template = Template(name='test sans',
Example #14
0
def ppjson(s):
    return json.dumps(json.loads(s), sort_keys=True, indent=2)


from dataflow.tas.instruments import BT7
from dataflow.wireit import (
    instrument_to_wireit_language,
    instrument_to_wireit_menu,
    template_to_wireit_diagram,
    wireit_diagram_to_template,
    template_list,
)
from dataflow.core import Template, register_instrument
from dataflow.calc import run_template

register_instrument(BT7)

# create template and configuration
modules = [
    dict(module="tas.load",
         position=(5, 20),
         config={
             'files': [],
             'intent': 'signal'
         }),
    dict(module="tas.join", position=(160, 20), config={'align': ['A3']}),
    dict(module="tas.scale", position=(280, 40), config={'scale': 2.5}),
    dict(module="tas.save", position=(340, 40), config={'ext': 'dat'}),
]
wires = [
    dict(source=[0, 'output'], target=[1, 'input']),