diff --git a/docs/development/how_to_write_xfel_calibrate_notebook_NBC.ipynb b/docs/development/how_to_write_xfel_calibrate_notebook_NBC.ipynb index 62ae6c8ed5d5f3a307f295b163ff0cf57f01a0e6..608689c65f74eb2d0e20b649db712062552bafbf 100644 --- a/docs/development/how_to_write_xfel_calibrate_notebook_NBC.ipynb +++ b/docs/development/how_to_write_xfel_calibrate_notebook_NBC.ipynb @@ -19,7 +19,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -56,7 +56,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -106,14 +106,14 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "The available source to correct for HED_IA1_EPX100-1 are ['HED_IA1_EPX100-1/DET/RECEIVER', 'HED_IA1_EPX100-1/DET/RECEIVER:daqOutput', 'HED_IA1_EPX100-1/DET/CONTROL']\n" + "The available source to correct for HED_IA1_EPX100-1 are ['HED_IA1_EPX100-1/DET/CONTROL', 'HED_IA1_EPX100-1/DET/RECEIVER', 'HED_IA1_EPX100-1/DET/RECEIVER:daqOutput']\n" ] } ], @@ -153,7 +153,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -188,7 +188,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -232,7 +232,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -240,7 +240,7 @@ "output_type": "stream", "text": [ "Number of trains to correct is 1000\n", - "Correcting data: 1.0 s\n" + "Correcting data: 0.4 s\n" ] } ], @@ -275,14 +275,14 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Writing corrected data: 1.2 s\n" + "Writing corrected data: 0.5 s\n" ] } ], @@ -294,15 +294,15 @@ "image_counts = run_dc[instrument_source, \"data.image.pixels\"].data_counts(labelled=False)\n", "\n", "step_timer.start()\n", - "\n", + "raw_file = run_dc.files[0] # FileAccess object\n", "with DataFile(out_file, \"w\") as ofile:\n", " # Create INDEX datasets.\n", - " ofile.create_index(run_dc.train_ids, from_file=run_dc.files[0])\n", + " ofile.create_index(run_dc.train_ids, from_file=raw_file)\n", "\n", " # Create METDATA datasets\n", " ofile.create_metadata(\n", " like=run_dc,\n", - " sequence=run_dc.run_metadata()[\"sequenceNumber\"],\n", + " sequence=raw_file.sequence,\n", " instrument_channels=(f\"{instrument_source}/data\",)\n", " )\n", " # Create Instrument section to later add corrected datasets.\n", @@ -327,7 +327,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -374,7 +374,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.8.11" }, "orig_nbformat": 4, "vscode": { diff --git a/docs/development/how_to_write_xfel_calibrate_notebook_NBC.md b/docs/development/how_to_write_xfel_calibrate_notebook_NBC.md index dd050d28cec558eea556468264d54a946912fcd5..f4e2c1f60418e28a3c85e13e4bb7852febe2da49 100644 --- a/docs/development/how_to_write_xfel_calibrate_notebook_NBC.md +++ b/docs/development/how_to_write_xfel_calibrate_notebook_NBC.md @@ -100,7 +100,7 @@ print(f"The available source to correct for {karabo_id} are {list(run_dc.all_sou step_timer = StepTimer() ``` - The available source to correct for HED_IA1_EPX100-1 are ['HED_IA1_EPX100-1/DET/RECEIVER', 'HED_IA1_EPX100-1/DET/RECEIVER:daqOutput', 'HED_IA1_EPX100-1/DET/CONTROL'] + The available source to correct for HED_IA1_EPX100-1 are ['HED_IA1_EPX100-1/DET/CONTROL', 'HED_IA1_EPX100-1/DET/RECEIVER', 'HED_IA1_EPX100-1/DET/RECEIVER:daqOutput'] ## Read operating conditions from RAW data. @@ -191,7 +191,7 @@ step_timer.done_step('Correcting data') ``` Number of trains to correct is 1000 - Correcting data: 1.0 s + Correcting data: 0.4 s ## Writing corrected data @@ -205,15 +205,15 @@ instrument_source = "HED_IA1_EPX100-1/DET/RECEIVER:daqOutput" image_counts = run_dc[instrument_source, "data.image.pixels"].data_counts(labelled=False) step_timer.start() - +raw_file = run_dc.files[0] # FileAccess object with DataFile(out_file, "w") as ofile: # Create INDEX datasets. - ofile.create_index(run_dc.train_ids, from_file=run_dc.files[0]) + ofile.create_index(run_dc.train_ids, from_file=raw_file) # Create METDATA datasets ofile.create_metadata( like=run_dc, - sequence=run_dc.run_metadata()["sequenceNumber"], + sequence=raw_file.sequence, instrument_channels=(f"{instrument_source}/data",) ) # Create Instrument section to later add corrected datasets. @@ -228,7 +228,7 @@ with DataFile(out_file, "w") as ofile: step_timer.done_step('Writing corrected data') ``` - Writing corrected data: 1.2 s + Writing corrected data: 0.5 s # Plotting results @@ -249,7 +249,5 @@ plt.show() ``` -  - diff --git a/notebooks/Gotthard2/Correction_Gotthard2_NBC.ipynb b/notebooks/Gotthard2/Correction_Gotthard2_NBC.ipynb index ec806125d14ad6c1eb0171c5d4d862491c9ab7ee..b7424cb07c6e32c83bb24a08b42d7bcb48073174 100644 --- a/notebooks/Gotthard2/Correction_Gotthard2_NBC.ipynb +++ b/notebooks/Gotthard2/Correction_Gotthard2_NBC.ipynb @@ -122,8 +122,8 @@ "from cal_tools.step_timing import StepTimer\n", "from cal_tools.tools import (\n", " calcat_creation_time,\n", - " write_constants_fragment,\n", " map_seq_files,\n", + " write_constants_fragment,\n", ")\n", "from XFELDetAna.plotting.heatmap import heatmapPlot\n", "\n", @@ -486,12 +486,13 @@ " else: # \"50um\"\n", " data_stored, gain_stored, mask_stored = data_corr, gain, mask\n", "\n", + " seq_file = dc.files[0] # FileAccess\n", " with DataFile(out_file, \"w\") as ofile:\n", " # Create INDEX datasets.\n", - " ofile.create_index(dc.train_ids, from_file=dc.files[0])\n", + " ofile.create_index(dc.train_ids, from_file=seq_file)\n", " ofile.create_metadata(\n", " like=dc,\n", - " sequence=dc.run_metadata()[\"sequenceNumber\"],\n", + " sequence=seq_file.sequence,\n", " instrument_channels=(f\"{corr_data_source}/data\",)\n", " )\n", "\n", diff --git a/notebooks/Jungfrau/Jungfrau_Gain_Correct_and_Verify_NBC.ipynb b/notebooks/Jungfrau/Jungfrau_Gain_Correct_and_Verify_NBC.ipynb index ee81b4a8da982b1a1325f618f9057ed112ae144a..d9d393e879ce49c017c78f88211d1dfe47fdff5c 100644 --- a/notebooks/Jungfrau/Jungfrau_Gain_Correct_and_Verify_NBC.ipynb +++ b/notebooks/Jungfrau/Jungfrau_Gain_Correct_and_Verify_NBC.ipynb @@ -686,9 +686,10 @@ " # Create CORR files and add corrected data sections.\n", " image_counts = seq_dc[instrument_src_kda, \"data.adc\"].data_counts(labelled=False)\n", "\n", + " seq_file = seq_dc.files[0] # FileAccess\n", " with DataFile(out_file, 'w') as outp_file:\n", " # Create INDEX datasets.\n", - " outp_file.create_index(seq_dc.train_ids, from_file=seq_dc.files[0])\n", + " outp_file.create_index(seq_dc.train_ids, from_file=seq_file)\n", "\n", " # Create Instrument section to later add corrected datasets.\n", " outp_source = outp_file.create_instrument_source(instrument_src_kda)\n", @@ -723,7 +724,7 @@ " # Create METDATA datasets\n", " outp_file.create_metadata(\n", " like=seq_dc,\n", - " sequence=seq_dc.run_metadata()[\"sequenceNumber\"],\n", + " sequence=seq_file.sequence,\n", " )\n", "\n", " step_timer.done_step(f'Saving data time.')\n", diff --git a/notebooks/ePix100/Correction_ePix100_NBC.ipynb b/notebooks/ePix100/Correction_ePix100_NBC.ipynb index bc3a719f39ae39c8a6e2a1228cb51ab48740d75c..8c229d36e30483b2e05c362c977ea11ff1a91ea7 100644 --- a/notebooks/ePix100/Correction_ePix100_NBC.ipynb +++ b/notebooks/ePix100/Correction_ePix100_NBC.ipynb @@ -602,13 +602,13 @@ " # Write corrected data.\n", " with DataFile(out_file, \"w\") as ofile:\n", " dataset_chunk = ((chunk_size_idim,) + oshape[1:]) # e.g. (1, pixels_x, pixels_y) \n", - "\n", + " seq_file = seq_dc.files[0] # FileAccess\n", " # Create INDEX datasets.\n", " ofile.create_index(seq_dc.train_ids, from_file=seq_dc.files[0])\n", " # Create METDATA datasets\n", " ofile.create_metadata(\n", " like=seq_dc,\n", - " sequence=seq_dc.run_metadata()[\"sequenceNumber\"],\n", + " sequence=seq_file.sequence,\n", " instrument_channels=(f'{instrument_src}/data',)\n", " )\n", " # Create Instrument section to later add corrected datasets.\n", diff --git a/notebooks/pnCCD/Correct_pnCCD_NBC.ipynb b/notebooks/pnCCD/Correct_pnCCD_NBC.ipynb index 3306fa388ece967b786ac14afacfafb813553755..ece51d23ea9ae3d9d61985df6040881beb56ebc1 100644 --- a/notebooks/pnCCD/Correct_pnCCD_NBC.ipynb +++ b/notebooks/pnCCD/Correct_pnCCD_NBC.ipynb @@ -613,13 +613,13 @@ " image_counts = seq_dc[instrument_src, \"data.image\"].data_counts(labelled=False)\n", " dataset_chunk = ((chunk_size_idim,) + corr_arrays[\"pixels\"].shape[1:]) # e.g. (1, pixels_x, pixels_y) \n", " with DataFile(out_file, 'w') as ofile:\n", - "\n", + " seq_file = seq_dc.files[0]\n", " # Create INDEX datasets.\n", - " ofile.create_index(seq_dc.train_ids, from_file=seq_dc.files[0])\n", + " ofile.create_index(seq_dc.train_ids, from_file=seq_file)\n", " # Create METDATA datasets\n", " ofile.create_metadata(\n", " like=seq_dc,\n", - " sequence=seq_dc.run_metadata()[\"sequenceNumber\"],\n", + " sequence=seq_file.sequence,\n", " instrument_channels=(f\"{instrument_src}/data\",)\n", " )\n", "\n", diff --git a/src/cal_tools/tools.py b/src/cal_tools/tools.py index c72a729bb59a2d0ef14b4c99b2785639b016fd08..d9e5e5f9e420a41dfff546b38e95a5fbd81c7bf8 100644 --- a/src/cal_tools/tools.py +++ b/src/cal_tools/tools.py @@ -1065,20 +1065,3 @@ def raw_data_location_string(proposal: str, runs: List[int]): " a preceding 'p'. Example: 'p900203'") return f"proposal:{proposal} runs:{' '.join(map(str, runs))}" - - -def extract_sequence_number(f: str): - """Extract sequence number from input. - Args: - f (str): EXDF data filename. - e.g. /gpfs/exfel/exp/CALLAB/202130/p900203/raw/r9046/RAW-R9046-EPIX01-S00000.h5 - Raises: - ValueError: Sxxxxx is missing from input file - Returns: - int: sequence number. - """ - match = re.search(r'-S(\d+)', f) - if match: - return int(match.group(1)) - else: - raise ValueError(f"No matching pattern for a sequence in the filename {f}.") \ No newline at end of file diff --git a/tests/test_cal_tools.py b/tests/test_cal_tools.py index 795d9ce97d40970321ec73d018938572d1be7708..577a82a4f57122b6153cd4ef92e5f548a424f1de 100644 --- a/tests/test_cal_tools.py +++ b/tests/test_cal_tools.py @@ -13,7 +13,6 @@ from cal_tools.plotting import show_processed_modules from cal_tools.tools import ( creation_date_file_metadata, creation_date_train_timestamp, - extract_sequence_number, get_dir_creation_date, get_from_db, get_pdu_from_db, @@ -582,14 +581,3 @@ def test_raise_raw_data_location_string(): with pytest.raises(ValueError): raw_data_location_string("900203", [9008, 9009, 9010]) - - -def test_extract_sequence_number(): - seq_num = extract_sequence_number( - "/gpfs/exfel/exp/CALLAB/202031/p900113/raw/r9983/RAW-R9983-AGIPD00-S00012.h5") - assert seq_num == 12 - - -def test_raise_extract_sequence_number(): - with pytest.raises(ValueError): - extract_sequence_number("/gpfs/exfel/exp/CALLAB/202031/p900113/raw/r9983")