De zichtbaarheidsduur van sterren, planeten, planetoiden en kometen.

----------------------------------------------------------------------

 

Met het programma ZIDUUR is het mogelijk om voor elke ster, planeet,

planetoide of komeet een zichtbaarheidsduurdiagram te maken. Dit is een

diagram waarin te zien is wanneer en hoelang een bepaald hemelobject

zichtbaar is. Het diagram wordt getekend voor een bepaald jaar en

geografische breedte.

 

De invoer.

------------

 

Nadat het programma gestart is komen we in het menu. Hier kan er gekozen

worden uit zes mogelijkheden, waarvan de laatste het programma doet

beeindigen.

 

1. Een zichtbaarheidsduurdiagram voor een ster.

2. Een planeet.

3. Alle planeten.

4. Planetoiden en periodieke kometen.

5. Niet periodieke kometen.

 

Na een keuze gemaakt te hebben wordt er gevraagd voor welk jaar en

geografische breedte (zuidelijk halfrond negatief) er een diagram getekend

moet worden.

 

Dan wordt er gevraagd naar de diepte van de Zon onder de horizon en de

hoogte van het object boven de horizon. Dit zijn waarden die betrekking

hebben op de helderheid van het object. De eerste is het gevolg van de

verstrooiing van het zonlicht door de atmosfeer (=schemering). De sterren

worden niet direct zichtbaar als de Zon onder de horizon verdwijnt.

Gewoonlijk vullen we hier negen in. Dit is in het midden van de nautische

schemering. De tweede is het gevolg van de extinctie. Sterren worden niet

direct zichtbaar als zij boven de horizon verschijnen. Gewoonlijk vullen

we hier vijf in.

Er moet opgemerkt worden dat dit richtwaarden zijn. Zwakkere objecten

vereisen een meer donkere hemelachtergrond en verschijnen pas hoger boven

de horizon dan vijf graden. Het weer speelt ook een belangrijke rol.

 

Hebben we in het menu voor een ster gekozen, dan vraagt het programma naar

zijn coordinaten. Deze coordinaten moeten gelden voor het equinox J2000.0.

Het programma corrigeert zelf voor de precessie.

Is er gekozen voor een planeet, dan wordt er gevraagd welke planeet

(Mercurius t/m Neptunus). De posities van de planeten worden door het

programma zelf berekend. Het is dus niet nodig deze in te voeren.

Bij de keuze alle planeten wordt er in een diagram de zichtbaarheidsduur

van alle planeten getekend. De planeten worden voor de duidelijkheid in

verschillende kleuren weergegeven:

 

Mercurius - grijs Saturnus - geel

Venus - lichtblauw Uranus - groen

Mars - rood Neptunus - donkerblauw

Jupiter - wit

 

Bij planetoiden en periodieke kometen vraagt het programma naar de

baanelementen. Ook deze moeten weer gelden voor het equinox J2000.0. Ook

bij de niet periodieke kometen wordt er naar de baanelementen gevraagd

(J2000.0). Het programma berekend dan uit deze baanelementen de posities.

Het enige verschil tussen keuze vier (planetoiden en periodieke kometen)

en keuze vijf (de niet periodieke kometen) is dat er bij keuze vier

uitgegaan wordt van een elliptische baan en bij keuze vijf van een

parabolische baan.

 

Het diagram.

--------------

 

Op het scherm wordt een rooster getekend met als getekend met als hoogste

waarde de maximale duur van een nacht op de gekozen geografische breedte.

Dit is vijftien uren op 52 graden noord en een diepte van de Zon van 9

graden.

 

Vervolgens worden om de drie dagen de cordinaten van de Zon berekend, de

coordinaten van de gekozen planeet, planetoide of komeet, de duur van de

nacht en de zichtbaarheidsduur van het object.

 

Staat het gegeven object ten westen van de Zon, dus aan de ochtendhemel,

dan tekent het programma een onderbroken lijn. Staat het object en oosten

van de Zon, aan de avondhemel, dan wordt er een ononderbroken lijn getrokken.

 

