mtumedian.cpp

Go to the documentation of this file.
00001 #include <iostream>
00002 #include <string>
00003 #include <numeric>
00004 #include "statutils.h"
00005 #include "TimeSeriesData.h"
00006 
00007 using namespace std;
00008 using namespace gplib;
00009 
00010 string version = "$Id: ";
00011 
00012 int main(int argc, char *argv[])
00013   {
00014     string infilename;
00015     if (argc == 2)
00016       {
00017         infilename = argv[1];
00018       }
00019     else
00020       {
00021         cout
00022             << "This is mtumedian: Apply a median filter to  Phoenix time series"
00023             << endl << endl;
00024         cout << " Usage:      mtumedian infilename " << endl;
00025         cout << " Ending '.med'  will be automatically assigned to outfilename"
00026             << endl << endl;
00027         cout << " This is Version: " << version << endl << endl;
00028         cout << " Mtu-Filename: ";
00029         cin >> infilename;
00030       }
00031     size_t seglength = 0;
00032     cout << "Segment length for Median: ";
00033     cin >> seglength;
00034 
00035     TimeSeriesData Data;
00036 
00037     Data.GetData(infilename);
00038     size_t datalength = Data.GetData().GetEx().GetData().size();
00039     for (size_t i = seglength / 2; i < datalength - seglength / 2; ++i)
00040       {
00041         const size_t startindex = i - seglength / 2;
00042         const size_t endindex = i + seglength / 2;
00043         Data.GetData().GetEx().GetData().at(i) = Median(
00044             Data.GetData().GetEx().GetData().begin() + startindex,
00045             Data.GetData().GetEx().GetData().begin() + endindex);
00046         Data.GetData().GetEx().GetData().at(i) = Median(
00047             Data.GetData().GetEy().GetData().begin() + startindex,
00048             Data.GetData().GetEy().GetData().begin() + endindex);
00049         Data.GetData().GetEx().GetData().at(i) = Median(
00050             Data.GetData().GetHx().GetData().begin() + startindex,
00051             Data.GetData().GetHx().GetData().begin() + endindex);
00052         Data.GetData().GetEx().GetData().at(i) = Median(
00053             Data.GetData().GetHy().GetData().begin() + startindex,
00054             Data.GetData().GetHy().GetData().begin() + endindex);
00055       }
00056     Data.WriteAsMtu(infilename + ".med");
00057   }

Generated on Tue May 4 16:52:14 2010 for GPLIB++ by  doxygen 1.5.8