Add relaxis file support
This commit is contained in:
		
							parent
							
								
									121669078f
								
							
						
					
					
						commit
						c78fa5bd42
					
				
					 1 changed files with 82 additions and 0 deletions
				
			
		
							
								
								
									
										82
									
								
								src/relaxis.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								src/relaxis.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,82 @@
 | 
			
		|||
#include <eisgenerator/translators.h>
 | 
			
		||||
#include <eisgenerator/eistype.h>
 | 
			
		||||
#include <relaxisloaderpp/relaxisloaderpp.h>
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <vector>
 | 
			
		||||
#include <filesystem>
 | 
			
		||||
#include <set>
 | 
			
		||||
 | 
			
		||||
#include "common.h"
 | 
			
		||||
 | 
			
		||||
int main(int argc, char** argv)
 | 
			
		||||
{
 | 
			
		||||
	if(argc < 2)
 | 
			
		||||
	{
 | 
			
		||||
		std::cerr<<"Usage: "<<(argc > 0 ? argv[0] : "NULL")<<" -o [OUTDIR] [FILE(s)]\n";
 | 
			
		||||
		return 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::filesystem::path outDir("./out");
 | 
			
		||||
 | 
			
		||||
	std::set<int> ignoreArgs;
 | 
			
		||||
	for(int arg = 1; arg < argc; ++arg)
 | 
			
		||||
	{
 | 
			
		||||
		if(std::string(argv[arg]) == "-o")
 | 
			
		||||
		{
 | 
			
		||||
			ignoreArgs.insert(arg);
 | 
			
		||||
			if(arg+1 < argc)
 | 
			
		||||
			{
 | 
			
		||||
				outDir = argv[arg+1];
 | 
			
		||||
				ignoreArgs.insert(arg+1);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if(!checkDir(outDir))
 | 
			
		||||
		return 1;
 | 
			
		||||
 | 
			
		||||
	int arg = 1;
 | 
			
		||||
	try
 | 
			
		||||
	{
 | 
			
		||||
		for(; arg < argc; ++arg)
 | 
			
		||||
		{
 | 
			
		||||
			if(ignoreArgs.find(arg) != ignoreArgs.end())
 | 
			
		||||
				continue;
 | 
			
		||||
			rlx::File file(argv[arg]);
 | 
			
		||||
 | 
			
		||||
			std::cout<<"Loaded "<<argv[arg]<<" file has "<<file.getProjectCount()<<" project(s)\n";
 | 
			
		||||
 | 
			
		||||
			for(size_t i = 0; i < file.getProjectCount(); ++i)
 | 
			
		||||
			{
 | 
			
		||||
				rlx::Project project = file.getProject(i);
 | 
			
		||||
				std::cout<<"Project "<<i<<" has "<<project.getSpectraCount()<<" spectra\n";
 | 
			
		||||
				for(size_t j = 0; j < project.getSpectraCount(); ++j)
 | 
			
		||||
				{
 | 
			
		||||
					rlx::Spectra spectra = project.getSpectra(j);
 | 
			
		||||
					if(!spectra.fitted)
 | 
			
		||||
					{
 | 
			
		||||
						std::cout<<"skipping spectra "<<spectra.id<<" as this spectra is not fitted\n";
 | 
			
		||||
						continue;
 | 
			
		||||
					}
 | 
			
		||||
					if(spectra.model.empty())
 | 
			
		||||
					{
 | 
			
		||||
						std::cout<<"skipping spectra "<<spectra.id<<" as this spectra has no model\n";
 | 
			
		||||
						continue;
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					ModelData data;
 | 
			
		||||
					data.data = spectra.data;
 | 
			
		||||
					data.modelStr = spectra.model;
 | 
			
		||||
					data.id = std::to_string(spectra.id);
 | 
			
		||||
					saveData("relaxis", data, outDir, argv[arg]);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	catch(const eis::file_error& err)
 | 
			
		||||
	{
 | 
			
		||||
		std::cerr<<"error reading file "<<argv[arg]<<" librelaxisloaderpp: "<<err.what()<<std::endl;
 | 
			
		||||
		return 1;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue