Calculul timpului de răsărit și de apus

YE> Arunca, pozhalyysta, matematician calculator solar.
YE> Intrare: longitudine, lățime, înălțime, timp.

Asta este motivul pentru care m-am aflat în arhive.

=== Cut ===
Răsăritul și apusul soarelui cu o precizie de aproape minut se calculează
dispozitive elementare, adică pe forme simple fără obținere
date externe (efemerice). Precizia mai mare aici nu are sens, pentru că
ar fi necesar să se țină seama de condițiile atmosferice (temperatură și așa mai departe). Upomyanytoe
în disksii, ecuația de timp este calculată din formularul aproximat
De la un ajutor pentru amatori de astronomie. Media adoptată
valoarea refracției orizontului. Momente de răsărit și apus de soare
partea superioară a soarelui. Înălțimea punctului de observare nu este calculată (este acceptată
egal cu zero).

Iată formulele "în forma finală". Toate valorile inițiale și intermediare
sunt înlocuite și poluchayutsya în gradyysah și parts gradas, final
Rezultatul este prezentat în ore și fracțiuni de o oră. Nu uitați să mutați cotele oră
în minut!

Intrare: NS - lățimea punctului de observare,
WE este longitudinea sitului de observare,
JD - ziua Julian (formatul "în forma finală" vezi mai jos),
și în final veți avea nevoie de centura de siguranță (în ore).

Urcarea directă a Soarelui mijlociu la prânz pe Greenwich:
PVSS = <0.93845605 + 0.0027379092 * (JD - 2415079)> * 360,
unde parantezele se referă la preluarea părții rare.

Ecuația de timp:
УрВp = 1,925 * sin (ПВСС + 78) - 2,375 * sin (2 * ПВСС)

Ascensiunea directă a adevăratului soare: PVIS = PVSS + URVp

Declinarea adevăratului Soare: SCIS = arctg (0.43362 * sin PVIS)

Durata zilei:
PlPD = arccoși (- (sin NS * sin SCIS + 0,014834754) / (cos NS * cos SCIS))

Răsărit-Apus de soare:
(УрВp - WE + - ПППД) / 15 + 12 + centură de santină

Asta e tot! Aveți încă nevoie de un formular pentru JD. Nu am forme complete, nu există
numai pentru secolul nostru și pentru secolul următor. Comti nyzhno, se completează, dar nu știu
garantiya, în care intervalul de precizie a formulelor de mai sus este stocat
pentru răsărit și apus de soare.

Intrare: YY = AAAA - 1900, MM, DD.

1. MM = MM - 3.
2. Dacă MM <0, то:
MM = MM + 12, YY = YY - 1.
3. JD = [YY * 365,25] + [MM * 30,6 + 2415079,5] + DD
Suporturile partajate înseamnă a lua întreaga parte.

Încă câteva remarci.

Aceste formulare la momentul respectiv au fost făcute pentru calcularea unui program
calculator (prin urmare, precizia "calculatorului" a tuturor constantelor este de 8 caractere) și
"tyutelka in tyutelky" se încadrează în memoria lui. Pe calculatorul poate fi luată în considerare
mai precis, după ce a atins o sursă de perisabilitate. Ascentul direct al Soarelui
rulează pe 12 ore în ziua Grinwichy a calculului și nu se calculează pentru momente
răsăritul și apusul soarelui se schimbă ușor. În zona Grinwicha, eroarea este
ordinea unei schimbări de patru ore în timpul răsăritului / răsăritului de soare și pe uscat
pe fața Pământului, dacă nu la întreaga schimbare drastică poate ajunge (în epocă
echinocțiul pe mijlocul mării - câteva minute). Pentru a șterge acest lucru
eroare, este necesar:

1) calculați timpul de răsărit și de apus de soare direct din câmpurile din primul
apropierea;

2) transferați timpul de răsărit și de apus (separat) al acestor date în
Zilele Julian (cu o parte dubioasă);

3) încă de două ori (separat pentru răsărit și pentru apus de soare) pentru a efectua un calcul pentru
formele inițiale, dar în loc de "pur" înlocuitorul zilei Iulian prideydyuschie
valoare.

Teoretic, există un număr infinit de astfel de iterații, dar
De fapt, procesul se converge foarte repede, iar eroarea după a doua iterație va fi
mai puțin datorită lipsei de influență a vremii asupra refracției.

Adăugare: aici sunt cele mai recente macro-uri pentru C pentru a calcula JD pentru
orice dată. Luat dintr-un program de lucru.

typedef lung DJD; // data ca zi iuliană

#define DateToDJD_YEAR_CORRECTED (aaaa, mm) / * intern * / \
((DJD) (aaaa) - ((mm) <3. 1. 0) )

#definiti DateToDJD_MONTH_CORRECTED (mm) / * intern * / \
((mm) + ((mm) <3. 12. 0) )

#define DataToDJD (aaaa, mm, dd) \
((DataToDJD_YEAR_CORRECTED (aaaa, mm) * 1461) / 4 \
- DateToDJD_YEAR_CORRECTED (aaaa, mm) / 100 \
+ DateToDJD_YEAR_CORRECTED (aaaa, mm) / 400 \
+ (DateToDJD_MONTH_CORRECTED (mm) * 306-3) / 10 \
+ 1721028L + (dd))
=== Cut ===

Cu respect Zinoviy.

Articole similare