Source code for mesh2hrtf.Mesh2Input.EvaluationGrids.read_evaluation_grid

import os
import numpy as np
import pyfar as pf


[docs] def read_evaluation_grid(name, show=False): """ Read Mesh2HRTF evaluation grid. Parameters ---------- name : str Name of the folder containing the nodes of the evaluation grid in Nodes.txt show : bool, optional If ``True`` the points of the evaluation grid are plotted. The default is ``False``. Returns ------- coordinates : pyfar Coordinates The points of the evaluation grid as a pyfar Coordinates object """ # check if the grid exists if not os.path.isfile(os.path.join(name, "Nodes.txt")): raise ValueError(f"{os.path.join(name, 'Nodes.txt')} does not exist") # read the nodes with open(os.path.join(name, "Nodes.txt"), "r") as f_id: nodes = f_id.readlines() # get number of nodes N = int(nodes[0].strip()) points = np.zeros((N, 3)) # get points (first entry is node number) for nn in range(N): node = nodes[nn+1].strip().split(" ") points[nn, 0] = float(node[1]) points[nn, 1] = float(node[2]) points[nn, 2] = float(node[3]) # make coordinates object coordinates = pf.Coordinates(points[:, 0], points[:, 1], points[:, 2]) # plot and return if show: coordinates.show() return coordinates