Exemple #1
0
def main(input_file, output_dir):
    validate(input_file, output_dir)

    params = web_var.standard_vars

    mapping_file = r"/archive/NDXGEM/user/scripts/autoreduction/gem_cycle_mapping.yaml"
    calib_dir = r"/archive/NDXGEM/user/scripts/autoreduction/Calibration"

    user = "******"

    if params['mode'] == '' or params['mode'] == None:
        ws = Load(input_file)
        mode = determine_mode(ws)
        if mode:
            print("Using {} mode for reduction.".format(mode))
            params['mode'] = mode
        else:
            raise ValueError(
                "No mode supplied and unable to determine from logs please ensure "
                "Phase T0, 6m and 9m are expected. "
                "Re-run and manually supply mode in the parameters.")

    cropping_values = [
        (550, 19900),  # Bank 1
        (550, 19900),  # Bank 2
        (550, 19900),  # Bank 3
        (550, 19900),  # Bank 4
        (550, 18500),  # Bank 5
        (550, 16750)  # Bank 6
    ]
    if params['mode'] == 'Rietveld':
        cropping_values = [
            (700, 19500),  # Bank 1
            (1000, 19500),  # Bank 2
            (1000, 19500),  # Bank 3
            (1000, 19500),  # Bank 4
            (1000, 18500),  # Bank 5
            (1000, 18000)  # Bank 6
        ]
    gem = Gem(
        user_name=user,
        calibration_directory=calib_dir,
        output_directory=output_dir,
        calibration_mapping_file=mapping_file,
        do_absorb_corrections=params['do_absorb_corrections'],
        vanadium_normalisation=params['vanadium_normalisation'],
        input_mode=params['input_mode'],
        mode=params['mode'],
        multiple_scattering=params['multiple_scattering'],
        focused_cropping_values=cropping_values,
    )

    # Prior to running this script, you need to have created a vanadium for cycle 17_2 like so:
    #gem.create_vanadium(do_absorb_corrections=True,
    #                    mode="PDF",
    #                    first_cycle_run_no=87568)

    # Focus run
    run_num = get_run_number(input_file)
    gem.focus(run_number=run_num, do_absorb_corrections=False)
Exemple #2
0
def setup_inst_object(mode):
    inst_obj = Gem(user_name=user_name,
                   calibration_mapping_file=calibration_map_path,
                   calibration_directory=calibration_dir,
                   output_directory=output_dir,
                   mode=mode)
    return inst_obj