From 3f3b0dbd0323958b2e2bc53e87e71b0574c0f9fc Mon Sep 17 00:00:00 2001 From: Martyn Gigg <martyn.gigg@gmail.com> Date: Mon, 16 Sep 2019 12:05:07 +0100 Subject: [PATCH] Fix file extension handling in isis powder The extension requested was being ignored. --- scripts/Diffraction/isis_powder/abstract_inst.py | 5 +---- scripts/Diffraction/isis_powder/gem.py | 4 ++-- scripts/Diffraction/isis_powder/hrpd.py | 12 +++++++----- scripts/Diffraction/isis_powder/polaris.py | 4 ++-- scripts/Diffraction/isis_powder/routines/common.py | 4 ++-- .../isis_powder/test/ISISPowderCommonTest.py | 4 ++-- 6 files changed, 16 insertions(+), 17 deletions(-) diff --git a/scripts/Diffraction/isis_powder/abstract_inst.py b/scripts/Diffraction/isis_powder/abstract_inst.py index b5d0c81cd5e..6117735019b 100644 --- a/scripts/Diffraction/isis_powder/abstract_inst.py +++ b/scripts/Diffraction/isis_powder/abstract_inst.py @@ -337,10 +337,7 @@ class AbstractInst(object): return [self._generate_inst_filename(run, file_ext) for run in run_number] else: # Individual entry - runfile = self._inst_prefix + str(run_number) - if file_ext is not None: - runfile += file_ext - return runfile + return self._inst_prefix + str(run_number) + file_ext def _add_formatting_options(self, format_options): """ diff --git a/scripts/Diffraction/isis_powder/gem.py b/scripts/Diffraction/isis_powder/gem.py index 262a7c18ad5..3eda16937c5 100644 --- a/scripts/Diffraction/isis_powder/gem.py +++ b/scripts/Diffraction/isis_powder/gem.py @@ -179,8 +179,8 @@ class Gem(AbstractInst): raise_warning=raise_warning) @staticmethod - def _generate_input_file_name(run_number): - return _gem_generate_inst_name(run_number=run_number) + def _generate_input_file_name(run_number, file_ext=""): + return _gem_generate_inst_name(run_number=run_number) + file_ext def _apply_absorb_corrections(self, run_details, ws_to_correct): if self._is_vanadium: diff --git a/scripts/Diffraction/isis_powder/hrpd.py b/scripts/Diffraction/isis_powder/hrpd.py index ee7dbaf0b64..f7b291af027 100644 --- a/scripts/Diffraction/isis_powder/hrpd.py +++ b/scripts/Diffraction/isis_powder/hrpd.py @@ -14,11 +14,11 @@ from isis_powder.hrpd_routines import hrpd_advanced_config, hrpd_algs, hrpd_para import mantid.simpleapi as mantid -# Force using raw files -# A bug in loading old NeXus files prevents using NeXus. +# A bug on the instrument when recording historic NeXus files (< 2015) caused +# corrupted data. Use raw files for now until sufficient time has past and old +# data is unlikely to be reanalysed. RAW_DATA_EXT = '.raw' - # Constants PROMPT_PULSE_INTERVAL = 20000.0 PROMPT_PULSE_RIGHT_WIDTH = 140.0 @@ -106,14 +106,16 @@ class HRPD(AbstractInst): raise RuntimeError("Could not find " + os.path.join(path, name)+" please run create_vanadium with " "\"do_solid_angle_corrections=True\"") - def _generate_input_file_name(self, run_number, file_ext=None): + def _generate_input_file_name(self, run_number, file_ext=""): """ Generates a name which Mantid uses within Load to find the file. :param run_number: The run number to convert into a valid format for Mantid :param file_ext: An optional file extension to add to force a particular format :return: A filename that will allow Mantid to find the correct run for that instrument. """ - return self._generate_inst_filename(run_number=run_number, file_ext=RAW_DATA_EXT) + if not file_ext: + file_ext = RAW_DATA_EXT + return self._generate_inst_filename(run_number=run_number, file_ext=file_ext) def _apply_absorb_corrections(self, run_details, ws_to_correct): if self._is_vanadium: diff --git a/scripts/Diffraction/isis_powder/polaris.py b/scripts/Diffraction/isis_powder/polaris.py index 04b15eb7105..71b9d40ab17 100644 --- a/scripts/Diffraction/isis_powder/polaris.py +++ b/scripts/Diffraction/isis_powder/polaris.py @@ -92,7 +92,7 @@ class Polaris(AbstractInst): return cropped_ws @staticmethod - def _generate_input_file_name(run_number): + def _generate_input_file_name(run_number, file_ext=""): polaris_old_name = "POL" polaris_new_name = "POLARIS" first_run_new_name = 96912 @@ -114,7 +114,7 @@ class Polaris(AbstractInst): prefix = polaris_new_name if use_new_name else polaris_old_name - return prefix + str(run_number) + return prefix + str(run_number) + file_ext def _get_input_batching_mode(self): return self._inst_settings.input_mode diff --git a/scripts/Diffraction/isis_powder/routines/common.py b/scripts/Diffraction/isis_powder/routines/common.py index 113b6cbe6d4..356ba007629 100644 --- a/scripts/Diffraction/isis_powder/routines/common.py +++ b/scripts/Diffraction/isis_powder/routines/common.py @@ -596,6 +596,7 @@ def _load_raw_files(run_number_string, instrument, file_ext=None): :return: A list of loaded workspaces """ run_number_list = generate_run_numbers(run_number_string=run_number_string) + file_ext = "" if file_ext is None else file_ext load_raw_ws = _load_list_of_files(run_number_list, instrument, file_ext=file_ext) return load_raw_ws @@ -613,8 +614,7 @@ def _load_list_of_files(run_numbers_list, instrument, file_ext=None): _check_load_range(list_of_runs_to_load=run_numbers_list) for run_number in run_numbers_list: - file_name = instrument._generate_input_file_name(run_number=run_number) - file_name = file_name + str(file_ext) if file_ext else file_name + file_name = instrument._generate_input_file_name(run_number=run_number, file_ext=file_ext) read_ws = mantid.Load(Filename=file_name) read_ws_list.append(mantid.RenameWorkspace(InputWorkspace=read_ws, OutputWorkspace=file_name)) diff --git a/scripts/Diffraction/isis_powder/test/ISISPowderCommonTest.py b/scripts/Diffraction/isis_powder/test/ISISPowderCommonTest.py index 6344f40b9bf..51f714a0ade 100644 --- a/scripts/Diffraction/isis_powder/test/ISISPowderCommonTest.py +++ b/scripts/Diffraction/isis_powder/test/ISISPowderCommonTest.py @@ -571,9 +571,9 @@ class ISISPowderMockInst(object): return ISISPowderMockRunDetails(file_ext=self._file_ext) @staticmethod - def _generate_input_file_name(run_number): + def _generate_input_file_name(run_number, file_ext=""): # Mantid will automatically convert this into either POL or POLARIS - return "POL" + str(run_number) + return "POL" + str(run_number) + file_ext @staticmethod def _normalise_ws_current(ws_to_correct, **_): -- GitLab