54static const QString NA = QStringLiteral(
"n/a");
56QString naToEmpty(
const QString& s)
58 return (s == NA) ? QString() : s;
71 QList<BidsElectrode> electrodes;
72 electrodes.reserve(rawRows.size());
74 for(
const auto& row : rawRows) {
76 elec.
name = row.value(QStringLiteral(
"name"));
77 elec.
x = row.value(QStringLiteral(
"x"), NA);
78 elec.
y = row.value(QStringLiteral(
"y"), NA);
79 elec.
z = row.value(QStringLiteral(
"z"), NA);
80 elec.
size = naToEmpty(row.value(QStringLiteral(
"size")));
81 elec.
type = naToEmpty(row.value(QStringLiteral(
"type")));
82 elec.
material = naToEmpty(row.value(QStringLiteral(
"material")));
83 elec.
impedance = naToEmpty(row.value(QStringLiteral(
"impedance")));
84 electrodes.append(elec);
93 const QList<BidsElectrode>& electrodes)
95 QStringList headers = {
96 QStringLiteral(
"name"),
100 QStringLiteral(
"size"),
101 QStringLiteral(
"type"),
102 QStringLiteral(
"material"),
103 QStringLiteral(
"impedance"),
106 QList<BidsTsvRow> rows;
107 rows.reserve(electrodes.size());
109 for(
const auto& elec : electrodes) {
111 row[QStringLiteral(
"name")] = elec.name;
112 row[QStringLiteral(
"x")] = elec.x;
113 row[QStringLiteral(
"y")] = elec.y;
114 row[QStringLiteral(
"z")] = elec.z;
115 row[QStringLiteral(
"size")] = elec.size;
116 row[QStringLiteral(
"type")] = elec.type;
117 row[QStringLiteral(
"material")] = elec.material;
118 row[QStringLiteral(
"impedance")] = elec.impedance;
BidsTsv class declaration — generic BIDS TSV file reading and writing.
BidsElectrode struct — electrode position from *_electrodes.tsv.
BIDS dataset reading, writing, path construction, and sidecar metadata handling for iEEG/EEG/MEG.
QMap< QString, QString > BidsTsvRow
Electrode position record corresponding to one row in *_electrodes.tsv.
static bool writeTsv(const QString &sFilePath, const QList< BidsElectrode > &electrodes)
Write a BIDS *_electrodes.tsv file.
static QList< BidsElectrode > readTsv(const QString &sFilePath)
Read a BIDS *_electrodes.tsv file.
static QList< BidsTsvRow > readTsv(const QString &sFilePath, QStringList &headers)
static bool writeTsv(const QString &sFilePath, const QStringList &headers, const QList< BidsTsvRow > &rows)