De mogelijkheden.

-------------------

 

Uit het zichtbaarheidsduurdiagram zijn de volgende zaken af te lezen:

 

- Zichtbaarheidsduur van een hemellichaam op een bepaalde datum

- Periode/datum van maximale zichtbaarheid

- Periode/datum van onzichtbaarheid

- Datum van de heliakische opkomst

- Datum van de heliakische ondergang

- Of het object 's ochtends danwel 's avonds zichtbaar is

- Oppositiedatum van het object met de Zon

- Conjunctie met de Zon

- Lengte van de nacht

 

Verder kan er volop geexperimenteerd worden met het programma. Zo kan

bijvoorbeeld gekeken worden hoeveel uur Venus of Mercurius na/voor de Zon

ondergaat/opkomt, hoe het zichtbaarheidsduurdiagram enorm vereenvoudigt

naarmate de geografische breedte kleiner wordt, wanneer de hondsdagen

beginnen, in welk gedeelte van de nacht Saturnus zichtbaar is, hoe in de

herfst objecten snel zichtbaar worden in de ochtendschemering terwijl

objecten in de avondschemering juist langzaam verdwijnen, wanneer

planetoide Vesta in oppositie is en hoe Mars komende jaren steeds langer

zichtbaar wordt tot wel 22 maanden lang.

 

Vragen, opmerkingen en suggesties t.a.v. het programma kunt u richten naar:

 

J. v.d. Kassteele

Heereweg 1

4317 AJ Noordgouwe

----------------------------------------------------------------------------

 

LISTING

-------


CLS

DEFDBL A-Z

DEF FNI (X) = X - 360 * INT(X / 360)

PI = 4 * ATN(1)

DEF FNR (X) = X * PI / 180

DEF FND (X) = X * 180 / PI

DEF FNS (X) = ATN(X / SQR(1 - X ^ 2))

DEF FNC (X) = PI / 2 - FNS(X)

 

invoer:

PRINT " De zichtbaarheidsduur van sterren, planeten, planetoiden en kometen"

PRINT STRING$(69, 196)

PRINT

PRINT "1. Sterren"

PRINT "2. Planeten"

PRINT "3. Alle planeten"

PRINT "4. Planetoiden en periodieke kometen"

PRINT "5. Niet periodieke kometen"

PRINT "6. Programma beeindigen"

keuze:

K$ = INPUT$(1)

IF INSTR("123456", K$) = 0 THEN GOTO keuze

IF K$ = "6" THEN CLS : END

PRINT

INPUT "Welk jaar .......................... "; JR

T = (JR - 1999.5) / 100

J = JR: M = 1: D = 1

GOSUB juldag

JD0 = JD

