#ifndef _SOFIEFOV_H_ #define _SOFIEFOV_H_ //----------------------------------------------------------------------------------------- // define the class "sofiefov" // // Modules: // read_fov_file......reads the FOV data file // get_fov_response...returns the FOV response for a given band and angle // // Notes: // The FOV file format is 4 header lines, then a matrix (# bands, # elevation angles), // where each row is: elevation angle, then FOV response for bands 1- nband // // Source: Mark Hervig, GATS //----------------------------------------------------------------------------------------- //#include // the standard input/output library //#include // C++ style input/output support //#include // file support #include #include //#include //using namespace std; class sofiefov { private: int nel; // # of elevation angles in file (FOV response is vs. angle) int nband; // # of bands in file (there is an FOV curve for each band) std::vector< std::vector< double > > fov_response; // relative FOV response vs. angle for nband bands, array(nband,nel) std::vector< double > elevation; // vector of elevation angles, array(nel) std::vector< double > Eprime; // elevation grid which is 0 // at the Band 3 integrated equal area weighted // center. double midpoint( std::vector& alt, std::vector& function); public: std::vector get_fov_elev(const int band) ; std::vector get_fov_response(const int band); std::vector get_fov_elev2(const int band, const double offset); void read_fov_file(const std::string& fovfile, int reverse=0); //double get_fov_response(int band, double el_in); }; extern sofiefov gFOVdata; #endif