maryam: improve error handling some, dont abort on invalid file

This commit is contained in:
Carl Philipp Klemm 2023-03-09 15:15:07 +01:00
parent 13dfb9b1f0
commit 01b44309b7

View File

@ -22,22 +22,29 @@ int main(int argc, char** argv)
{
for(int i = 3; i < argc; ++i)
{
io::CSVReader<3, io::trim_chars<' '>, io::no_quote_escape<'\t'>> csvFile(argv[i]);
if(!csvFile.next_line())
return 1;
try
{
io::CSVReader<3, io::trim_chars<' '>, io::no_quote_escape<'\t'>> csvFile(argv[i]);
if(!csvFile.next_line())
return 1;
csvFile.read_header(io::ignore_extra_column, "Impedance Real part", "Impedance Imaginary Part", "Frequency [Hz]");
csvFile.read_header(io::ignore_extra_column, "Impedance Real part", "Impedance Imaginary Part", "Frequency [Hz]");
std::string frequency;
std::string real;
std::string imaginary;
ModelData data;
data.modelStr = eis::relaxisToEis(argv[2]);
data.id = std::to_string(i-3);
while(csvFile.read_row(real, imaginary, frequency))
data.data.push_back(eis::DataPoint(std::complex<fvalue>(std::stod(real), std::stod(imaginary)), std::stod(frequency)*2*M_PI));
std::string frequency;
std::string real;
std::string imaginary;
ModelData data;
data.modelStr = eis::relaxisToEis(argv[2]);
data.id = std::to_string(i-3);
while(csvFile.read_row(real, imaginary, frequency))
data.data.push_back(eis::DataPoint(std::complex<fvalue>(std::stod(real), std::stod(imaginary)), std::stod(frequency)*2*M_PI));
saveData("maryam", data, outDir, argv[i]);
saveData("maryam", data, outDir, argv[i]);
}
catch(const io::error::missing_column_in_header& err)
{
std::cerr<<"Could not read file "<<err.what()<<std::endl;
}
}
}
catch (const std::invalid_argument& err)