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