You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Modify get_movie to display frames as they are collected (#121)
* Add `ClickDispatcher` architecture and setup one in `VideoStreamFrame`
* `ClickListener`: make `callback` optional and allow activating via `with` context
* Add `typing_extensions` as a dependency
* Move potential `typing_extensions` types to `instamatic._typing`
* Feature usefulness of new `instamatic._typing.Self`
* Exclude changes irrelevant to the `click_service` branch
* Add a custom `ClickEvent.__repr__`
* Move `instamatic.collections` to `instamatic._collections`
* `ClickListener`: call `callback` only after putting event in `self.queue`
* `_VS`: rename type variable to a more conventional `VideoStream_T`
* `typing_extensions`: uses typing if available so import directly, not via `instamatic._typing`
* `CameraSimu.get_movie`: convert into `Generator`
* `VideoStream.get_movie`: convert into `Generator`
* `VideoStream.get_movie`: Optimize thread release, remove unused event = best fps yet
* `VideoStream.get_movie`: Optimize thread release, remove unused event = best fps yet 2
* `TEMController.get_movie`: convert into `Generator`
* `ctrl.get_image`: fix `header_keys` could hold only 1 key as `str` not `tuple`
* `CalibMovieRate`: first draft of the movie delay calibration
* `TEMController.get_movie`: collect common metadata before the main loop for time precision
* `TEMController`: move ugly explicit `self.cam` check to a method decorator
* `CalibMovieDelays`: simplify and add multi-attempt mechanism
* `CalibMovieDelaysMapping`: add a common class for reading/writing mappings
* `CalibMovieDelaysMapping`: fix I/O, script, bugs, add custom `CalibError`
* `CameraServal.get_movie`: rewrite as generator, streamline by PIL->tifffile
* `CameraBase.get_movie`: rewrite as generator
* `CameraMerlin.get_movie`: rewrite as generator
* `showcase_movie.py`: Add a temp script to feature get_movie streaming feature
* `CameraServal.get_movie`: Actually replace previous implementation this time
* `CalibMovieDelays`: vastly simplify, do for specific exposure only
* `CalibMovieDelays`: fix documentation, warning criteria
* Register `instamatic.calibrate.calibrate_movie_delays` as script
* Fix bugs, typos
* Adapt `test_get_movie` to the new structure
* Add Daniel Tchoń to `CITATION.cff`
* Wrap generators in `try/finally` to correctly close them when not exhausted
* `calibrate_movie_delays.py`: Remove code block comments as requested
Co-authored-by: Stef Smeets <stefsmeets@users.noreply.github.com>
* `calibrate_movie_delays.py`: Remove code block comments as requestedUpdate src/instamatic/calibrate/calibrate_movie_delays.py
Co-authored-by: Stef Smeets <stefsmeets@users.noreply.github.com>
* `calibrate_movie_delays.py`: Remove code block comments as requested
Co-authored-by: Stef Smeets <stefsmeets@users.noreply.github.com>
* `calibrate_movie_delays.py`: Remove code block comments as requested
Co-authored-by: Stef Smeets <stefsmeets@users.noreply.github.com>
* `calibrate_movie_delays.py` reformat `parser.add_argument`
Co-authored-by: Stef Smeets <stefsmeets@users.noreply.github.com>
* `main_entry`: reformat `parser.add_argument` calls
* `CalibMovieDelaysMapping`: improve readability, docstrings as requested
* `CalibMovieDelaysMapping`: save calibrations to yaml instead of json
* `calibrate_movie_delays_live`: warn instead of raising `CalibWarning`
* `calibrate_movie_delays_live`: clear out dead code, improve docstrings, fix issues
* `calibrate_movie_delays_live`: allow passing empty `header_keys(_common)`
* `calibrate_movie_delays_live`: vastly improve/expand docstring
* `CalibMovieDelays`: add docstrings, raise if conditions not found
* `CalibMovieDelaysMapping` de/serialize self from/to a nice yaml list
---------
Co-authored-by: Stef Smeets <stefsmeets@users.noreply.github.com>
Program to calibrate the delays associated with `ctrl.get_movie` command.
221
+
222
+
Intuitively, collecting an N-frame movie with X-second exposure should take N*X seconds. However, the hardware specification and software implementation for each detector differ, leading to deviations. This calibration aims to take this effect into account and allow scheduling movies whose frame time better reflects the request.
0 commit comments