Commit 3a194635 authored by Alexander Lapshin's avatar Alexander Lapshin

+ aberration method

parent 35a3c4be
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
ADelayMeasurement::ADelayMeasurement() : AMeasurement(), ADelayMeasurement::ADelayMeasurement() : AMeasurement(),
// По умолчанию назначем точность определения времени распространения // По умолчанию назначем точность определения времени распространения
// сигнала равной одной сотой секунды // сигнала равной одной сотой секунды
TimePrec(0.01 * 1.e-3) TimePrec(0.0001 * 1.e-3)
{ {
} }
......
...@@ -356,9 +356,9 @@ void OpticMeasurement::Diff(DVector& d, const DVector* m1, const DVector* m2) co ...@@ -356,9 +356,9 @@ void OpticMeasurement::Diff(DVector& d, const DVector* m1, const DVector* m2) co
d(1) = AngleDiff(m1 == NULL ? Delta : (*m1)(1), m2 == NULL ? Delta : (*m2)(1)); d(1) = AngleDiff(m1 == NULL ? Delta : (*m1)(1), m2 == NULL ? Delta : (*m2)(1));
} }
void OpticMeasurement::AberrationCorrect(double alpha, double delta, TimeJD date, bool backwardCorrection, bool preciseAlgorithm, double& correctedAlpha, double& correctedDelta) void OpticMeasurement::AberrationCorrect(double alpha, double delta, TimeJD date, bool backwardCorrection, aberration_method ab, double& correctedAlpha, double& correctedDelta)
{ {
if (preciseAlgorithm) { if (ab == aberration_method::AA) {
CAA2DCoordinate r = EquatorialAberration(alpha, delta, date.GetDays() + date.GetFraction()); CAA2DCoordinate r = EquatorialAberration(alpha, delta, date.GetDays() + date.GetFraction());
if (backwardCorrection) { if (backwardCorrection) {
correctedAlpha = alpha - r.X; correctedAlpha = alpha - r.X;
...@@ -369,7 +369,7 @@ void OpticMeasurement::AberrationCorrect(double alpha, double delta, TimeJD date ...@@ -369,7 +369,7 @@ void OpticMeasurement::AberrationCorrect(double alpha, double delta, TimeJD date
correctedDelta = delta + r.Y; correctedDelta = delta + r.Y;
} }
} }
else { else if(ab == aberration_method::ST){
Vect3 v; Vect3 v;
// Вычисление вектора орбитального движения Земли // Вычисление вектора орбитального движения Земли
...@@ -410,13 +410,13 @@ void OpticMeasurement::AberrationCorrect(double alpha, double delta, TimeJD date ...@@ -410,13 +410,13 @@ void OpticMeasurement::AberrationCorrect(double alpha, double delta, TimeJD date
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Коррекция с учетом звездной аберрации // Коррекция с учетом звездной аберрации
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void OpticMeasurement::Correct(bool nm) void OpticMeasurement::Correct(aberration_method ab)
{ {
if (IsCorrected) { if (IsCorrected || ab == aberration_method::NONE) {
return; return;
} }
AberrationCorrect(Alpha, Delta, MTime, false, false, Alpha, Delta); AberrationCorrect(Alpha, Delta, MTime, false, ab, Alpha, Delta);
IsCorrected = true; IsCorrected = true;
} }
......
...@@ -13,6 +13,14 @@ ...@@ -13,6 +13,14 @@
#include "AFreeMeasurement.h" #include "AFreeMeasurement.h"
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
enum class aberration_method
{
NONE,
ST,
AA
};
class OpticMeasurement : public AFreeMeasurement class OpticMeasurement : public AFreeMeasurement
{ {
public: public:
...@@ -83,7 +91,7 @@ public: ...@@ -83,7 +91,7 @@ public:
return IsCorrected; return IsCorrected;
}; };
// Коррекция с учетом звездной аберрации // Коррекция с учетом звездной аберрации
void Correct(bool newmethod); void Correct(aberration_method ab);
// Получение координат станции в Гринвиче // Получение координат станции в Гринвиче
virtual const Vect3& GetStationCoord() const = 0; virtual const Vect3& GetStationCoord() const = 0;
...@@ -99,7 +107,7 @@ public: ...@@ -99,7 +107,7 @@ public:
return m_isBad; return m_isBad;
}; };
static void AberrationCorrect(double alpha, double delta, TimeJD date, bool backwardCorrection, bool preciseAlgorithm, double& correctedAlpha, double& correctedDelta); static void AberrationCorrect(double alpha, double delta, TimeJD date, bool backwardCorrection, aberration_method ab, double& correctedAlpha, double& correctedDelta);
protected: protected:
// Флаг учета аберрации // Флаг учета аберрации
bool IsCorrected; bool IsCorrected;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment