# -*- coding: utf-8 -*-
# Authors: Victor Férat <victor.ferat@live.fr>
#
# License: BSD (3-clause)
import struct
import numpy as np
[docs]def read_lf(filename):
"""Read Cartool leadfield matrix.
Parameters
----------
filename : str
The lf file to read.
Returns
-------
leadfield_matrix : ndarray, shape (n_channels, n_sources, 3)
the leadfield matrix.
"""
with open(filename, 'rb') as f:
byte = f.read(4)
number_of_electrodes = struct.unpack('i', byte)[0]
byte = f.read(4)
number_of_solution_points = struct.unpack('i', byte)[0]
buf = f.read(number_of_electrodes * number_of_solution_points*8)
data = np.frombuffer(buf, dtype=np.double)
number_of_points = int(number_of_solution_points/3)
data = data.reshape(number_of_electrodes, number_of_points, 3)
return(leadfield_matrix)