Hi Jakub,
there is currently no example in the openCARP taking advantage of it. In Graz, we use the features to quickly get an impression, of what the ecg would look like for a given simulation.
As Axel pointed out, the documentation happens mainly in the source code. The entry point would actually be carputils/bin/ecgplotter
usage: ecgplotter
...
positional arguments:
input openCARP phie recovery files (.igb),
ECG recorder files (.xls) or,
General 12-Lead ecg files [header: t, I, II, III, aVR, aVL, aVF, V1-V6] (.csv), or
Leadfield files (.dat) - just data without header, or
Studio files [header: time, I, II, III, aVR, aVL, aVF, V1-V6] (.dat).
...
Some hints to get started in your case:
Forget about the input file formats and develop your own pipeline. As you are running bidomain simulations, you already know the point IDs of your extracellular potentials in the phie file associated with RA, LA, LL and V1-V6. Query for those potential traces after your simulation and collect them in an datadict = OrderedDict():
datadict['RA'] = data[?, :]
datadict['LA'] = data[?, :]
datadict['LL'] = data[?, :]
datadict['V1'] = data[?, :]
datadict['V2'] = data[?, :]
datadict['V3'] = data[?, :]
datadict['V4'] = data[?, :]
datadict['V5'] = data[?, :]
datadict['V6'] = data[?, :]
The time vector would need to be setup separately.
t = numpy.linspace(0, 1000, 1000) # this depends on your simulation parameters!
Subsequent processing using the functions of ecg.py can be freely assembled similarly to what is shown in the ecgplotter.
Cheers,
Toni