Source code for pycartool.lf.leadfield

# -*- 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 (``.lf``) file. Parameters ---------- filename : str or file-like The leadfield file (``.lf``) to read. Returns ------- leadfield_matrix : `~numpy.array` The leadfield matrix. shape(``n_channels``, ``n_sources``, ``3``). """ 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) leadfield_matrix = data.reshape(number_of_electrodes, number_of_points, 3) return leadfield_matrix