Телескопы покупают здесь


A A A A Автор Тема: расчет эклиптической долготы  (Прочитано 984 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kokosaniАвтор темы

  • Новичок
  • *
  • Сообщений: 10
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от kokosani
расчет эклиптической долготы
« : 04 Июл 2017 [08:21:49] »
Как рассчитать эклиптическую долготу имея только дату? Также возможно использование доп. данных.
Например, отсюда Расчет положения солнца и луны взят код где $L якобы та самая долгота. Но вводя года менее 2000 года получаем отрицательный результат. А при дате 20 января должно получаться где-то 300 градусов. Почему?
$Year = 2000;
$Mon = 1;
$Day = 20;
$hous_zona = 6;
$min = 0;
$sec = 0;
$lon = 73.3682;
$Var1 = 10000 * $Year + 100 * $Mon + $Day;
if($Mon <= 2 )
{
$Mon = $Mon + 12;
$Year = $Year - 1;
}
if($Var1 <= 15821004){
$Var2 = -2 + floor(($Year + 4716) / 4) - 1179;
}else{
$Var2 = floor($Year /400) - floor($Year / 100) + floor($Year / 4);

$Var3 = 365 * $Year - 679004;
// MJD - Модифицированная Юлианская дата
$MJD = $Var3 + $Var2 + floor(306001 * ($Mon + 1)/ 10000) + $Day;

// Вычисление Гринвеческого звездного времени

$T0 = ($MJD - 51544.5) / 36525; // мод.юл.дата на начало суток в юлианских столетиях
echo $T0;
/*
*/
$a1 = 24110.54841;
$a2 = 8640184.812;
$a3 = 0.093104;
$a4 = 0.0000062;
$S0 = $a1 + $a2 * $T0 + $a3 * $T0*$T0- $a4 * $T0 *$T0*$T0;// звездное время в Гринвиче на начало суток в секундах
//UT - всемирное время в часах, момент расчета
$UT = $hous_zona + $min/60 + $sec/3600;
if($UT>24)$UT=$UT-24;
if($UT<0)$UT=$UT+24;
$Nsec = $UT * 3600; // количество секунд, прошедших  от начала суток до момента наблюдения

$NsecS = $Nsec * 366.2422 / 365.2422; //количество  звездных секунд
$GMT = ($S0 + $NsecS) /3600 * 15;//гринвическое среднее звездное время в градусах SG
while($GMT>360)$GMT=$GMT-360;
$GST = $GMT + $lon;// местное звездное время ST
//Lon – долгота наблюдателя

//  Вычисление эклиптических координат Солнца

$T0 = ($MJD - 51544.5) / 36525; // мод.юл.дата на начало суток в юлианских столетиях
$M = 357.528 + 35999.05 * $T0 + 0.04107 * $UT;// средняя аномалия
while($M>360)$M=$M-360;
$L0 = 280.46 + 36000.772 * $T0 + 0.04107 * $UT;
$L = $L0 + (1.915 - 0.0048 * $T0) * sin(rad2deg($M)) + 0.02 * sin(rad2deg(2 *$M));//долгота Солнца
while($L>360)$L=$L-360;
echo "\n";
echo $L;

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: расчет эклиптической долготы
« Ответ #1 : 04 Июл 2017 [08:40:52] »
А почему угол к примеру -30 градусов не должен считаться легитимным?
Что такое периодическая функция помните?
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн kokosaniАвтор темы

  • Новичок
  • *
  • Сообщений: 10
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от kokosani
Re: расчет эклиптической долготы
« Ответ #2 : 04 Июл 2017 [08:51:27] »
А почему угол к примеру -30 градусов не должен считаться легитимным?
Что такое периодическая функция помните?
Тогда чему он равен, если долгота у нас от 0 до 360? Да и например при  1999 годе выходит -59.0499287446, а должно быть при данной дате как и писал выше около 300.

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: расчет эклиптической долготы
« Ответ #3 : 04 Июл 2017 [09:54:44] »
Тяжёлый случай. Прибавьте 360 градусов к -59.0499287446, и получите ожидаемые 300.9500712554
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: расчет эклиптической долготы
« Ответ #4 : 04 Июл 2017 [09:57:49] »
Движение Земли по орбите есть непрерывное периодическое движение по замкнутой орбите (в пределах величины возмущений).
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн Александр Вольф

  • *****
  • Сообщений: 3 325
  • Благодарностей: 103
  • Stellarium Developer
    • Skype - alex.v.wolf
    • Jabber - alex.wolf@jabber.ru
    • DeepSkyHosting: alexwolf
    • Сообщения от Александр Вольф
    • 47 Tucanae
Re: расчет эклиптической долготы
« Ответ #5 : 05 Июл 2017 [08:40:51] »
Но вводя года менее 2000 года получаем отрицательный результат. А при дате 20 января должно получаться где-то 300 градусов. Почему?
Потому что в указанном примере выкинули приведение к нормализованному диапазону значений, т.к. задача стояла в нахождении решения для ограниченного периода времени.
С уважением, Александр
Астротоп | Stellarium: donate | KStars
SW ED80/SW AllView GOTO | Celestron 15x70 | Celestron 25-125x80 | Veber 25x100

Оффлайн kokosaniАвтор темы

  • Новичок
  • *
  • Сообщений: 10
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от kokosani
Re: расчет эклиптической долготы
« Ответ #6 : 06 Июл 2017 [07:08:44] »
А может кто-то знает какую-нибудь программку под винду или онлайн-калькулятор для расчета этой долготы? Для проверки правильности результатов.