/* This file is part of Lemma, a geophysical modelling and inversion API */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /** @file @author M. Andy Kass @date 01/03/2013 @version $Id$ **/ #ifndef __DATAREADERFEMUBC_H #define __DATAREADERFEMUBC_H #include "datareader.h" #include "datafem.h" namespace Lemma { // =================================================================== // Class: DataReaderFemUBC /// \brief Reads UBC-format observation files /// \details This class reads UBC-format EM1DFM observation files and /// populates a DataFEM class. Assumptions: the frequencies and coil /// geometries remain fixed throughout a survey. // =================================================================== class DataReaderFemUBC : DataReader { friend std::ostream &operator<<(std::ostream &stream, const DataReaderFemUBC &ob); public: // ==================== LIFECYCLE ======================= static DataReaderFemUBC* New(); void Delete(); // ==================== OPERATORS ======================= // ==================== OPERATIONS ======================= void ReadData(const std::string &datafile,int vbs = 0); // ==================== ACCESS ======================= ///Attach the data object void SetDataFEM(DataFEM* inputtemp); // ==================== INQUIRY ======================= /// Return the data object DataFEM* GetData(); protected: // ==================== LIFECYCLE ======================= /// Default protected constructor. DataReaderFemUBC (const std::string &name); /// Default protected constructor. ~DataReaderFemUBC (); void Release(); /// Load read data into data object void SendData(); // ==================== DATA MEMBERS ========================= DataFEM* InputData; int nObs; int nFreq; MatrixXr DataMatrix; MatrixXr Uncertainties; Vector3Xr PositionVec; VectorXr Freqs; VectorXr TxMom; Vector3Xr TxRxSep; Eigen::Matrix TxOrientation; Eigen::Matrix RxOrientation; VectorXr ScaleFac; private: }; // ----- end of class DataReaderFemUBC ----- } // end of namespace Lemma #endif /* vim: set tabstop=4 expandtab: */ /* vim: set filetype=cpp: */