diff --git a/notebooks/REMI/REMI_Digitize_and_Transform.ipynb b/notebooks/REMI/REMI_Digitize_and_Transform.ipynb index 59108f84e296ab790ee694ace47108ec223ce1ca..fc1ac99babe5143276436c865e383dc0b67237b4 100644 --- a/notebooks/REMI/REMI_Digitize_and_Transform.ipynb +++ b/notebooks/REMI/REMI_Digitize_and_Transform.ipynb @@ -905,7 +905,7 @@ "max_num_hits = 0.0\n", " \n", "for det_name in remi['detector'].keys():\n", - " agg_window = num_pulses // 1000\n", + " agg_window = num_pulses // min(1000, num_pulses)\n", " \n", " num_hits = np.isfinite(det_data[det_name]['hits']['x']).sum(axis=1)\n", " num_hits = num_hits[:(len(num_hits) // agg_window) * agg_window]\n", @@ -1154,6 +1154,7 @@ " \n", " for det_name in remi['detector']:\n", " cur_device_id = det_device_id.format(karabo_id=karabo_id, det_name=det_name.upper())\n", + " cur_max_hits = remi['detector'][det_name]['max_hits']\n", " \n", " cur_control_data = outp.create_control_source(cur_device_id)\n", " # Manually manipulate the file here, still creates the index properly.\n", @@ -1166,23 +1167,36 @@ " \n", " if save_raw_triggers:\n", " cur_fast_data.create_key('raw.triggers', triggers[pulse_mask],\n", + " maxshape=(None,) + triggers.shape[1:],\n", " chunks=tuple(chunks_triggers), **dataset_kwargs)\n", " \n", " if save_raw_edges:\n", " cur_fast_data.create_key('raw.edges', cur_data['edges'][pulse_mask],\n", - " chunks=tuple(chunks_edges), **dataset_kwargs)\n", + " maxshape=(None,) + cur_data['edges'].shape[1:],\n", + " chunks=tuple(chunks_edges if chunks_edges[-1] <= cur_max_hits\n", + " else chunks_edges[:-1] + [cur_max_hits]),\n", + " **dataset_kwargs)\n", " \n", " if save_raw_amplitudes:\n", " cur_fast_data.create_key('raw.amplitudes', cur_data['amplitudes'][pulse_mask],\n", - " chunks=tuple(chunks_amplitudes), **dataset_kwargs)\n", + " maxshape=(None,) + cur_data['amplitudes'].shape[1:],\n", + " chunks=tuple(chunks_amplitudes if chunks_amplitudes[-1] <= cur_max_hits\n", + " else chunks_amplitudes[:-1] + [cur_max_hits]),\n", + " **dataset_kwargs)\n", " \n", " if save_rec_signals:\n", " cur_fast_data.create_key('rec.signals', cur_data['signals'][pulse_mask],\n", - " chunks=tuple(chunks_signals), **dataset_kwargs)\n", + " maxshape=(None,) + cur_data['signals'].shape[1:],\n", + " chunks=tuple(chunks_signals if chunks_signals[-1] <= cur_max_hits\n", + " else chunks_signals[:-1] + [cur_max_hits]),\n", + " **dataset_kwargs)\n", " \n", " if save_rec_hits:\n", " cur_fast_data.create_key('rec.hits', cur_data['hits'][pulse_mask],\n", - " chunks=tuple(chunks_hits), **dataset_kwargs)\n", + " maxshape=(None,) + hits.shape[1:],\n", + " chunks=tuple(chunks_hits if chunks_hits[-1] <= cur_max_hits\n", + " else chunks_hits[:-1] + [cur_max_hits]),\n", + " **dataset_kwargs)\n", " \n", " cur_fast_data.create_index(raw=pulse_counts[train_mask], rec=pulse_counts[train_mask])\n", " \n",