diff --git a/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb b/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb index e731d46f66986cfb7b493632b7c6551d2ccc0c61..1ec74cdfb88c92c99aa8ccd02595d5169df73348 100644 --- a/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb +++ b/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb @@ -572,6 +572,21 @@ "## Retrieving constants" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_constants_and_update_metadata(cal_data, main_metadata, constants):\n", + " try:\n", + " metadata = cal_data.metadata(constants)\n", + " for key, value in metadata.items():\n", + " main_metadata.setdefault(key, {}).update(value)\n", + " except CalCatError as e: # TODO: replace when API errors are improved.\n", + " warning(f\"CalCatError: {e}\")" + ] + }, { "cell_type": "code", "execution_count": null, @@ -599,24 +614,21 @@ "dark_constants = [\"Offset\", \"Noise\", \"BadPixelsDark\"]\n", "if not gain_mode: # Adaptive gain\n", " dark_constants.append(\"ThresholdsDark\")\n", - "gain_constants = []\n", + "\n", + "agipd_metadata = agipd_cal.metadata(dark_constants)\n", + "\n", + "agipd_cal.gain_mode = None # gain_mode is not used for gain constants\n", + "pc_constants, ff_constants = [], []\n", "if any(agipd_corr.pc_bools):\n", - " gain_constants += [\"SlopesPC\", \"BadPixelsPC\"]\n", + " pc_constants = [\"SlopesPC\", \"BadPixelsPC\"]\n", + " get_constants_and_update_metadata(\n", + " agipd_cal, agipd_metadata, pc_constants)\n", + "\n", "if agipd_corr.corr_bools.get('xray_corr'):\n", - " gain_constants += agipd_cal.illuminated_calibrations\n", + " ff_constants = agipd_cal.illuminated_calibrations\n", + " get_constants_and_update_metadata(\n", + " agipd_cal, agipd_metadata, ff_constants)\n", "\n", - "# First retrieve dark constants\n", - "agipd_metadata = agipd_cal.metadata(dark_constants)\n", - "if gain_constants:\n", - " # Then retrieve gain constants without\n", - " # using the `gain_mode` condition.\n", - " agipd_cal.gain_mode = None\n", - " try:\n", - " illum_metadata = agipd_cal.metadata(gain_constants)\n", - " for key, value in illum_metadata.items():\n", - " agipd_metadata.setdefault(key, {}).update(value)\n", - " except CalCatError as e: # TODO: replace when API errors are improved.\n", - " warning(f\"CalCatError: {e}\")\n", "step_timer.done_step(\"Constants were retrieved in\")\n", "\n", "print(\"Preparing constants (\"\n", @@ -649,7 +661,7 @@ " karabo_da.drop(da)\n", " modules.drop(mod)\n", "\n", - " warn_missing_constants = set(dark_constants + gain_constants)\n", + " warn_missing_constants = set(dark_constants + pc_constants + ff_constants)\n", " warn_missing_constants -= error_missing_constants\n", " warn_missing_constants -= set(calibrations)\n", " if warn_missing_constants:\n",