8#include <Faddeeva/Faddeeva.hh>
11 return 200 + 5 * std::sin(Constant::two_pi*t.
Seconds()/86400);
15 return 220 + 25 * std::sin(Constant::two_pi*t.
Seconds()/86400);
41 mock_atm_meas[i] = (I - J) * T + J;
46 out.
meas[i] = out.
cold[i] + (mock_atm_meas[i] - out.
tc) * (out.
hot[i] - out.
cold[i]) / (out.
th - out.
tc);
56 constexpr Index NumSpecChannel=10'000;
61 const Vector f_grid_raw(1e9, NumSpecChannel, 1e9/(NumSpecChannel-1));
67 for (
Index i=0; i<1440; i+=4) {
68 const auto mockraw =
mock_data(f_grid_raw, now+i*DT, F0, g, gd);
69 for (
Index j=0; j<4; j++) {
70 times.emplace_back(now + (i+j)*DT);
71 tc_arr.emplace_back(mockraw.tc);
72 th_arr.emplace_back(mockraw.th);
74 rawdata.emplace_back(mockraw.cold);
75 rawdata.emplace_back(mockraw.meas);
76 rawdata.emplace_back(mockraw.hot);
77 rawdata.emplace_back(mockraw.meas);
85 ARTS::Var::level0_data(ws).value() = rawdata;
86 ARTS::Var::level0_time(ws).value() = times;
90 std::cout <<
"Plotting first, central and last CAHA calibrated data on averaged sensor_time\n";
91 ARTSGUI::plot(f_grid_raw, ARTS::Var::ybatch(ws).value()[0],
92 f_grid_raw, ARTS::Var::ybatch(ws).value()[ARTS::Var::ybatch(ws).value().
nelem()/2],
93 f_grid_raw, ARTS::Var::ybatch(ws).value()[ARTS::Var::ybatch(ws).value().
nelem()-1]);
97 std::cout <<
"Plotting CAHA calibrated data on averaged sensor_time\n";
98 ARTSGUI::plot(f_grid_raw, ARTS::Var::ybatch(ws).value());
102 std::cout <<
"Plotting CAHA calibrated data on averaged sensor_time after tropospheric correction\n";
103 ARTSGUI::plot(f_grid_raw, ARTS::Var::ybatch(ws).value());
108 std::cout <<
"Plotting CAHA calibrated data on averaged sensor_time after tropospheric correction with simple focus\n";
109 ARTSGUI::plot(ARTS::Var::f_grid(ws).value(), ARTS::Var::ybatch(ws).value());
Stuff related to time in ARTS.
std::chrono::duration< Numeric > TimeStep
A duration of time, 1 full tick should be 1 second.
void VectorSet(Vector &out, const Vector &value, const Verbosity &)
WORKSPACE METHOD: VectorSet.
This can be used to make arrays out of anything.
Index nelem() const noexcept
Returns the number of elements.
void ybatchTimeAveraging(ArrayOfVector &ybatch, ArrayOfTime &sensor_time, const String &time_step, const Index &disregard_first, const Index &disregard_last, const Verbosity &)
WORKSPACE METHOD: ybatchTimeAveraging.
void ybatchDoublingMeanFocus(Vector &f_grid, ArrayOfVector &ybatch, const Numeric &f0, const Numeric &df, const Verbosity &)
WORKSPACE METHOD: ybatchDoublingMeanFocus.
void ybatchColdAtmHotAtmCycle(ArrayOfVector &ybatch, ArrayOfTime &sensor_time, const ArrayOfVector &level0_data, const ArrayOfTime &level0_time, const Vector &cold_temp, const Vector &hot_temp, const Index &first_c_index, const Verbosity &)
WORKSPACE METHOD: ybatchColdAtmHotAtmCycle.
void ybatchTroposphericCorrectionNaiveMedianForward(ArrayOfVector &ybatch_corr, ArrayOfVector &ybatch, const ArrayOfIndex &range, const Vector &trop_temp, const Numeric &targ_temp, const Verbosity &)
WORKSPACE METHOD: ybatchTroposphericCorrectionNaiveMedianForward.
NUMERIC Numeric
The type to use for all floating point numbers.
INDEX Index
The type to use for all integer numbers and indices.
std::complex< Numeric > Complex
constexpr Numeric real(Complex c) noexcept
real
Workspace & init(Workspace &ws)
Index nelem(const Lines &l)
Number of lines.
invlib::Vector< ArtsVector > Vector
invlib wrapper type for ARTS vectors.
Stuff related to generating y-data from raw data.
Class to handle time in ARTS.
TimeStep seconds_into_day() const
Numeric time_sign(const Time t)
MockData mock_data(const Vector &f, const Time &t, const Numeric f0, const Numeric g, const Numeric gd)
Numeric time_srcs(const Time t)
void add_noise(VectorView v, Numeric scale)
Add noise to vector.
Utility functions for testing.