HE = FNR(23.43929111# - (46.815 * T - .00059 * T ^ 2 + .001813 * T ^ 3) / 3600)

ECZ = .016708617# - 4.2037E-05 * T - 1.236E-07 * T ^ 2

PRINT

INPUT "Welke geografische breedte (D,M) ... "; D, M

S = 1: IF D < 0 THEN S = -1: D = -D

GB = FNR(S * (D + M / 60))

PRINT

INPUT "Diepte Zon onder de horizon (D) .... "; X: HZ0 = FNR(ABS(X))

INPUT "Hoogte object boven de horizon (D) . "; X: HS0 = FNR(ABS(X))

PRINT

ND = (SIN(HZ0) - SIN(ABS(GB)) * SIN(HE)) / (COS(GB) * COS(HE))

IF ND < -1 THEN ND = 24 ELSE ND = INT(FND(FNC(ND)) / 7.5) + 1

ON VAL(K$) GOSUB sterren, planeten, scherm, plperkom, nperkom

GOTO scherm

 

sterren:

INPUT "Rechte klimming ster (H,M) ......... "; H, M

RK = FNR(15 * (H + M / 60))

INPUT "Declinatie ster (D,M) .............. "; D, M

S = 1: IF D < 0 THEN S = -1: D = -D

DL = FNR(S * (D + M / 60))

M = 3.07496 + .00186 * T: N = 1.33621 - .00057 * T

DA = (M + N * SIN(RK) * TAN(DL)) / 240

DD = (N * COS(RK)) / 240

RK = FND(RK) + DA * 100 * T

DL = DL + FNR(DD * 100 * T)

RETURN

 

planeten:

INPUT "Welke planeet (ME,VE,MA,JU,SA,UR,NE) "; P$

IF P$ = "" THEN GOTO planeten

IF INSTR("MEVEMAJUSAURNE", P$) = 0 THEN GOTO planeten

leesbaan:

IF P$ = "ME" THEN RESTORE mer: GOTO baan

IF P$ = "VE" THEN RESTORE ven: GOTO baan

IF P$ = "MA" THEN RESTORE mar: GOTO baan

IF P$ = "JU" THEN RESTORE jup: GOTO baan

IF P$ = "SA" THEN RESTORE sat: GOTO baan

IF P$ = "UR" THEN RESTORE ura: GOTO baan

IF P$ = "NE" THEN RESTORE nep: GOTO baan

baan:

FOR I% = 1 TO 5: READ A, B, C, D

E(I%) = A + T * (B + T * (C + T * D))

NEXT

HA = E(1): EC = E(2): IN = FNR(E(3)): LK = FNR(E(4)): AP = FNR(E(5) - E(4))

RETURN

 

plperkom:

INPUT "Epoche (D,M,J) ..................... "; D, M, J

GOSUB juldag

JDE = JD

nul1:

INPUT "Halve grote as (AE)................. "; HA

IF HA = 0 THEN GOTO nul1

DB = .9856076686# / (HA * SQR(HA))

INPUT "Exenticiteit ....................... "; EC

INPUT "Inclinatie (D) ..................... "; IN

INPUT "Lengte klimmende knoop (D) ......... "; LK

PRINT "[A]rgument of [L]engte perihelium .. ?"

A$ = INPUT$(1): PRINT CHR$(30);

IF A$ = "A" THEN INPUT "Argument van het perihelium (D) .... "; AP: GOTO verder1

INPUT "Lengte van het perihelium (D) ...... "; LP

AP = LP - LK

verder1:

PRINT "Middelbare [A]nomalie of [L]engte .. ?"

A$ = INPUT$(1): PRINT CHR$(30);

IF A$ = "A" THEN INPUT "Middelbare anomalie (D) ............ "; MA0: GOTO verder2

INPUT "Middelbare lengte (D) .............. "; ML

MA0 = ML - LK - AP

verder2:

IN = FNR(IN): LK = FNR(LK): AP = FNR(AP)

GOSUB precbaan

RETURN

 

nperkom:

INPUT "Tijdstip periheliumpassage (D,M,J) . "; D, M, J

GOSUB juldag

JDT = JD

nul2:

INPUT "Periheliumafstand (AE) ............. "; PA

IF PA = 0 THEN GOTO nul2

INPUT "Inclinatie (D) ..................... "; IN

INPUT "Lengte klimmende knoop (D) ......... "; LK

INPUT "Argument van het perihelium (D) .... "; AP

IN = FNR(IN): LK = FNR(LK): AP = FNR(AP)

GOSUB precbaan

RETURN

 

juldag:

IF M <= 2 THEN J = J - 1: M = M + 12

A = INT(J / 100): B = 2 - A + INT(A / 4)

JD = INT(365.25 * (J + 4716)) + INT(30.6001 * (M + 1)) + D + B - 1524.5

RETURN

 

precbaan:

IN0 = IN: LK0 = LK: AP0 = AP

P1 = FNR((47.0029 * T - .03302 * T ^ 2 + .00006 * T ^ 3) / 3600)

P2 = FNR((629554.9824# - 869.8089 * T + .03536 * T ^ 2) / 3600)

P3 = FNR((5029.0966# * T + 1.11113 * T ^ 2 - .000006 * T ^ 3) / 3600) + P2

A = SIN(IN0) * SIN(LK0 - P2)

B = -SIN(P1) * COS(IN0) + COS(P1) * SIN(IN0) * COS(LK0 - P2)

IN = FNS(SQR(A ^ 2 + B ^ 2))

IF IN0 > .5 * PI THEN IN = PI - IN

LK = P3 + ATN(A / B)

IF B < 0 THEN LK = LK + PI

A = -SIN(P1) * SIN(LK0 - P2)

B = SIN(IN0) * COS(P1) - COS(IN0) * SIN(P1) * COS(LK0 - P2)

AP = AP0 + ATN(A / B)

RETURN

 

scherm:

SCREEN 12

WINDOW (-11.5, -.7)-(366, ND + .3)

RESTORE dagnr

FOR I% = 1 TO 13: READ X

LINE (X, 0)-(X, ND), 8

NEXT

FOR I% = 0 TO ND

LINE (1, I%)-(366, I%), 8

NEXT

LOCATE 30, 5

PRINT "JAN FEB MRT APR MEI JUN JUL AUG SEP OKT NOV DEC";

RESTORE uren

FOR I% = 0 TO ND: READ U$

PSET (-11.5, I% + .15), 0: DRAW "C15S20": DRAW U$

PSET (-11, I% + .15), 0: DRAW "C15S20": DRAW U$

NEXT

JD = JD0 + 1: KL = 15: NDT = 1

IF K$ <> "3" THEN GOTO hoofdprog

 

alleplan:

P$ = "ME": KL = 7: GOSUB leesbaan: GOSUB hoofdprog: NDT = 0

P$ = "VE": KL = 11: GOSUB leesbaan: GOSUB hoofdprog

P$ = "MA": KL = 12: GOSUB leesbaan: GOSUB hoofdprog

P$ = "JU": KL = 15: GOSUB leesbaan: GOSUB hoofdprog

P$ = "SA": KL = 14: GOSUB leesbaan: GOSUB hoofdprog

P$ = "UR": KL = 10: GOSUB leesbaan: GOSUB hoofdprog

P$ = "NE": KL = 9: GOSUB leesbaan: GOSUB hoofdprog

A$ = INPUT$(1): SCREEN 0: GOTO invoer

 

hoofdprog:

T = (JD - 2451545) / 36525

MLZ = 280.46645# + 36000.76983# * T + .0003032# * T ^ 2

MAZ = 357.5291 + 35999.0503# * T - .0001559# * T ^ 2 - 4.8E-07 * T ^ 3

MLZ = FNR(FNI(MLZ))

MAZ = FNR(FNI(MAZ))

C = (1.9146 - .004817 * T - .000014 * T ^ 2) * SIN(MAZ)

C = FNR(C + (.019993 - .000101 * T) * SIN(2 * MAZ) + .00029 * SIN(3 * MAZ))

HLZ = MLZ + C

WAZ = MAZ + C

RVZ = (1.000001018# * (1 - ECZ ^ 2)) / (1 + ECZ * COS(WAZ))

RKZ = FND(ATN(COS(HE) * TAN(HLZ)))

IF COS(HLZ) < 0 THEN RKZ = RKZ + 180

DLZ = FNS(SIN(HE) * SIN(HLZ))

ON VAL(K$) GOTO oponder, planetenp, planetenp, plperkomp, nperkomp

 

planetenp:

IF P$ = "ME" THEN RESTORE lmer

IF P$ = "VE" THEN RESTORE lven

IF P$ = "MA" THEN RESTORE lmar

IF P$ = "JU" THEN RESTORE ljup

IF P$ = "SA" THEN RESTORE lsat

IF P$ = "UR" THEN RESTORE lura

IF P$ = "NE" THEN RESTORE lnep

READ A, B, C, D

ML = A + T * (B + T * (C + T * D))

MA = FNR(FNI(ML - E(5)))

EA0 = MA

GOTO anomalie

 

plperkomp:

MA = FNR(MA0 + (JD - JDE) * DB)

EA0 = MA

GOTO anomalie

 

nperkomp:

W = (.03649116245# * (JD - JDT)) / (2 * PA * SQR(PA))

Y = (W + SQR(W ^ 2 + 1)) ^ (1 / 3)

S = Y - 1 / Y

WA = 2 * ATN(S):

RV = PA * (1 + S ^ 2)

GOTO positie

 

anomalie:

EA = MA + EC * SIN(EA0)

IF ABS(EA - EA0) > .0000001 THEN EA0 = EA: GOTO anomalie

WA = 2 * ATN(SQR((1 + EC) / (1 - EC)) * TAN(EA / 2))

RV = HA * (1 - EC * COS(EA))

 

positie:

U = WA + AP

HL = LK + ATN(COS(IN) * TAN(U))

IF COS(U) < 0 THEN HL = HL + PI

HB = FNS(SIN(U) * SIN(IN))

X = RV * COS(HB) * COS(HL) + RVZ * COS(HLZ)

Y = RV * COS(HB) * SIN(HL) + RVZ * SIN(HLZ)

Z = RV * SIN(HB)

EL = ATN(Y / X)

IF X < 0 THEN EL = EL + PI

EB = ATN(Z / SQR(X ^ 2 + Y ^ 2))

RK = FND(ATN((SIN(EL) * COS(HE) - TAN(EB) * SIN(HE)) / COS(EL)))

IF COS(EL) < 0 THEN RK = RK + 180

DL = FNS(SIN(EB) * COS(HE) + COS(EB) * SIN(HE) * SIN(EL))

 

oponder:

S = FNI(280.46061837# + 360.98564736629# * (JD - 2451545!) + 3.87933E-04 * T ^ 2)

H0 = -HZ0: A = FNI(RKZ): D = DLZ: ZZ = 1

GOSUB ziduur

ZZ = 0: Z1 = MS: Z2 = MR: ND = Z2 - Z1

H0 = HS0: A = FNI(RK): D = DL: SS = 1

GOSUB ziduur

SS = 0: S1 = MR: S2 = MS

GOTO ziduur1

 

ziduur:

H = (SIN(H0) - SIN(GB) * SIN(D)) / (COS(GB) * COS(D))

IF H > 1 AND ZZ = 1 THEN ZD = 24: ND = 24: RETURN teken

IF H < -1 AND ZZ = 1 THEN ZD = 0: ND = 0: RETURN teken

IF H > 1 AND SS = 1 THEN ZD = 0: RETURN teken

IF H < -1 AND SS = 1 THEN ZD = Z2 - Z1: RETURN teken

H = FND(FNC(H))

MT = (A - S) / 360

MR = MT - H / 360

MS = MT + H / 360

MR = 24 * (MR - INT(MR))

MS = 24 * (MS - INT(MS))

IF MR < 12 THEN MR = MR + 24

IF MS < 12 THEN MS = MS + 24

RETURN

 

ziduur1:

IF S2 < Z2 THEN MIN = S2 ELSE MIN = Z2

IF S1 > Z1 THEN MAX = S1 ELSE MAX = Z1

IF S1 > S2 THEN GOTO ziduur2 ELSE ZD = MIN - MAX: IF ZD < 0 THEN ZD = 0

GOTO teken

 

ziduur2:

ZD1 = MIN - Z1: IF ZD1 < 0 THEN ZD1 = 0

ZD2 = Z2 - MAX: IF ZD2 < 0 THEN ZD2 = 0

ZD = ZD1 + ZD2

 

teken:

IF FNI(RK - RKZ) < 180 THEN ST = &HFFFF ELSE ST = &H3333

X = JD - JD0

IF X = 1 AND NDT = 1 THEN PSET (X, ND), 7

IF X > 1 AND NDT = 1 THEN LINE (X - 3, ND0)-(X, ND), 7

IF X = 1 THEN PSET (X, ZD), KL ELSE LINE (X - 3, ZD0)-(X, ZD), KL, , ST

JD = JD + 3

IF JD < JD0 + 368 THEN ZD0 = ZD: ND0 = ND: GOTO hoofdprog

IF K$ <> "3" THEN A$ = INPUT$(1): SCREEN 0: GOTO invoer

JD = JD0 + 1

RETURN

 

mer:

DATA 0.387098310,0,0,0

DATA 0.20563175,0.000020406,-2.84E-8,-1.7E-10

DATA 7.004986,0.0018215,-1.809E-5,5.3E-8

DATA 48.330893,1.1861890,0.00017587,2.11E-7

DATA 77.456119,1.5564775,0.00029589,5.6E-8

ven:

DATA 0.723329820,0,0,0

DATA 0.00677188,-0.000047766,9.75E-8,4.4E-10

DATA 3.394662,0.0010037,-8.8E-7,-7E-9

DATA 76.679920,0.9011190,0.00040665,-8E-8

DATA 131.563707,1.4022188,-0.00107337,-5.315E-6

mar:

DATA 1.523679342,0,0,0

DATA 0.09340062,0.000090483,-8.06E-8,-3.5E-10

DATA 1.849726,-0.0006010,1.276E-5,-6E-9

DATA 49.558093,0.7720923,1.605E-5,2.325E-6

DATA 336.060234,1.8410331,0.00013515,3.18E-7

jup:

DATA 5.202603191,1.913E-7,0,0

DATA 0.04849485,0.000163244,-4.719E-7,-1.97E-9

DATA 1.303270,-0.0054966,4.65E-6,-4E-9

DATA 100.464441,1.0209550,0.00040117,5.69E-7

DATA 14.331309,1.6126668,0.00103127,-4.569E-6

sat:

DATA 9.554909596,-2.1389E-6,0,0

DATA 0.05550862,-0.000346818,-6.456E-7,3.38E-9

DATA 2.488878,-0.0037363,-0.00001516,8.9E-8

DATA 113.665524,0.8770979,-0.00012067,-2.380E-6

DATA 93.056787,1.9637694,0.00083757,4.899E-6

ura:

DATA 19.218446062,-3.72E-8,9.8E-10,0

DATA 0.04629590,-0.000027337,7.90E-8,2.5E-10

DATA 0.773196,0.0007744,0.00003749,-9.2E-8

DATA 74.005947,0.5211258,0.00133982,0.000018516

DATA 173.005159,1.4863784,0.00021450,4.33E-7

nep:

DATA 30.110386869,-1.663E-7,6.9E-10,0

DATA 0.00898809,6.408E-6,-8E-10,-5E-11

DATA 1.769952,-0.0093082,-7.08E-6,2.8E-8

DATA 131.784057,1.1022057,0.00026006,-6.36E-7

DATA 48.123691,1.4262677,0.00037918,-3E-9

' L

lmer: DATA 252.250906,149474.0722491,0.00030397,1.8E-8

lven: DATA 181.979801,58519.2130302,0.00031060,1.5E-8

lmar: DATA 355.433275,19141.6964746,0.00031097,1.5E-8

ljup: DATA 34.351484,3036.3027889,0.00022374,2.5E-8

lsat: DATA 50.077471,1223.5110141,0.00051952,-3E-9

lura: DATA 314.055005,429.8640561,0.00030434,2.6E-8

lnep: DATA 304.348665,219.8833092,0.00030926,1.8E-8

dagnr:

DATA 1,32,60,91,121,152,182,213,244,274,305,335,366

uren:

DATA "BR2RD2LU2","BR3D2","BR2RDLDR","BR2RDNLDL","BR2DRNUD","BR2NRDRDL"

DATA "BR2NRD2RUL","BR2RD2","BR2RDNLDLU2","BR2BD2RU2LDR","BRD2BRRU2LD2"

DATA "BRD2BR2U2","BRD2BRNRURUL","BRD2BRRUNLUL","BRD2BR2UNULU"

DATA "BRD2BRRULUR","BRD2BRNURULUR","BRD2BR2U2L","BRD2BRUNRURD2L"

DATA "BRD2BRRU2LDR","RDLDRBRRU2LD2","RDLDRBR2U2","RDLDRBRNRURUL"

DATA "RDLDRBRRUNLUL","RDLDRBR2UNULU"

 

TERUG