Skip to content

Обзор библиотеки Libspectrum

О библиотеке

Libspectrum - это Python библиотека для работы со спектрометром через USB интерфейс. Предоставляет инструменты для получения, обработки и анализа спектральных данных.

📚 API

Полное описание API доступно в документации API.

💻 Поддержка платформ

Статус поддержки

ОС Статус Реализация USB-слоя
Windows ✅ Полная поддержка Python (ftd2xx)
Linux (Ubuntu) ✅ Поддержка C++ (libftdi)
macOS ❌ Не поддерживается -

Для наилучшей производительности и стабильности рекомендуется использовать Windows

Ограничения Linux

При работе на Linux возможны ограничения при считывании большого количества кадров:

  • ⚠️ Возможны таймауты при больших объемах данных
  • 📦 Рекомендуется считывать данные батч-пакетами
  • 🔄 Или использовать неблокирующий режим чтения

Подробнее: Платформенные ограничения

🚀 Быстрый старт

from pyspectrum import Spectrometer

# Создаем объект спектрометра
spectrometer = Spectrometer()

# Настраиваем параметры
spectrometer.set_config(
    exposure=100,  # время экспозиции в мс
    n_times=10,    # количество снимаемых кадров
    wavelength_calibration_path="calibration.json",  
    dark_signal_path="dark.pkl"  
)

# Измеряем темновой сигнал (с закрытым отверстием)
spectrometer.read_dark_signal()

# Получаем спектр
spectrum = spectrometer.read()

# Работаем с данными
print(f"Размерность данных: {spectrum.shape}")
print(f"Длины волн: {spectrum.wavelength}")
print(f"Интенсивности: {spectrum.intensity}")

# Сохраняем результаты
spectrum.save("measurement.pkl")

📖 Подробный гайд по использованию

Подробно описываются все read методы, предоставляемые библиотекой и приводятся примеры использования.

📖 Гайд по использованию

📊 Работа с данными

Data

  • 📥 Сырые данные с устройства
  • 🔢 Базовые математические операции

Spectrum

  • 📈 Обработанные данные
  • 📏 Привязка к длинам волн

Примеры операций

# Вычитание спектров
result = spectrum1 - spectrum2

# Усреднение по времени
average = spectrum[:5] * 0.2  

⚙️ Конфигурация

Параметр Описание Тип
exposure Время экспозиции (мс) int
n_times Количество измерений int
dark_signal_path Путь к темновому сигналу str
wavelength_calibration_path Путь к калибровке длин волн str

🔧 Низкоуровневый доступ

UsbDevice

При стандартной работе прямое использование UsbDevice не требуется.

Для низкоуровневого взаимодействия см. документацию UsbDevice