-
-
Notifications
You must be signed in to change notification settings - Fork 90
Closed
Description
spectrometer and system information
- model: USB2000
- operating system: Debian Bullseye 32bit
- python version: Python 3.9.2
- python-seabreeze version: current master
- installed-via: pip
current problem
instrument must be read three times before getting intensities
steps to reproduce
Here is my code, I know it is ugly...
import matplotlib.pyplot as plt
import sys
import time
import seabreeze
seabreeze.use('pyseabreeze')
import seabreeze.spectrometers as sb
from seabreeze.spectrometers import Spectrometer
spec = Spectrometer.from_first_available()
spec.integration_time_micros(20000)
w=spec.wavelengths()
continua = 1
while continua:
try:
continua = 0
i=spec.intensities()
except:
print(sys.exc_info()[0], 'occurred')
continua = 1
plt.plot(w,i)
plt.show()minimal code example and error (very helpful if available)
script output:
<class 'usb.core.USBError'> occurred
<class 'ValueError'> occurred
detailed output (line-by-line in python console)
FIRST CALL
>>> i=spec.intensities()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/marco/.local/lib/python3.9/site-packages/seabreeze/spectrometers.py", line 212, in intensities
out = self._dev.f.spectrometer.get_intensities()
File "/home/marco/.local/lib/python3.9/site-packages/seabreeze/pyseabreeze/features/spectrometer.py", line 184, in get_intensities
tmp = self._get_spectrum_raw()
File "/home/marco/.local/lib/python3.9/site-packages/seabreeze/pyseabreeze/features/spectrometer.py", line 168, in _get_spectrum_raw
self.protocol.receive(
File "/home/marco/.local/lib/python3.9/site-packages/seabreeze/pyseabreeze/protocol.py", line 110, in receive
return self.transport.read(
File "/home/marco/.local/lib/python3.9/site-packages/seabreeze/pyseabreeze/transport.py", line 194, in read
ret: bytes = self._device.pyusb_device.read(
File "/usr/lib/python3/dist-packages/usb/core.py", line 983, in read
ret = fn(
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 828, in bulk_read
return self.__read(self.lib.libusb_bulk_transfer,
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 936, in __read
_check(retval)
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 595, in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 75] OverflowSECOND CALL
>>> i=spec.intensities()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/marco/.local/lib/python3.9/site-packages/seabreeze/spectrometers.py", line 212, in intensities
out = self._dev.f.spectrometer.get_intensities()
File "/home/marco/.local/lib/python3.9/site-packages/seabreeze/pyseabreeze/features/spectrometer.py", line 184, in get_intensities
tmp = self._get_spectrum_raw()
File "/home/marco/.local/lib/python3.9/site-packages/seabreeze/pyseabreeze/features/spectrometer.py", line 167, in _get_spectrum_raw
tmp[:] = bytearray(
ValueError: could not broadcast input array from shape (65,) into shape (4097,)
THIRD CALL (wow, it works)
>>> i=spec.intensities()
>>> i
array([ 0., 112., 113., ..., 121., 123., 120.])
Reactions are currently unavailable