changes to macos misbehaving
This commit is contained in:
61
main.py
61
main.py
@@ -23,8 +23,10 @@ from datetime import datetime
|
|||||||
from multiprocessing import Process, current_process, freeze_support, Manager
|
from multiprocessing import Process, current_process, freeze_support, Manager
|
||||||
|
|
||||||
# External library imports
|
# External library imports
|
||||||
|
import mne
|
||||||
import psutil
|
import psutil
|
||||||
import requests
|
import requests
|
||||||
|
from mne.preprocessing.nirs import source_detector_distances
|
||||||
from PySide6.QtWidgets import (
|
from PySide6.QtWidgets import (
|
||||||
QApplication, QWidget, QMessageBox, QVBoxLayout, QHBoxLayout, QTextEdit, QScrollArea, QComboBox, QGridLayout,
|
QApplication, QWidget, QMessageBox, QVBoxLayout, QHBoxLayout, QTextEdit, QScrollArea, QComboBox, QGridLayout,
|
||||||
QPushButton, QMainWindow, QFileDialog, QLabel, QLineEdit, QFrame, QSizePolicy, QGroupBox
|
QPushButton, QMainWindow, QFileDialog, QLabel, QLineEdit, QFrame, QSizePolicy, QGroupBox
|
||||||
@@ -1172,7 +1174,7 @@ class MainApplication(QMainWindow):
|
|||||||
Full Path: {file_path}
|
Full Path: {file_path}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if "Error" in snirf_info:
|
if snirf_info is None:
|
||||||
info += f"\nSNIRF Metadata could not be loaded: {snirf_info['Error']}"
|
info += f"\nSNIRF Metadata could not be loaded: {snirf_info['Error']}"
|
||||||
else:
|
else:
|
||||||
info += "\nSNIRF Metadata:\n"
|
info += "\nSNIRF Metadata:\n"
|
||||||
@@ -1544,37 +1546,44 @@ class MainApplication(QMainWindow):
|
|||||||
return (normalize(v1) > normalize(v2)) - (normalize(v1) < normalize(v2))
|
return (normalize(v1) > normalize(v2)) - (normalize(v1) < normalize(v2))
|
||||||
|
|
||||||
def get_snirf_metadata_mne(self, file_name):
|
def get_snirf_metadata_mne(self, file_name):
|
||||||
import mne
|
|
||||||
from mne.preprocessing.nirs import source_detector_distances
|
|
||||||
|
|
||||||
raw = mne.io.read_raw_snirf(file_name, preload=True)
|
try:
|
||||||
|
import h5py
|
||||||
|
print("h5py version:", h5py.__version__)
|
||||||
|
except Exception as e:
|
||||||
|
print("Failed to import h5py:", e)
|
||||||
|
|
||||||
snirf_info = {}
|
try:
|
||||||
|
raw = mne.io.read_raw_snirf(file_name, preload=True)
|
||||||
|
|
||||||
# Measurement date
|
snirf_info = {}
|
||||||
snirf_info['Measurement Date'] = str(raw.info.get('meas_date'))
|
|
||||||
|
|
||||||
# Source-detector distances
|
# Measurement date
|
||||||
distances = source_detector_distances(raw.info)
|
snirf_info['Measurement Date'] = str(raw.info.get('meas_date'))
|
||||||
distance_info = []
|
|
||||||
for ch_name, dist in zip(raw.info['ch_names'], distances):
|
|
||||||
distance_info.append(f"{ch_name}: {dist:.4f} m")
|
|
||||||
snirf_info['Source-Detector Distances'] = distance_info
|
|
||||||
|
|
||||||
# Digitization points / optode positions
|
# Source-detector distances
|
||||||
dig = raw.info.get('dig', None)
|
distances = source_detector_distances(raw.info)
|
||||||
if dig is not None:
|
distance_info = []
|
||||||
dig_info = []
|
for ch_name, dist in zip(raw.info['ch_names'], distances):
|
||||||
for point in dig:
|
distance_info.append(f"{ch_name}: {dist:.4f} m")
|
||||||
kind = point['kind']
|
snirf_info['Source-Detector Distances'] = distance_info
|
||||||
ident = point['ident']
|
|
||||||
coord = point['r']
|
|
||||||
dig_info.append(f"Kind: {kind}, ID: {ident}, Coord: {coord}")
|
|
||||||
snirf_info['Digitization Points'] = dig_info
|
|
||||||
else:
|
|
||||||
snirf_info['Digitization Points'] = "Not found"
|
|
||||||
|
|
||||||
return snirf_info
|
# Digitization points / optode positions
|
||||||
|
dig = raw.info.get('dig', None)
|
||||||
|
if dig is not None:
|
||||||
|
dig_info = []
|
||||||
|
for point in dig:
|
||||||
|
kind = point['kind']
|
||||||
|
ident = point['ident']
|
||||||
|
coord = point['r']
|
||||||
|
dig_info.append(f"Kind: {kind}, ID: {ident}, Coord: {coord}")
|
||||||
|
snirf_info['Digitization Points'] = dig_info
|
||||||
|
else:
|
||||||
|
snirf_info['Digitization Points'] = "Not found"
|
||||||
|
|
||||||
|
return snirf_info
|
||||||
|
except:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def closeEvent(self, event):
|
def closeEvent(self, event):
|
||||||
|
|||||||
Reference in New Issue
Block a user