From 6950fc596d364f8602b552d43ad7bee8981901f6 Mon Sep 17 00:00:00 2001 From: ahmedk <karim.ahmed@xfel.eu> Date: Mon, 19 Jun 2023 10:30:43 +0200 Subject: [PATCH] Skipp correction modules with no offset constant and error if missing for all modules --- notebooks/LPD/LPD_Correct_Fast.ipynb | 28 +++++++++++-------- ...LPD_retrieve_constants_precorrection.ipynb | 16 ++++++----- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/notebooks/LPD/LPD_Correct_Fast.ipynb b/notebooks/LPD/LPD_Correct_Fast.ipynb index e16d3dc2f..55bfa940d 100644 --- a/notebooks/LPD/LPD_Correct_Fast.ipynb +++ b/notebooks/LPD/LPD_Correct_Fast.ipynb @@ -311,20 +311,26 @@ "outputs": [], "source": [ "# Validate the constants availability and raise/warn accordingly.\n", - "missing_dark_modules = set()\n", "for mod, calibrations in const_data.items():\n", - " missing_dark_constants = {\"Offset\", \"BadPixelsDark\"} - set(calibrations)\n", - " missing_gain_constants = {\n", - " \"BadPixelsFF\", \"GainAmpMap\", \"FFMap\", \"RelativeGain\"} - set(calibrations)\n", - " if missing_dark_constants:\n", - " warning(f\"Dark constants {missing_dark_constants} are not available to correct {mod}.\") # noqa\n", - " missing_dark_modules.update(mod)\n", - " if missing_gain_constants:\n", + " missing_offset = {\"Offset\"} - set(calibrations)\n", + " warn_missing_constants = {\n", + " \"BadPixelsDark\", \"BadPixelsFF\", \"GainAmpMap\", \"FFMap\", \"RelativeGain\"} - set(calibrations)\n", + " if missing_offset:\n", + " warning(f\"Offset constant is not available to correct {mod}\") # noqa\n", + " karabo_da.remove(mod)\n", + " if warn_missing_constants:\n", " warning(f\"Gain constants {missing_gain_constants} were not retrieved for {mod}\")\n", - " if calibrations[\"BadPixelsDark\"].dtype != np.uint32: # Old LPD constants are stored as float32.\n", + " if (\n", + " calibrations.get(\"BadPixelsDark\") and\n", + " calibrations[\"BadPixelsDark\"].dtype != np.uint32\n", + " ): # Old LPD constants are stored as float32.\n", " calibrations[\"BadPixelsDark\"] = calibrations[\"BadPixelsDark\"].astype(np.uint32, copy=False)\n", - "if missing_dark_modules == set(karabo_da):\n", - " raise ValueError(f\"Dark constants are missing for all modules {karabo_da}\")\n", + "if not karabo_da: # Offsets are missing for all modules.\n", + " raise Exception(\"Could not find offset constants for all modules, will not correct data.\")\n", + "\n", + "# Remove skipped correction modules from data_to_process\n", + "data_to_process = [(mod, in_f, out_f) for mod, in_f, out_f in data_to_process if mod in [karabo_da]]\n", + "\n", "total_time = perf_counter() - start\n", "print(f'{total_time:.1f}s')" ] diff --git a/notebooks/LPD/LPD_retrieve_constants_precorrection.ipynb b/notebooks/LPD/LPD_retrieve_constants_precorrection.ipynb index cc1df118b..d0a8bbcae 100644 --- a/notebooks/LPD/LPD_retrieve_constants_precorrection.ipynb +++ b/notebooks/LPD/LPD_retrieve_constants_precorrection.ipynb @@ -144,14 +144,16 @@ "\n", "# Validate the constants availability and raise/warn correspondingly. \n", "for mod, ccv_dict in lpd_cal_metadata.items():\n", - " \n", - " missing_dark_constants = {\"Offset\", \"BadPixelsDark\"} - set(ccv_dict)\n", - " missing_gain_constants = {\n", - " \"BadPixelsFF\", \"GainAmpMap\", \"FFMap\", \"RelativeGain\"} - set(ccv_dict)\n", - " if missing_dark_constants:\n", - " warning(f\"Dark constants {missing_dark_constants} are not available to correct {mod}\") # noqa\n", - " if missing_gain_constants:\n", + " missing_offset = {\"Offset\"} - set(ccv_dict)\n", + " warn_missing_constants = {\n", + " \"BadPixelsDark\", \"BadPixelsFF\", \"GainAmpMap\", \"FFMap\", \"RelativeGain\"} - set(ccv_dict)\n", + " if missing_offset:\n", + " warning(f\"Offset constant is not available to correct {mod}\") # noqa\n", + " karabo_da.remove(mod)\n", + " if warn_missing_constants:\n", " warning(f\"Gain constants {missing_gain_constants} were not retrieved for {mod}\")\n", + "if not karabo_da: # Offsets are missing for all modules.\n", + " raise Exception(\"Could not find offset constants for all modules, will not correct data.\")\n", "\n", "for mod, ccv_dict in lpd_cal_metadata.items():\n", " mdata_dict = {\"constants\": dict()}\n", -- GitLab