mtt2ptensor.cpp

Go to the documentation of this file.
00001 #include <iostream>
00002 #include <string>
00003 #include "MTStationList.h"
00004 #include "PTensorMTStation.h"
00005 #include "Adaptors.h"
00006 #include "Jacknife.h"
00007 #include "MTSampleGenerator.h"
00008 
00009 using namespace std;
00010 
00011 
00012 int main(int argc, char* argv[])
00013 {
00014                 MTStationList MTSites;
00015                 string infilename;
00016                 string version =  "$Id: mtt2ptensor.cpp 1572 2007-12-17 18:20:43Z mmoorkamp $";
00017                 cout << endl << endl;
00018                 cout << "Program "  << version << endl;
00019                 cout << " Convert MT data files in .mtt .j .edi format to .ptensor format" << endl;
00020                 cout << " This is needed in conjunction with the program ptselect " << endl;
00021                 cout << "  to select similar sites." << endl;
00022                 cout << endl << endl;
00023                 
00024                 if (argc == 2)
00025                 {
00026                         infilename = argv[1];
00027                 }
00028                 else
00029                 {
00030                         cout << "Input Filename: ";
00031                         cin >> infilename;
00032                 }
00033                 MTSites.GetData(infilename);
00034                 const unsigned int nsites = MTSites.GetList().size();
00035                 const unsigned int ntestcases = 10000;
00036                 for (unsigned int i = 0; i < nsites; ++i)
00037                 {
00038                         cout << "Writing site " <<      MTSites.GetList().at(i).GetName();
00039                         PTensorMTStation PTData;
00040                         const unsigned int nfreq = MTSites.at(i).GetMTData().size();
00041                         for (unsigned j = 0; j < nfreq; ++j)
00042                         {
00043                                 double JackMean, Phi11Var, Phi12Var, Phi21Var, Phi22Var;
00044                                 Jacknife<MTSampleGenerator>(ntestcases,MTSampleGenerator(&MTTensor::GetPhi11,MTSites.at(i).at(j))).CalcErrors(JackMean,Phi11Var);
00045                                 Jacknife<MTSampleGenerator>(ntestcases,MTSampleGenerator(&MTTensor::GetPhi21,MTSites.at(i).at(j))).CalcErrors(JackMean,Phi12Var);
00046                                 Jacknife<MTSampleGenerator>(ntestcases,MTSampleGenerator(&MTTensor::GetPhi12,MTSites.at(i).at(j))).CalcErrors(JackMean,Phi21Var);
00047                                 Jacknife<MTSampleGenerator>(ntestcases,MTSampleGenerator(&MTTensor::GetPhi22,MTSites.at(i).at(j))).CalcErrors(JackMean,Phi22Var);
00048                                 
00049                                                         
00050                                 PTData.GetTensor().push_back(PTensorMTData(MTSites.at(i).at(j).GetFrequency(),
00051                                                 MTSites.at(i).at(j).GetPhi11(),MTSites.at(i).at(j).GetPhi12(),
00052                                                 MTSites.at(i).at(j).GetPhi21(),MTSites.at(i).at(j).GetPhi22(),
00053                                                 sqrt(Phi11Var),sqrt(Phi12Var),sqrt(Phi21Var),sqrt(Phi22Var)));
00054                                 PTData.WriteData(MTSites.GetList().at(i).GetName());
00055                         }
00056                         cout << "    ... done" <<endl;
00057                 }
00058 }

Generated on Fri Jul 4 15:30:21 2008 for GPLIB++ by  doxygen 1.5.5