Loading .gitignore 0 → 100644 +1 −0 Original line number Diff line number Diff line tmp/ align_focus_can.py 0 → 100644 +41 −0 Original line number Diff line number Diff line from mantid import simpleapi import json import os # -----> Config: Conda environment to use for the reduction central_config = "/SNS/PG3/shared/livereduce/live_config.json" # <----- Config: Conda environment to use for the reduction # -----> Config: Read in the config file with open(central_config, "r") as f: input_c_config = json.load(f) cycle = input_c_config["Cycle"] sam_env = input_c_config["SampleEnvironment"] config_file = input_c_config["ConfigFile"][sam_env] config_file_f = os.path.join("/SNS/PG3/shared/livereduce/live_config_files", cycle, config_file) with open(config_file_f, "r") as f: input_config = json.load(f) cal_dir = input_config["CalibDirectory"] cal_file = os.path.join(cal_dir, input_config["InputFiles"]["CalibFile"]) # <----- Config: Read in the config file simpleapi.LoadDiffCal(InstrumentName="PG3", Filename=cal_file, WorkspaceName="PG3") with open("/SNS/PG3/shared/livereduce/tmp/alignandfocuspowder.json", "r") as f: af_config = json.load(f) with open("/SNS/PG3/shared/livereduce/tmp/can.name", "r") as f: can = f.readline().strip() simpleapi.AlignAndFocusPowderFromFiles(Filename=can, OutputWorkspace="can_af", **af_config) simpleapi.SaveNexus(InputWorkspace="can_af", Filename=f"/SNS/PG3/shared/livereduce/tmp/can_{can}.nxs") align_focus_van.py 0 → 100644 +43 −0 Original line number Diff line number Diff line from mantid import simpleapi import json import os # -----> Config: Conda environment to use for the reduction central_config = "/SNS/PG3/shared/livereduce/live_config.json" # <----- Config: Conda environment to use for the reduction # -----> Config: Read in the config file with open(central_config, "r") as f: input_c_config = json.load(f) cycle = input_c_config["Cycle"] sam_env = input_c_config["SampleEnvironment"] config_file = input_c_config["ConfigFile"][sam_env] config_file_f = os.path.join("/SNS/PG3/shared/livereduce/live_config_files", cycle, config_file) with open(config_file_f, "r") as f: input_config = json.load(f) cal_dir = input_config["CalibDirectory"] cal_file = os.path.join(cal_dir, input_config["InputFiles"]["CalibFile"]) # <----- Config: Read in the config file simpleapi.LoadDiffCal(InstrumentName="PG3", Filename=cal_file, WorkspaceName="PG3") with open("/SNS/PG3/shared/livereduce/tmp/alignandfocuspowder.json", "r") as f: af_config = json.load(f) with open("/SNS/PG3/shared/livereduce/tmp/van.name", "r") as f: van = f.readline().strip() simpleapi.LoadEventNexus(Filename=van, OutputWorkspace=van) simpleapi.AlignAndFocusPowderFromFiles(Filename=van, OutputWorkspace="van_af", **af_config) simpleapi.SaveNexus(InputWorkspace="van_af", Filename=f"/SNS/PG3/shared/livereduce/tmp/van_{van}.nxs") align_focus_vanback.py 0 → 100644 +41 −0 Original line number Diff line number Diff line from mantid import simpleapi import json import os # -----> Config: Conda environment to use for the reduction central_config = "/SNS/PG3/shared/livereduce/live_config.json" # <----- Config: Conda environment to use for the reduction # -----> Config: Read in the config file with open(central_config, "r") as f: input_c_config = json.load(f) cycle = input_c_config["Cycle"] sam_env = input_c_config["SampleEnvironment"] config_file = input_c_config["ConfigFile"][sam_env] config_file_f = os.path.join("/SNS/PG3/shared/livereduce/live_config_files", cycle, config_file) with open(config_file_f, "r") as f: input_config = json.load(f) cal_dir = input_config["CalibDirectory"] cal_file = os.path.join(cal_dir, input_config["InputFiles"]["CalibFile"]) # <----- Config: Read in the config file simpleapi.LoadDiffCal(InstrumentName="PG3", Filename=cal_file, WorkspaceName="PG3") with open("/SNS/PG3/shared/livereduce/tmp/alignandfocuspowder.json", "r") as f: af_config = json.load(f) with open("/SNS/PG3/shared/livereduce/tmp/vanback.name", "r") as f: vanback = f.readline().strip() simpleapi.AlignAndFocusPowderFromFiles(Filename=vanback, OutputWorkspace="vanback_af", **af_config) simpleapi.SaveNexus(InputWorkspace="vanback_af", Filename=f"/SNS/PG3/shared/livereduce/tmp/vanback_{vanback}.nxs") reduce_PG3_live_post_proc.py +38 −17 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ import json import mantid from mantid import simpleapi import os import subprocess import time # -----> Config: Conda environment to use for the reduction CONDA_ENV = 'mantid-qa' Loading Loading @@ -66,15 +68,23 @@ processingParams = {'CalibrationWorkspace': 'PG3_cal', 'MaskWorkspace': 'PG3_mask', 'Params': [tof_bin_width_pproc], 'RemovePromptPulseWidth': rppw_pproc, 'ReductionProperties': '__pd_reduction_properties'} 'ReductionProperties': '__pd_reduction_properties', 'PreserveEvents': False, 'CompressTolerance': 0.} can = getRunId(manager, 'container') with open("/SNS/PG3/shared/livereduce/tmp/alignandfocuspowder.json", "w") as f: json.dump(processingParams, f, indent=4) with open("/SNS/PG3/shared/livereduce/tmp/can.name", "w") as f: f.write(can) if can is not None and not simpleapi.mtd.doesExist(can): mantid.logger.information("processing container '%s'" % can) simpleapi.AlignAndFocusPowderFromFiles(Filename=can, OutputWorkspace=can, CacheDir='/tmp', **processingParams) subprocess.run(["mantidpython", "/SNS/PG3/shared/livereduce/align_focus_can.py"]) while not os.path.exists(f"/SNS/PG3/shared/livereduce/tmp/can_{can}.nxs"): time.sleep(1) simpleapi.LoadNexus(Filename=f"/SNS/PG3/shared/livereduce/tmp/can_{can}.nxs", OutputWorkspace=can) simpleapi.ConvertUnits(InputWorkspace=can, OutputWorkspace=can, Target='dSpacing', Loading @@ -83,42 +93,50 @@ if can is not None and not simpleapi.mtd.doesExist(can): OutputWorkspace=can) if can is not None: simpleapi.RebinToWorkspace(WorkspaceToRebin=can, WorkspaceToMatch=output, OutputWorkspace=can) simpleapi.Minus(LHSWorkspace=output, RHSWorkspace=can, OutputWorkspace=output) van = getRunId(manager, 'vanadium') with open("/SNS/PG3/shared/livereduce/tmp/van.name", "w") as f: f.write(van) if van is not None and not simpleapi.mtd.doesExist(van): mantid.logger.information("processing vanadium '%s'" % van) simpleapi.LoadEventNexus(Filename=van, subprocess.run(["mantidpython", "/SNS/PG3/shared/livereduce/align_focus_van.py"]) while not os.path.exists(f"/SNS/PG3/shared/livereduce/tmp/van_{van}.nxs"): time.sleep(1) simpleapi.LoadNexus(Filename=f"/SNS/PG3/shared/livereduce/tmp/van_{van}.nxs", OutputWorkspace=van) simpleapi.AlignAndFocusPowderFromFiles(Filename=van, OutputWorkspace=van, CacheDir='/tmp', **processingParams) simpleapi.NormaliseByCurrent(InputWorkspace=van, OutputWorkspace=van) vanback = getRunId(manager, 'vanadium_background') with open("/SNS/PG3/shared/livereduce/tmp/vanback.name", "w") as f: f.write(vanback) if vanback is not None: mantid.logger.information("processing vanadium background '%s'" % vanback) simpleapi.AlignAndFocusPowderFromFiles(Filename=vanback, OutputWorkspace='__vanback', CacheDir='/tmp', **processingParams) subprocess.run(["mantidpython", "/SNS/PG3/shared/livereduce/align_focus_vanback.py"]) while not os.path.exists(f"/SNS/PG3/shared/livereduce/tmp/vanback_{vanback}.nxs"): time.sleep(1) simpleapi.LoadNexus(Filename=f"/SNS/PG3/shared/livereduce/tmp/vanback_{vanback}.nxs", OutputWorkspace="__vanback") vanback = '__vanback' simpleapi.NormaliseByCurrent(InputWorkspace=vanback, OutputWorkspace=vanback) mantid.logger.information("subtracting vanadium background") simpleapi.RebinToWorkspace(WorkspaceToRebin=vanback, WorkspaceToMatch=van, OutputWorkspace=vanback) simpleapi.Minus(LHSWorkspace=van, RHSWorkspace=vanback, OutputWorkspace=van, ClearRHSWorkspace=True) simpleapi.DeleteWorkspace(Workspace=vanback) simpleapi.CompressEvents(InputWorkspace=van, OutputWorkspace=van) simpleapi.ConvertUnits(InputWorkspace=van, OutputWorkspace=van, Loading @@ -132,6 +150,9 @@ if van is not None and not simpleapi.mtd.doesExist(van): smooth(van) if van is not None: simpleapi.RebinToWorkspace(WorkspaceToRebin=van, WorkspaceToMatch=output, OutputWorkspace=van) simpleapi.Divide(LHSWorkspace=output, RHSWorkspace=van, OutputWorkspace=output) Loading Loading
align_focus_can.py 0 → 100644 +41 −0 Original line number Diff line number Diff line from mantid import simpleapi import json import os # -----> Config: Conda environment to use for the reduction central_config = "/SNS/PG3/shared/livereduce/live_config.json" # <----- Config: Conda environment to use for the reduction # -----> Config: Read in the config file with open(central_config, "r") as f: input_c_config = json.load(f) cycle = input_c_config["Cycle"] sam_env = input_c_config["SampleEnvironment"] config_file = input_c_config["ConfigFile"][sam_env] config_file_f = os.path.join("/SNS/PG3/shared/livereduce/live_config_files", cycle, config_file) with open(config_file_f, "r") as f: input_config = json.load(f) cal_dir = input_config["CalibDirectory"] cal_file = os.path.join(cal_dir, input_config["InputFiles"]["CalibFile"]) # <----- Config: Read in the config file simpleapi.LoadDiffCal(InstrumentName="PG3", Filename=cal_file, WorkspaceName="PG3") with open("/SNS/PG3/shared/livereduce/tmp/alignandfocuspowder.json", "r") as f: af_config = json.load(f) with open("/SNS/PG3/shared/livereduce/tmp/can.name", "r") as f: can = f.readline().strip() simpleapi.AlignAndFocusPowderFromFiles(Filename=can, OutputWorkspace="can_af", **af_config) simpleapi.SaveNexus(InputWorkspace="can_af", Filename=f"/SNS/PG3/shared/livereduce/tmp/can_{can}.nxs")
align_focus_van.py 0 → 100644 +43 −0 Original line number Diff line number Diff line from mantid import simpleapi import json import os # -----> Config: Conda environment to use for the reduction central_config = "/SNS/PG3/shared/livereduce/live_config.json" # <----- Config: Conda environment to use for the reduction # -----> Config: Read in the config file with open(central_config, "r") as f: input_c_config = json.load(f) cycle = input_c_config["Cycle"] sam_env = input_c_config["SampleEnvironment"] config_file = input_c_config["ConfigFile"][sam_env] config_file_f = os.path.join("/SNS/PG3/shared/livereduce/live_config_files", cycle, config_file) with open(config_file_f, "r") as f: input_config = json.load(f) cal_dir = input_config["CalibDirectory"] cal_file = os.path.join(cal_dir, input_config["InputFiles"]["CalibFile"]) # <----- Config: Read in the config file simpleapi.LoadDiffCal(InstrumentName="PG3", Filename=cal_file, WorkspaceName="PG3") with open("/SNS/PG3/shared/livereduce/tmp/alignandfocuspowder.json", "r") as f: af_config = json.load(f) with open("/SNS/PG3/shared/livereduce/tmp/van.name", "r") as f: van = f.readline().strip() simpleapi.LoadEventNexus(Filename=van, OutputWorkspace=van) simpleapi.AlignAndFocusPowderFromFiles(Filename=van, OutputWorkspace="van_af", **af_config) simpleapi.SaveNexus(InputWorkspace="van_af", Filename=f"/SNS/PG3/shared/livereduce/tmp/van_{van}.nxs")
align_focus_vanback.py 0 → 100644 +41 −0 Original line number Diff line number Diff line from mantid import simpleapi import json import os # -----> Config: Conda environment to use for the reduction central_config = "/SNS/PG3/shared/livereduce/live_config.json" # <----- Config: Conda environment to use for the reduction # -----> Config: Read in the config file with open(central_config, "r") as f: input_c_config = json.load(f) cycle = input_c_config["Cycle"] sam_env = input_c_config["SampleEnvironment"] config_file = input_c_config["ConfigFile"][sam_env] config_file_f = os.path.join("/SNS/PG3/shared/livereduce/live_config_files", cycle, config_file) with open(config_file_f, "r") as f: input_config = json.load(f) cal_dir = input_config["CalibDirectory"] cal_file = os.path.join(cal_dir, input_config["InputFiles"]["CalibFile"]) # <----- Config: Read in the config file simpleapi.LoadDiffCal(InstrumentName="PG3", Filename=cal_file, WorkspaceName="PG3") with open("/SNS/PG3/shared/livereduce/tmp/alignandfocuspowder.json", "r") as f: af_config = json.load(f) with open("/SNS/PG3/shared/livereduce/tmp/vanback.name", "r") as f: vanback = f.readline().strip() simpleapi.AlignAndFocusPowderFromFiles(Filename=vanback, OutputWorkspace="vanback_af", **af_config) simpleapi.SaveNexus(InputWorkspace="vanback_af", Filename=f"/SNS/PG3/shared/livereduce/tmp/vanback_{vanback}.nxs")
reduce_PG3_live_post_proc.py +38 −17 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ import json import mantid from mantid import simpleapi import os import subprocess import time # -----> Config: Conda environment to use for the reduction CONDA_ENV = 'mantid-qa' Loading Loading @@ -66,15 +68,23 @@ processingParams = {'CalibrationWorkspace': 'PG3_cal', 'MaskWorkspace': 'PG3_mask', 'Params': [tof_bin_width_pproc], 'RemovePromptPulseWidth': rppw_pproc, 'ReductionProperties': '__pd_reduction_properties'} 'ReductionProperties': '__pd_reduction_properties', 'PreserveEvents': False, 'CompressTolerance': 0.} can = getRunId(manager, 'container') with open("/SNS/PG3/shared/livereduce/tmp/alignandfocuspowder.json", "w") as f: json.dump(processingParams, f, indent=4) with open("/SNS/PG3/shared/livereduce/tmp/can.name", "w") as f: f.write(can) if can is not None and not simpleapi.mtd.doesExist(can): mantid.logger.information("processing container '%s'" % can) simpleapi.AlignAndFocusPowderFromFiles(Filename=can, OutputWorkspace=can, CacheDir='/tmp', **processingParams) subprocess.run(["mantidpython", "/SNS/PG3/shared/livereduce/align_focus_can.py"]) while not os.path.exists(f"/SNS/PG3/shared/livereduce/tmp/can_{can}.nxs"): time.sleep(1) simpleapi.LoadNexus(Filename=f"/SNS/PG3/shared/livereduce/tmp/can_{can}.nxs", OutputWorkspace=can) simpleapi.ConvertUnits(InputWorkspace=can, OutputWorkspace=can, Target='dSpacing', Loading @@ -83,42 +93,50 @@ if can is not None and not simpleapi.mtd.doesExist(can): OutputWorkspace=can) if can is not None: simpleapi.RebinToWorkspace(WorkspaceToRebin=can, WorkspaceToMatch=output, OutputWorkspace=can) simpleapi.Minus(LHSWorkspace=output, RHSWorkspace=can, OutputWorkspace=output) van = getRunId(manager, 'vanadium') with open("/SNS/PG3/shared/livereduce/tmp/van.name", "w") as f: f.write(van) if van is not None and not simpleapi.mtd.doesExist(van): mantid.logger.information("processing vanadium '%s'" % van) simpleapi.LoadEventNexus(Filename=van, subprocess.run(["mantidpython", "/SNS/PG3/shared/livereduce/align_focus_van.py"]) while not os.path.exists(f"/SNS/PG3/shared/livereduce/tmp/van_{van}.nxs"): time.sleep(1) simpleapi.LoadNexus(Filename=f"/SNS/PG3/shared/livereduce/tmp/van_{van}.nxs", OutputWorkspace=van) simpleapi.AlignAndFocusPowderFromFiles(Filename=van, OutputWorkspace=van, CacheDir='/tmp', **processingParams) simpleapi.NormaliseByCurrent(InputWorkspace=van, OutputWorkspace=van) vanback = getRunId(manager, 'vanadium_background') with open("/SNS/PG3/shared/livereduce/tmp/vanback.name", "w") as f: f.write(vanback) if vanback is not None: mantid.logger.information("processing vanadium background '%s'" % vanback) simpleapi.AlignAndFocusPowderFromFiles(Filename=vanback, OutputWorkspace='__vanback', CacheDir='/tmp', **processingParams) subprocess.run(["mantidpython", "/SNS/PG3/shared/livereduce/align_focus_vanback.py"]) while not os.path.exists(f"/SNS/PG3/shared/livereduce/tmp/vanback_{vanback}.nxs"): time.sleep(1) simpleapi.LoadNexus(Filename=f"/SNS/PG3/shared/livereduce/tmp/vanback_{vanback}.nxs", OutputWorkspace="__vanback") vanback = '__vanback' simpleapi.NormaliseByCurrent(InputWorkspace=vanback, OutputWorkspace=vanback) mantid.logger.information("subtracting vanadium background") simpleapi.RebinToWorkspace(WorkspaceToRebin=vanback, WorkspaceToMatch=van, OutputWorkspace=vanback) simpleapi.Minus(LHSWorkspace=van, RHSWorkspace=vanback, OutputWorkspace=van, ClearRHSWorkspace=True) simpleapi.DeleteWorkspace(Workspace=vanback) simpleapi.CompressEvents(InputWorkspace=van, OutputWorkspace=van) simpleapi.ConvertUnits(InputWorkspace=van, OutputWorkspace=van, Loading @@ -132,6 +150,9 @@ if van is not None and not simpleapi.mtd.doesExist(van): smooth(van) if van is not None: simpleapi.RebinToWorkspace(WorkspaceToRebin=van, WorkspaceToMatch=output, OutputWorkspace=van) simpleapi.Divide(LHSWorkspace=output, RHSWorkspace=van, OutputWorkspace=output) Loading