00001 #include <iostream> 00002 #include "AbsVelRecObjective.h" 00003 #include "SurfaceWaveData.h" 00004 #include "ResPkModel.h" 00005 #include "SeismicDataComp.h" 00006 #include "CCalcRecConf.h" 00007 #include <string> 00008 00009 using namespace std; 00010 int main() 00011 { 00012 string datafilename, modelfilename; 00013 cout << "Name of Datafile: "; 00014 cin >> datafilename; 00015 cout << "Name of Modelfile:"; 00016 cin >> modelfilename; 00017 00018 CCalcRecConf Config; 00019 Config.GetData("calcrec.conf"); 00020 SeismicDataComp RecData; 00021 SurfaceWaveData SurfData; 00022 RecData.GetData(datafilename+".rec"); 00023 SurfData.ReadAscii(datafilename+".vel"); 00024 ResPkModel Model; 00025 Model.GetData(modelfilename); 00026 00027 AbsVelRecObjective SeisObjective(RecData,SurfData,Config.shift,Config.omega,Config.sigma,Config.cc,0.07,RecCalc::iterdecon); 00028 00029 SeisObjective.SetFitExponent(2); 00030 SeisObjective.SetPoisson(sqrt(3)); 00031 SeisObjective.SetErrorLevel(0.02); 00032 SeisObjective.SetAbsVelWeight(1); 00033 SeisObjective.SetRecWeight(1); 00034 const unsigned int nlayers = Model.Thickness.size(); 00035 const unsigned int nparams = nlayers * 2; 00036 ttranscribed member(nparams); 00037 for (unsigned i = 0; i < nlayers; ++i) 00038 { 00039 member(i) = Model.Thickness.at(i); 00040 member(i+nlayers) = Model.SVelocity.at(i); 00041 } 00042 cout << "Misfit: " << SeisObjective.CalcPerformance(member) << endl; 00043 }
1.5.1