Сигнал чтения ошибки Pyedflib

У меня есть коллекция файлов EDF, содержащих данные сигнала ЭЭГ. я использую pyedflib для доступа к файлам, однако у меня часто возникают проблемы с чтением сигналов из некоторых файлов. В основном, есть ряд файлов, для которых я получаю массивы всех 0, когда пытаюсь прочитать значения сигнала. Дано:

def get_sig(fname):
  import pyedflib
  f=pyedflib.EdfReader(fname)
  file_dur=f.getFileDuration()
  fs=int(inFile.getSignalHeader(0)['sample_rate'])
  chan_names=f.getSignalLabels()
  #note... channel names and file duration are captured correctly

  sig=f.readSignal(4)
  return sig

Это возвращает массив длины 'file_dur' * 'fs', однако результатом является массив всех 0, и отображается следующее предупреждение:

read -1, less than 8965120 requested!!!

У кого-нибудь есть идеи, что может вызвать такую ​​проблему? К сожалению, я не могу поделиться какими-либо данными, так как это PHI, но если есть какая-либо дополнительная информация, которая может быть полезна, просто спросите.

Пара дополнительных заметок:

  1. Я также пытался sig=f.readSignal(4,start=0,n=100) чтобы убедиться, что это не проблема с началом файла или чем-то в этом роде, и он возвращает массив всех 0 с длиной 100.
  2. Значения верны, когда я проверяю их в Matlab (т. Е. Не ноль).
  3. Кажется, проблема связана с файлом (некоторые обрабатываются правильно, а другие нет), однако я не могу найти никаких различий между файлами, кроме фактических значений сигнала
  4. Индекс 4 используется в f.readSignal(4) не полностью прописан в моем полном приложении, это просто для демонстрационных целей (в моих файлах примеров 4 соответствует каналу EEG F4).

Спасибо!

PS Я добавляю это и в вики pyedflib.

1 ответ

Оказывается, что pyedflib не очищает между файлами, если используется один и тот же дескриптор. Приведенный выше код будет работать нормально, однако, когда он реализован как цикл внутри программы драйвера, я явно не закрывал дескриптор файла pyedflib. Как только я добавил f.close() после каждого файла все работало нормально.

Другие вопросы по тегам