Had immediate success with seeing live plots with offline tail tracking, thanks for great interface! However, I'm seeing a program hang when I click "Track video," regardless of output format:
> python -m stytra.offline.track_video
QSettings::value: Empty key passed
QSettings::value: Empty key passed
/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/numpy/lib/function_base.py:1519: RuntimeWarning: invalid value encountered in remainder
ddmod = mod(dd + pi, 2*pi) - pi
/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/numpy/lib/function_base.py:1520: RuntimeWarning: invalid value encountered in greater
_nx.copyto(ddmod, pi, where=(ddmod == -pi) & (dd > 0))
/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/numpy/lib/function_base.py:1522: RuntimeWarning: invalid value encountered in less
_nx.copyto(ph_correct, 0, where=abs(dd) < discont)
/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/numpy/lib/function_base.py:1519: RuntimeWarning: invalid value encountered in remainder
ddmod = mod(dd + pi, 2*pi) - pi
/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/numpy/lib/function_base.py:1520: RuntimeWarning: invalid value encountered in greater
_nx.copyto(ddmod, pi, where=(ddmod == -pi) & (dd > 0))
/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/numpy/lib/function_base.py:1522: RuntimeWarning: invalid value encountered in less
_nx.copyto(ph_correct, 0, where=abs(dd) < discont)
^C File "/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/stytra/gui/container_windows.py", line 194, in closeEvent
self.experiment.wrap_up()
File "/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/stytra/experiments/tracking_experiments.py", line 424, in wrap_up
super().wrap_up(*args, **kwargs)
File "/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/stytra/experiments/tracking_experiments.py", line 137, in wrap_up
self.camera.join()
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/process.py", line 140, in join
res = self._popen.wait(timeout)
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/popen_fork.py", line 48, in wait
return self.poll(os.WNOHANG if timeout == 0.0 else 0)
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/popen_fork.py", line 28, in poll
pid, sts = os.waitpid(self.pid, flag)
<class 'KeyboardInterrupt'>:
^CError in sys.excepthook:
Process camera:
Traceback (most recent call last):
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/popen_fork.py", line 28, in poll
pid, sts = os.waitpid(self.pid, flag)
KeyboardInterrupt
Original exception was:
Traceback (most recent call last):
File "/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/stytra/gui/container_windows.py", line 194, in closeEvent
self.experiment.wrap_up()
File "/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/stytra/experiments/tracking_experiments.py", line 424, in wrap_up
super().wrap_up(*args, **kwargs)
File "/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/stytra/experiments/tracking_experiments.py", line 137, in wrap_up
self.camera.join()
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/process.py", line 140, in join
res = self._popen.wait(timeout)
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/popen_fork.py", line 48, in wait
return self.poll(os.WNOHANG if timeout == 0.0 else 0)
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/popen_fork.py", line 28, in poll
pid, sts = os.waitpid(self.pid, flag)
KeyboardInterrupt
Traceback (most recent call last):
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
self.run()
File "/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/stytra/hardware/video/__init__.py", line 351, in run
time.sleep(extrat)
KeyboardInterrupt
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/process.py", line 300, in _bootstrap
util._exit_function()
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/util.py", line 337, in _exit_function
_run_finalizers()
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/util.py", line 277, in _run_finalizers
finalizer()
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/util.py", line 201, in __call__
res = self._callback(*self._args, **self._kwargs)
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/queues.py", line 192, in _finalize_join
thread.join()
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/threading.py", line 1044, in join
self._wait_for_tstate_lock()
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/threading.py", line 1060, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
KeyboardInterrupt
File "/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/pyqtgraph/__init__.py", line 312, in cleanup
if isinstance(o, QtGui.QGraphicsItem) and isQObjectAlive(o) and o.scene() is None:
<class 'ReferenceError'>: weakly-referenced object no longer exists
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
File "/nix/store/4ffsiqql2lf9jlysdcljzlhz8igph3gs-python3-3.7.5-env/lib/python3.7/site-packages/pyqtgraph/__init__.py", line 312, in cleanup
if isinstance(o, QtGui.QGraphicsItem) and isQObjectAlive(o) and o.scene() is None:
ReferenceError: weakly-referenced object no longer exists
^CError in atexit._run_exitfuncs:
Traceback (most recent call last):
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/util.py", line 277, in _run_finalizers
finalizer()
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/util.py", line 201, in __call__
res = self._callback(*self._args, **self._kwargs)
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/multiprocessing/queues.py", line 192, in _finalize_join
thread.join()
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/threading.py", line 1044, in join
self._wait_for_tstate_lock()
File "/nix/store/5dbidajmgrvskv7kj6bwrkza8szxkgar-python3-3.7.5/lib/python3.7/threading.py", line 1060, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
KeyboardInterrupt
Edit: The hang is still accurate, but I was wrong: csv and hdf5 files are created. The csv file looks good, but in the hdf5 file, I cannot open any of the data arrays, likely as the file was not closed properly
Edit 3: My video is 346548 frames, but the hdf5 & csv files are only 346507 frames--I wonder if the final 31 frames are being dropped?