9 #include <boost/function.hpp>
36 std::vector<MTTensor> MTData;
38 std::vector<MagneticTF> TFData;
39 void DoRotate(
const int i,
const double angle);
45 void WriteMtt(
const std::string filename);
47 void ReadEdi(
const std::string filename);
49 void ReadJ(
const std::string filename);
51 void ReadMtt(
const std::string filename);
53 void ReadPek1D(
const std::string filename);
55 void ReadZmm(
const std::string filename);
57 void ReadMtf(
const std::string filename);
59 void ReadNetCDF(
const std::string filename);
62 void WriteJBlock(boost::function<std::complex<double>(
const MTTensor*)> Comp,
63 boost::function<
double(
const MTTensor*)> Err, std::ofstream &outfile,
64 const double convfactor);
70 void Assign(
const int nfreq);
76 void Rotate(
const double rotangle);
140 virtual void GetData(
const std::string filename);
145 virtual void WriteData(
const std::string filename);
152 void WriteAsJ(
const std::string filename);
157 const std::map<std::string, MTStation::tmtdataformat>
MTFileTypes =
159 {
".mtt", MTStation::tmtdataformat::mtt},
160 {
".j", MTStation::tmtdataformat::j},
161 {
".dat", MTStation::tmtdataformat::j},
162 {
".nc", MTStation::tmtdataformat::nc},
163 {
".zmm", MTStation::tmtdataformat::zmm},
164 {
".mtf", MTStation::tmtdataformat::mtf},
165 {
".edi", MTStation::tmtdataformat::edi},
166 {
".pek", MTStation::tmtdataformat::pek}
171 #endif // CMTSTATION_H
double GetLatitude() const
access funtion for Latitude
const MTTensor & at(const unsigned int i) const
direct acces to a tensor at a given index
virtual void WriteData(const std::string filename)
void AssignAll(const int nfreq)
MTStation & operator=(const MTStation &source)
double GetElevation() const
void WriteAsEdi(const std::string filename)
Write data as edi (no functionality yet)
void WriteAsJ(const std::string filename)
Write data to j-file.
double GetAzimuth() const
The class MTStation is used to store the transfer functions and related information for a MT-site...
void SetLatitude(double lat)
void Rotate(void)
Rotate to zero rotation angle.
void WriteAsMtt(const std::string filename)
Write data in goettingen .mtt format.
void Assign(const int nfreq)
Assign() assigns zero to all derived quantities, this makes the calculation.
virtual MTStation * clone() const
for parallel runs we need to make a copy of the object and its derived classes
Calculate synthetic MT data for a 1D model using Cagniard's algorithm.
Stores MT-Tensor components at a single frequency, calculates derived quantities. ...
const std::vector< MTTensor > & GetMTData() const
Get the full vector of Tensor elements read only.
std::vector< MTTensor > & SetMTData()
Get the full vector of Tensor elements for reading and writing.
void WriteBack()
Write data back in original format, with filename given by station name.
trealdata GetFrequencies() const
return the available frequencies in a single vector
void SetFrequencies(const trealdata &freqs)
Set the frequencies of the tensor elements, invalidates the previously stored impedance data...
void SetLongitude(double lon)
void Update()
Update all derived quantities.
double GetLongitude() const