Eddy_Em
Сорри, наконец-то дошли руки...
SOFA закачана и превращена в DLL,
к которой могу обращаться из С# - программы,
аналогичной предложенной Вами ранее.
Для пробы я попытался определить
J2000 - координаты Полярной звезды и
сравнить их с приведенными на сайте
https://ru.wikipedia.org/wiki/Полярная_звезда
По идее, отличий быть не должно.
Были заданы дата 2000.01.01, время 12:00 и
координаты с сайта, преобразованые в секунды
RA - 02ч 31м 48,70с - 9108.7
Decl - +89° 15' 51,00" - 321 351
В результате я получил
utc1 - 2451544.5,
utc2 - 0.50000,
а по калькулятору на сайте
https://be-os.ru/julian_date_online/2451544.75, отличие 0.25
ra - 02ч 30м 52.60c, отличие от исходного ~ 1'
decl - +89° 15' 40.65", -"- ~ 10"
Вопрос - Чем могут быть обусловлены такие отличия?
По идее, на выходе должно получиться то же, что и на входе,
поскольку на входе и на выходе одна и та же J2000.
Вот моя программа
public void GetJ2000RaDecl
( DateTime T, double appRA, double appDecl,
out double RA, out double Decl, out double utc1, out double utc2
)
{ double tai1, tai2, tt1, tt2, eo, ri;
appRA *= DS2R;
appDecl *= DAS2R;
// iauDtf2d ( "UTC", T.Year,T.Month,T.Day,T.Hour,T.Minute, T.Second,out utc1,out utc2 );
iauDtf2d ( "UTC", 2000,1,1,12,0,0,out utc1,out utc2 );
iauUtctai ( utc1, utc2, out tai1, out tai2);
iauTaitt ( tai1, tai2, out tt1, out tt2);
iauAtic13 ( appRA, appDecl, tt1, tt2,out ri,out Decl,out eo);
RA = iauAnp ( ri + eo );
RA *= DR2S;
Decl *= DR2AS;
}