1 #ifndef MATRIXSIMULATOR_H 2 #define MATRIXSIMULATOR_H 4 #include <opencv2/core/core.hpp> 5 #include <opencv2/highgui/highgui.hpp> 49 void read_transformations(std::string path);
71 void set_wavelength(
int N);
81 void set_wavelength(std::vector<double> wavelength);
85 void calc_sim_matrices();
87 cv::gpu::GpuMat transform_slit(cv::gpu::GpuMat& slit_image, cv::Mat&
transformation_matrix,
double weight);
88 int simulate_order(
int order, cv::gpu::GpuMat& slit_image, cv::gpu::GpuMat& output_image,
bool aberrations);
89 void simulate_spectrum(cv::gpu::GpuMat& slit_image);
100 cv::Mat transform_slit(cv::Mat& slit_image, cv::Mat& transformation_matrix,
double weight);
109 int simulate_order(
int order, cv::Mat& slit_image, cv::Mat& output_image,
bool aberrations);
113 void simulate_spectrum();
115 void set_efficiencies(std::vector<Efficiency *> &efficiencies);
130 void add_source(
Source * src);
137 void load_spectrograph_model(std::string path,
int fiber_number);
143 void set_order_range(
int min_order,
int max_order);
149 void set_ccd(
CCD * ccd);
155 void set_slit(
Slit * slit);
161 void set_psfs(
PSF * psfs);
166 void prepare_sources(std::vector<Source *> sources);
167 void save_to_file(std::string filename,
bool downsample=
true,
bool bleed=
true,
bool overwrite=
false);
168 void transformation_to_file(std::string filename);
189 std::map<int, tk::spline >
tr_p;
190 std::map<int, tk::spline >
tr_r;
191 std::map<int, tk::spline >
tr_q;
206 #endif // MATRIXSIMULATOR_H std::map< int, std::vector< cv::Mat > > sim_matrices
Definition: matrixsimulator.h:185
Base class of all spectral sources.
Definition: source.h:13
std::map< int, std::vector< double > > sim_efficiencies
Definition: matrixsimulator.h:186
Definition: efficiency.h:26
cv::Mat img
Definition: matrixsimulator.h:173
PSF * psfs
Definition: matrixsimulator.h:196
Slit * slit
Definition: matrixsimulator.h:197
Class handles point spread functions.
Definition: PSF.h:38
class handels spectrum simulation
Definition: matrixsimulator.h:37
std::map< int, std::vector< double > > sim_spectra
Definition: matrixsimulator.h:187
CCD * ccd
Definition: matrixsimulator.h:169
std::map< int, tk::spline > tr_q
Definition: matrixsimulator.h:191
class representing a CCD detector
Definition: CCD.h:21
std::map< int, tk::spline > tr_tx
Definition: matrixsimulator.h:193
std::map< int, tk::spline > tr_r
Definition: matrixsimulator.h:190
std::vector< int > orders
Definition: matrixsimulator.h:198
std::map< int, tk::spline > tr_phi
Definition: matrixsimulator.h:192
std::map< int, std::vector< raw_transformation > > raw_transformations
Definition: matrixsimulator.h:179
std::map< int, std::vector< double > > sim_wavelength
Definition: matrixsimulator.h:184
std::map< int, tk::spline > tr_p
Definition: matrixsimulator.h:189
spectrograph_information spec_info
Definition: matrixsimulator.h:200
std::vector< Efficiency * > efficiencies
Definition: matrixsimulator.h:181
int raw_n
Definition: matrixsimulator.h:163
std::map< int, tk::spline > tr_ty
Definition: matrixsimulator.h:194
std::vector< Source * > sources
Definition: matrixsimulator.h:182