-
Notifications
You must be signed in to change notification settings - Fork 1
Add vds generation #86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: top-level-attributes
Are you sure you want to change the base?
Conversation
d1684f5 to
371e9a0
Compare
| bit_depth_image: AttrR[int] | ||
| compression: AttrRW[str] | ||
| trigger_mode: AttrR[str] | ||
| nimages: AttrR[int] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
May be better to get this out of OD.FP.frames?
GDYendell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks pretty good! Something I should have mentioned is that we need to create multiple virtual datasets. This should be easy enough, it will just need a bit of re-ordering to avoid repeating the calculations.
I think there should be a for loop over dataset_names (now passed in) inside the with File block where all creation of v_source and v_layout is done, with pre-computation of frame layouts done before if possible.
| create_interleave_vds( | ||
| path=Path(self.OD.file_path.get()), | ||
| prefix=self.OD.file_prefix.get(), | ||
| frame_count=self.detector.nimages.get(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should probably be OD.FP.frames
| prefix=self.OD.file_prefix.get(), | ||
| frame_count=self.detector.nimages.get(), | ||
| frames_per_block=self.OD.block_size.get(), | ||
| blocks_per_file=self.OD.FP.process_blocks_per_file.get(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
process_blocks_per_file needs adding to the EigerFrameProcessorPlugin
| frame_shape=( | ||
| self.detector.x_pixels_in_detector.get(), | ||
| self.detector.y_pixels_in_detector.get(), | ||
| ), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be OD.FP.data_dims_0/1. These probably don't change if it is in ROI mode.
| dtype=dtype, | ||
| ) | ||
|
|
||
| for file_writer_idx, n_frames in enumerate(frame_count_per_file_writer): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure that you need to iterate over file writer index and then its local file
index. I think it should just iterate over the global file index and the number of writers
only affects the stride of the layout slice.
Fixes #85
Requires DiamondLightSource/fastcs-odin#98