SatDump 2.0.0-alpha-520736c72
Loading...
Searching...
No Matches
atmospheric_gases_regression.h
1#pragma once
2
3#include "generic.h"
4#include <vector>
5#include <cstddef>
6#include <tuple>
7
8class AtmosphericGasesRegression : public GenericAttenuation
9{
10public:
11 AtmosphericGasesRegression(double surface_watervap_density, double temperature);
12
13 ~AtmosphericGasesRegression();
14
15 double get_attenuation();
16
17private:
18 double d_surface_watervap_density;
19 double d_temperature;
20 double d_af, d_bf, d_cf;
21 double d_azf, d_bzf, d_czf;
22
23 typedef std::tuple<double, double, double, double> atmo_coefficients_t;
24
30 std::vector<atmo_coefficients_t> d_atmo_gases_coeff{atmo_coefficients_t(1, 0.00588, 0.0000178, 0.0000517), atmo_coefficients_t(4, 0.00802, 0.000141, 0.0000850),
31 atmo_coefficients_t(6, 0.00824, 0.000300, 0.0000895), atmo_coefficients_t(12, 0.00898, 0.00137, 0.000108)};
32
37 std::vector<atmo_coefficients_t> d_atmo_gases_coeff_zenith{
38 atmo_coefficients_t(1, 0.0334, 0.00000276, 0.000112),
39 atmo_coefficients_t(4, 0.0397, 0.000276, 0.000176),
40 atmo_coefficients_t(6, 0.0404, 0.000651, 0.000196),
41 atmo_coefficients_t(12, 0.0436, 0.00318, 0.000315),
42 };
43
44 double m(double y1, double y2, double f1, double f2);
45
46 double calc_coeff(double y1, double y2, double f1, double f2, double f0);
47
48 AtmosphericGasesRegression::atmo_coefficients_t get_atmo_coeff(double frequency, std::vector<atmo_coefficients_t> *coeff_table);
49};
double get_attenuation()
Get the estimated attenuation. This pure virtual function MUST be implemented by every derived class.
Definition atmospheric_gases_regression.cpp:75