Source code for reda.exporters.syscal
"""Exporter functions for IRIS Instruments Syscal Pro
"""
def _syscal_write_electrode_coords(fid, spacing, N):
"""helper function that writes out electrode positions to a file descriptor
Parameters
----------
fid: file descriptor
data is written here
spacing: float
spacing of electrodes
N: int
number of electrodes
"""
fid.write('# X Y Z\n')
for i in range(0, N):
fid.write('{0} {1} {2} {3}\n'.format(i + 1, i * spacing, 0, 0))
def _syscal_write_quadpoles(fid, quadpoles):
"""helper function that writes the actual measurement configurations to a
file descriptor.
Parameters
----------
fid: file descriptor
data is written here
quadpoles: numpy.ndarray
measurement configurations
"""
fid.write('# A B M N\n')
for nr, quadpole in enumerate(quadpoles):
fid.write(
'{0} {1} {2} {3} {4}\n'.format(
nr, quadpole[0], quadpole[1], quadpole[2], quadpole[3]))
[docs]
def syscal_save_to_config_txt(filename, configs, spacing=1):
"""Write configurations to a Syscal ascii file that can be read by the
Electre Pro program.
Parameters
----------
filename: string
output filename
configs: numpy.ndarray
Nx4 array with measurement configurations A-B-M-N
"""
print('Number of measurements: ', configs.shape[0])
number_of_electrodes = configs.max().astype(int)
with open(filename, 'w') as fid:
_syscal_write_electrode_coords(fid, spacing, number_of_electrodes)
_syscal_write_quadpoles(fid, configs.astype(int))