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

+ aberration method

parent 35a3c4be
......@@ -13,7 +13,7 @@
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
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());
if (backwardCorrection) {
correctedAlpha = alpha - r.X;
......@@ -369,7 +369,7 @@ void OpticMeasurement::AberrationCorrect(double alpha, double delta, TimeJD date
correctedDelta = delta + r.Y;
}
}
else {
else if(ab == aberration_method::ST){
Vect3 v;
// Вычисление вектора орбитального движения Земли
......@@ -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;
}
AberrationCorrect(Alpha, Delta, MTime, false, false, Alpha, Delta);
AberrationCorrect(Alpha, Delta, MTime, false, ab, Alpha, Delta);
IsCorrected = true;
}
......
......@@ -13,6 +13,14 @@
#include "AFreeMeasurement.h"
///////////////////////////////////////////////////////////////////////////////
enum class aberration_method
{
NONE,
ST,
AA
};
class OpticMeasurement : public AFreeMeasurement
{
public:
......@@ -83,7 +91,7 @@ public:
return IsCorrected;
};
// Коррекция с учетом звездной аберрации
void Correct(bool newmethod);
void Correct(aberration_method ab);
// Получение координат станции в Гринвиче
virtual const Vect3& GetStationCoord() const = 0;
......@@ -99,7 +107,7 @@ public:
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:
// Флаг учета аберрации
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