ascii-side-of-the-moon 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/dist/cli.js +579 -0
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -4,6 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
For a given date it returns a 29 row by 60 column string.
|
|
6
6
|
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
## CLI Usage
|
|
10
|
+
|
|
11
|
+
You can use this package directly from the command line:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Show moon for current date
|
|
15
|
+
npx ascii-side-of-the-moon
|
|
16
|
+
|
|
17
|
+
# Show moon for a specific date
|
|
18
|
+
npx ascii-side-of-the-moon 2025-01-01
|
|
19
|
+
```
|
|
20
|
+
|
|
7
21
|
## Example
|
|
8
22
|
|
|
9
23
|
```js
|
|
@@ -35,3 +49,11 @@ pnpm run render:demo_animate 2025-01-01 2025-12-30
|
|
|
35
49
|
|
|
36
50
|
## Char aspect ratio.
|
|
37
51
|
This package assumes a character ratio of 10/22.
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## Preview image
|
|
55
|
+
The preview svg was generated with these commands:
|
|
56
|
+
```sh
|
|
57
|
+
asciinema rec -c "pnpm run render:demo_animate 2025-07-25 2025-08-23" moon.cast
|
|
58
|
+
cat moon.cast | npx svg-term-cli --out=moon.svg
|
|
59
|
+
```
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,579 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/core/astronomy.ts
|
|
4
|
+
import * as AstronomyNS from "astronomy-engine";
|
|
5
|
+
var Astronomy = AstronomyNS.default ?? AstronomyNS;
|
|
6
|
+
function addDays(d, days) {
|
|
7
|
+
const n = new Date(d.getTime());
|
|
8
|
+
n.setDate(n.getDate() + days);
|
|
9
|
+
return n;
|
|
10
|
+
}
|
|
11
|
+
function isWaxingAt(date) {
|
|
12
|
+
const today = Astronomy.Illumination(Astronomy.Body.Moon, date).phase_fraction;
|
|
13
|
+
const tomorrow = Astronomy.Illumination(Astronomy.Body.Moon, addDays(date, 1)).phase_fraction;
|
|
14
|
+
return tomorrow > today;
|
|
15
|
+
}
|
|
16
|
+
function getMoonState(date) {
|
|
17
|
+
const illum = Astronomy.Illumination(Astronomy.Body.Moon, date);
|
|
18
|
+
const lib = Astronomy.Libration(date);
|
|
19
|
+
return {
|
|
20
|
+
date,
|
|
21
|
+
phase: {
|
|
22
|
+
phaseAngleDeg: illum.phase_angle,
|
|
23
|
+
illuminatedFraction: illum.phase_fraction,
|
|
24
|
+
isWaxing: isWaxingAt(date)
|
|
25
|
+
},
|
|
26
|
+
size: {
|
|
27
|
+
distanceKm: lib.dist_km,
|
|
28
|
+
angularDiameterDeg: lib.diam_deg
|
|
29
|
+
},
|
|
30
|
+
libration: {
|
|
31
|
+
elon: lib.elon,
|
|
32
|
+
elat: lib.elat
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// src/render/ascii.json
|
|
38
|
+
var ascii_default = {
|
|
39
|
+
moons: [
|
|
40
|
+
{
|
|
41
|
+
index: 0,
|
|
42
|
+
distance_km: 405493.5,
|
|
43
|
+
libration_elat: -0.888,
|
|
44
|
+
libration_elon: -0.412,
|
|
45
|
+
ascii: ' \n \n ._ . - . \n ,_++> a, +. `-. \n zr\' ^ ~")ssy_ss_. e__ \n ^\' w3$B$#R$2tBW&`x. \n M@$@@E@@$YAm5Q@s<T \n _*4Fk ;_ . : _r 4$g$B` `T!~4Z HDb*y_ \n 7w=:-yyXm#sg@$$@$#Z . R$@$@R$?@` \n ,Z$Kj9@W@$@@@@@@BG@w., / e$$0@5@Bbl" \n } z$@@y@@@@@@@@@$$@@@B@w$L cyM%H$$WP=K* \n /^ 9M@@@@@@@@@@@@@@@@@$@@$~ y, ?#$$; \'L \n MF. ?E@$$@@@@$@@@@@@@@@@g *z\'_. ,Z@@ + \n >w% E@@@@@@@@@@@@@@$@@@$$$%>$k- `y*.~$xtv \n ##y$_-_y_aL` ~@@@@@@@@@@$@$@@@@@$@$$yB@$$/~ ~^Q+ \n kXB@@_g@@@A`wgy@@$@@@@@@@@@@@$@@@$B@@@$@$I ~_ \n "_K@$Rb$^ ~MW$@$B@@@@@@$@$@@$@B$$@@@@5%sW v$v+ \n #U@W$9@W_ .yd@$@@$@@$@$@@@$$$@$$M$M@2B@&@zgM `"+ \n [F*$E$@g@d@RR$E@@@$$@R@@@@@Rg@B$@$@0$@2@@_ypJ~ \n \\\'MB@PR$@$@@$$$@g@@@@@@$$$$$@E0@G$@g@$$A$MgV( \n ^>Y$W3$@05$@B$$$@@@@M@$@R@@@BR$0$a@$@$@$@K? \n ~4&BWB@@@@@@@$@@@@$@@@@@B@$$@B$NEBgW$~^" \n `^^T&~v$R$B@@$@BB$$y@$$E@$$@A&N0M"~~ \n \'Nv?52EMJ!_@$5g@@$R@RA$@E@7nF"^ \n "^ 74~0~#<ERggkA=s3p4yyL. ` \n ` ``^^ ^@n8m+"`^ \n \n \n'
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
index: 1,
|
|
49
|
+
distance_km: 361882.7,
|
|
50
|
+
libration_elat: 5.044,
|
|
51
|
+
libration_elon: 0.661,
|
|
52
|
+
ascii: `
|
|
53
|
+
. -r..
|
|
54
|
+
_1{ *~ ML1W>u, _ . ^..,
|
|
55
|
+
y/ ^w@@$@sEgg_9u_{_
|
|
56
|
+
\` .yyB@$4@@@e#jmg\\Wk"*+.
|
|
57
|
+
\` -@R4@sF~~$WJ'R/~Z$%bk~\\
|
|
58
|
+
,"_ ^ . m _w@$@@\\ \\@Rw@$h@k@K7,
|
|
59
|
+
~T'~. _y y-w(4$a$@$F@$ : 'Z@$@R@R$@L
|
|
60
|
+
_L_<A@@@gy$$$@@$g$@@g_ y -9@@@$@W#)y=k_
|
|
61
|
+
a@@2g@@@@@@@@$@@$$@@$@$g$y. >3[~~QM$ZW" ~_
|
|
62
|
+
d$@@@@@@@@@@@@@@@@$@B@B@$%\` ,M '=$$$ 1
|
|
63
|
+
{ #[$@@@@@@@@@@@@@@@@$@@@@@@x4# -w -r?M@w V\\
|
|
64
|
+
?% , 4$B@@@@@@@@@@@@@@@@@@$$$@@"H[db^ sEM!^*aVc
|
|
65
|
+
y'_ jZ@@@@@@$@@@@@@@@$@@$@@@$$M@E@@$%~ . ~"\\
|
|
66
|
+
%vM_ _ _} "0@@@@@@$@@@@@B@@@@$@@@@@@@@M@@Z* Pj
|
|
67
|
+
<5%BgP,vg@@$Yf\`y4@@@@@@@@$@@$@@@$@@@@B$@@$@$@WzK yyu~
|
|
68
|
+
@2E$gW@@5F~ 4@@@@@@$@@@@@@@$@@$@@@@$@0@$@@$g@n$sz\`1H'i
|
|
69
|
+
+A@@$g$Z' _2$@@@@$$@@@$$$@@@B$@$@@@$B@@A$@4@#4yJj k
|
|
70
|
+
'&@K@@@HE__xamB@g@@@@@@@@$@@@@@$@@@@$@@@A@g04$Wg#HB7"'
|
|
71
|
+
HeAERBg$$@$$A@@0@$$B@@@@@@R@@$$$@$@@$5@B@a@b@W@WEU.
|
|
72
|
+
(~4@@E@@@W@@g@$$@@$@@@0MRWB@@$$5$@@$0$$@g@$$$@eRr/
|
|
73
|
+
"gj4ZE4@@$M$@$@$g$@@$@@W$@@A@$@$B@B@EB@00BBWTlM
|
|
74
|
+
^$F2@E$$$0@@@B@@0@@$@$@@$@gB@@$$EP$$$bRN#^~
|
|
75
|
+
"EZ8$ERAzBM@$B@@$$Z@ga@@2$@@g@0@9mwa4~\`<
|
|
76
|
+
\`!7RvsyJ_D$@~$0$$B@@@00%@$4AT2Ef7^<
|
|
77
|
+
T$('@KEWc54$2Z$M$R#@MUT@NK1 "
|
|
78
|
+
\`T^^+{$)$2a73I9;@%RcM\`"
|
|
79
|
+
~'"\`'~
|
|
80
|
+
`
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
index: 2,
|
|
84
|
+
distance_km: 363474.7,
|
|
85
|
+
libration_elat: -4.493,
|
|
86
|
+
libration_elon: 2.394,
|
|
87
|
+
ascii: " _ \n . .- T - -, \n -bZ?-aLrw*j_ : . \n : _$Y^ ~ ^-XRyw|,, ~- \n F`` _#@@dgsgs _2_! \n _ : . y@@@@$zE$AD21ftW' \n _yWBxm' *- : . __ \"N$@@UOF4@b\\%sB7WR.' \n `s;wd__1 W_;Vn@yyag@$@5 `~ ,s,<%[gs/k \n t$$2AW@@@$@@$$@$$@@E$# r . \"@@$D$Wjny \n -:; . q@@@$$$$@$$$@@@@@@$@@@W _ K@5@$5E55Z \n v2K ~0@@@@@@@@@@@@@@@@@@B@@$$ylD y$@@5d@~Ewx \n _V$(. 7HB@$@@@@@@@@@@@@@$@@5$$@@F~ T d@gs | \n /v a; ; ```@@@$@@@@@@@B@@@$@@@@@$@ ,, ' ^T0$ \n L0@@$ v@$@@@@@@@@@@$@@@@@$@$@B;y: y,. +^ A$ , \n \\b2Y$$E{x2gz@L=_D5@@@@@@@@@@@$@@@@@$@@@$y_tw$@_ u\"^ ^W%' \n WLA$$@$%@@@@@B`Y=L@@$@@@@@@@@@$$@@@@@@$@$E@R@$@E \"{ \n ]y@NB@@@$$F ^B@@@B$@@@@@@$@@@@@$$@@@@@$@s0$@Z . \n {4X$@$@aR=e _R$@$@$$@@@@@@@$$$B@@@$@@@@E5@PYE\\ y) \n @*AgMB$$R5aR@@R$g@@@@@@@@@@@@@$@$@@B$$#$@Qjm@TdW/ j\"/ \n #aZW$MBMR@0@@@$@A@$@$@@@@$@$@@@W@$@E$@@$$WgHP%^~hu` \n `%$0$F$@$0@@@@B$$@@@@@@$@B@@E$@@@%@$@@@@$@W$@$BZ~ \n 4?9@dB$$R$@@$B$MB$@@@$$$$@$$@5@$@g@g@B$9b$@AZG \n *E@R$MR$$@@AZ$$R$@@$R$5$@@@D@$$$$$@ZE3@@a`^ \n AA-j_^AT$$E@E@$@$@$RB2@Wa@$@%R@@$5BT~v \n ^@V%@5@Q5WXE@@@R2@@RWR$b@$4@$WXMW] \n r'AF)[%st$@BEc$E@Bx?t5_@\"T`^ \n ~^ !7iT5$Z@@R0HW~4! \n ~ ~~ ` \n"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
index: 3,
|
|
91
|
+
distance_km: 363808.5,
|
|
92
|
+
libration_elat: -0.275,
|
|
93
|
+
libration_elon: 0.915,
|
|
94
|
+
ascii: " \n \\ l.r \n ._u:UK4 ^v w_ ~ ^\\ . \n . . v> ` ` `^4@Rj_Qx__ MBm \n .(~ 2g@$@@zgWi9%Qd|4 \n {0@@$5@@@B~D#gmHgk\"M \n _$g.y = _ _gDg$M\" `TYr~Z^ 1RvqF^ \n \"~`K'.:,_L _w_s2@y$$$@@R` !@%g@R*Mz#{ \n . &yg^YR@@s@$B$@@@@@W0Z ,@$0@$BRXU \\ \n w@@$f$$$$@@@@A@@@$B$@@&_ G; @@@B@@Zj0k#x \n M g@@@@@$@@@@@@@@@@@@@@@$@@@$+- -MM~~W@$# `!v \n !Xe =#$@@@@@0$@@@@@@B@$@@@$@@. =r . 44$$ ' \n M]| . \"@@@@@@@@@@$$@@@@@@@@@@$xfi m . wu=Az. $ \n `[#< J@@@@@@@@@@@@@@@@@@@@$@@g@_42s_ y?% ^K}@! \n <my$yy} ww,a_ .~$$@@@@@@@@@$@@@@@@@@R$$@B@@@$zs' ~`~ \n XNv9$@p$$@$$E3L*y0@@@@@@@@$@@@@@@@@@@$@@$@W2@gM- -. \n 'Vd@$Z@@@@\"` $$@@E@@@@@@@@@@@$@@@$$$@$@@$@$NKc . ,j1, \n wkBQR@@%k,! ,z@R$@@@@@@@@@@@@@@@@M@@@@@@$$@Wg\\$g* %>V \n `VJ$$s&0Bv_J$$0B0@$$$@$@@@@$@@$@$@$@$@@$$$@@@f@YF_L` ' \n ??K#gZ@@$@@@$s2$$@@@$@@@$$@@@B$@$$$@@G@R@ERBB@g#Xfuf \n twZRW2$@@@$$$@@@@$@@$$@$@B$@@$E@$0@@@E@M$@M5$@WyL \n ~\"E@@yE@@$@@$@@$@$@B@$$$@$E@@@$@$@$@$@@@@ER@27>\" \n ^!F5#g@@$@$$@EE$$@@@@$W@@M@@$$@0@@gKzBBK%9~ \n `'^~~^T~7R@g@R$$@B$@MQ$a$BE@@$gE@$HJP5(~ \n ` '}K$@g#R#0$15$@$Z@R@@BRz@$@V[Qe\\ \n `f='^4ysMh$54T$W42@PE~FfW&9~~ \n '~=\\ <?^F0%~>BR$?)^T\"` \n ` ~ ~~ \n"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
index: 4,
|
|
98
|
+
distance_km: 364350.7,
|
|
99
|
+
libration_elat: -5.105,
|
|
100
|
+
libration_elon: -1.866,
|
|
101
|
+
ascii: " \n . - ``` e . \n , -zq{^o{.1n, = \":\"y . \n . _Z0~ ` -ZAmLi,.. '_, \n M\" X@yygyw-x_2/Gk. \n . . . jg$@@$$g@@$1?V#WR}^_ \n s*R W M/ ;.. 4$5W$$RF@$WgEZ99@2q'\\ \n . 'w._w_y_7__-z@$ym@@@$2' T~~_$'/@2@*7j, \n y@ghT@@@$@@@@$@@@@$$W<- 7$E#@B$g4N \n ,} . y@@@W2B$@B@@@@@@@@$g@$ , / ug$$@B$@@8w; \n /|r 5B@@@@@@@@@R@@g@@@$@@@@@_w@ 7A@$@K@C45)|! \n hM: ^4$$@@@$$@@@@@@@$@@@B@@@@=^k _:4'~~@@$w'~`m; \n ^\"Z' ` . ~ 4@@@@@@@@@@@@@@$@@$@@@$ j_f^ =@@@ '\\ \n (g@@ _. 5@@@@@@@@@@@$@@@@@@$@@$4BW_yL _ 4YT@s .\\ \n eRZ$9@,Wgs$g,-{V$@@@@@@@@@@$@@@@@@$@$@@@zy@@_.\\#FF RB@~^ \n '|@@@sB@$$@B P=yg@@$@@@@@@@@@@@@@@@@$@@$$@$$@$F\" ^U . \n \\wAb@B@@$` $@@@@@@@@@@@$@@@@@$@$@$B@@@@WB$C\\. Q \n 3FB$A@m@ y$@@@@$$$@@@@@@@@B$$$@$$@@@Z@@B$m; {yX{ \n ^4H@0@@@KRy$@Ta@@@@@$@@@@@@$B@$@@Q$B@B@EB@@$$46z: ]EZ+ \n \\\"w@E3R@$@E$$@@@@@@R$@@@$@@@@$@$$$$@@@0@@$KMB\"3L(^;^ \n ~<%@E%W@B@R5@@$$$@$@@@@$@$$0@@@4R$B@W$@@0gB@b@@` \" \n nM%4$$g$E@@@@$@@@$$@$$@@$$B$@E$@$E$$RMBZ$$N%$V \n `=4EMT@Q@g@S2g@$@@$@@BE$@$0@@@$$$M@gW$@4Z9~/ \n !_3w~P#KB$@@g@@R5@@R$$@@@@$@RR$a44%44v^ \n 't\"Y#$XM@_\"55$$B@$@EgB$@$awR4MzG~| \n !-`z%T4@>ME&b~E9B$rT>4_-$4Y' \n ` `TWD13d~A2fK~Wv^= \n ` ''` \n"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
index: 5,
|
|
105
|
+
distance_km: 366333.9,
|
|
106
|
+
libration_elat: 0.278,
|
|
107
|
+
libration_elon: -3.312,
|
|
108
|
+
ascii: " \n ~' ^ _. . \n __*^w<-xr=<w ` ' '?, \n gf` ''\\KAy@-_w__ _)Mg, \n \" u2$$$R$gn&w@sB_M~(_ \n $@@$@B@@@@@$mg@gRk*>Y \n __ _! r _ _4@@@$~ ~R^~gE,sgm$GI}\\ \n ' ~ ,_y _k ,R@yW@@$@K`, $@&@@@a1&$K\". \n , al~_$@@@gBBg@g@@$00{ . @ \"$$$5B$$sMy\\u, \n .4@$4$@$$@@@@@@$@@@@@$y_VR }E@@@$W@s~wW7l. \n s$@@B@@@@$$@@@@@@$@@@@$$$@Y* {4rT~BM$qB \", \n N fd@E@@@@0@@@@@@@@@$@$@@$E_4_gF f=@M$ Rr \n 7! 9@@@@@@@@@@$@@@@@@@$@$$m$y@g___ +F*Y&m ,X \n VwL b@@$@$@@@@$@@@@@@@@@@@@@@b@$$R_1aB3^`4mWk{ \n J$Wz_L ._yx fB@@@@@@@@@$@@@$@@@@@$@@@@$@@2gF_ '^\"n) \n l4@$+E$$@@`E*y4@$@@$@@@@@@$@@@@@@@@M@$$@@$@@a. 7>o' \n R@RK@$$F`' 2$@@@@@@@@$@@@@@$@@$$@$$@@@B@$0@$k ,.nyd> \n lY$E@y4. ygR$@E#$@@@@@$$$$@$$@@$@@R$@$$$0a@@gM,%^> \n #q8@g@$wy2g$~$$@@$$@@@@@@@@@@@@@$@@0@$$W$@K@6D@LL\" +/ \n ^jJ0@@@g@@@gK$P@@@@$@@@@$@@$B$$$@$@Wg@g@@g$$g$E2B(<~ \n VWM64k$@$2@$@@$$@@@@@@$@$$@$@@$$B$@@$$R%@$@$@E$*( \n `=X@LZ$gB@$$@$g@$$@$@W@M@$@@$@W0B$@@$@$@$@$$@RV \n ^KM?N9$@@$@W5BB@#B$$$$$$R$@@$@@@Dd@%BMAmkWx^ \n 'H\"'%_RF2@$@Bg@@#GA$$5$R@@@@W$$BRkK1|`' \n <V=H@Z#$__3$bgA$Fe$RYR@R2Wy=%V` ^ \n `=L~YGT$6$49TEygg$gw1dse< '\" \n ~'!\"T~A4_EtR00>V~-~ \n ` ` \n"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
index: 6,
|
|
112
|
+
distance_km: 366534.2,
|
|
113
|
+
libration_elat: 5.395,
|
|
114
|
+
libration_elon: -3.121,
|
|
115
|
+
ascii: `
|
|
116
|
+
. : ' 7 __.
|
|
117
|
+
+ : =c_ws_ . . "",>
|
|
118
|
+
|'\` ~NEmszz$_E_a2wcju.
|
|
119
|
+
/ ;$y$@%h$$0*R5j@#WwyYn
|
|
120
|
+
4@5$gF^~@$JRg@\`T@KV3p2|_
|
|
121
|
+
, : _$$@$+ : a@$B4Em2y$g.-
|
|
122
|
+
.r ' :-|u 4D@g@@$$ , .2@@@@#B$@W@>_
|
|
123
|
+
_+ G$$gy9@@$sz$5$@@\` y@ . N9@@@$s$xFym>%
|
|
124
|
+
#gg|@@@@@@@@R@@@@@@@@$a@gL,.)4yk~Me@@WT '"v_
|
|
125
|
+
.d@$$$@@@@@@@@@@@@@@@@B@@$J\`_a*< Y4@@v (v
|
|
126
|
+
, 4MM$$@@@$@@@$$0@$@@@@@@@@g$$WyG , xK*HRy_ v:
|
|
127
|
+
!: ?@@@@@@@@@@@@@@@@@@@@$$g$ME$@yF *$MF ~@C}"|
|
|
128
|
+
uX . ty$$0@@@@@@@@@$@@@@@@@@@$$$@$@$@E ^{\\.L
|
|
129
|
+
Q4+ _ _ ;'@7@$@@@@@@@@@@@@@@@@@@@@@@@$@R$ !V!
|
|
130
|
+
#[%XI 4agMR4_-_@@$@@@@@@@@@$@@@$$@@@@@@$@$$@$z: w-Lvm.
|
|
131
|
+
~%m@Ed@$@F~ /$$@@g$E@@@$@@@@@@$@@@$@@@@@@$$B@a$$NT]W($\\+
|
|
132
|
+
lz@$$@@~ _$$@@@$$$@@@@@@@@@@$$0@$$@@$@$$W@A9@$$/ Uv
|
|
133
|
+
pXM@RgLj.1w@M@$@@@$$@@@$@@$@@@$@R@@@$$$$$$@@@@R@2$;/
|
|
134
|
+
MNK5@$@@@@@aW$E@@$$@@$@@@@$@@@$B@$@$@$$@R$$@$@@2*U"
|
|
135
|
+
"=?6F$R$$BR@B@@$@@@@$@AR2@$$E$@B@@g@@@y@$$@0W$2%4
|
|
136
|
+
"%wKD^@@$@y$@B$@$g$$@$B$$$@$@B@@$@@5@2k@@ZaF"\`'
|
|
137
|
+
'V@R$&$$BR$@M@0$R@B@$@@R@@@@$@@$@@@bBZ@JM^
|
|
138
|
+
'*?bKJ"%0$g@@$@E$$a$g$p5@g$eyB3RRZ$tF~ ~
|
|
139
|
+
~-g8k#@59g_y$@$F$$RTaE@Enf~5H|~)< \`
|
|
140
|
+
''$'"Pys/4dRHbD2kKZWa@RMXH +
|
|
141
|
+
~^~YMa.5~$_yWTKBa4=r^\`
|
|
142
|
+
\`\`
|
|
143
|
+
`
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
index: 7,
|
|
147
|
+
distance_km: 368573.4,
|
|
148
|
+
libration_elat: 5.829,
|
|
149
|
+
libration_elon: 3.778,
|
|
150
|
+
ascii: " \n . T r \n +_:X ={_r;_ , ~ - \n _y^ `` ' `^X@ygRBy=. ]ZC; \n u'^ _w%$@Rp$g*=E#7Vy,,\\ \n ' ~@KR@$F~M$V*_2'4$%]/}. \n _. , x ., . , ,g$m$@` $ewsP05k$M \n w75,F ;_ _w_/j$4$@$S@} t$@@@R@G@y \n 4gGJ<@@@@w@@@@@$0@@$s g $bdB@K6FGfs- \n H@@_@$@@$@@@@A@@@@@@$@Wg$y. \"N/~~@@@@ `~? \n i q@$@$@@$@@@@@@@@@$@@E2@$@k W S=@@) \\ \n ,_ M$B@@@@@@$@@$@$9@$$@@@R@@@w}\" _ ` 4^?@x. w \n $t ~?@$B@@@@@@@@@@@@@@@$@$@yyK X$4_. v'! ~*]^ \n ^W`w . - $@@@@@@@@@@@$@@@$@@@@@@@$$g$@@Wg~ '.7+ \n K$wG_ ._ _TM@@@@@@@@@$@@@@@@@@@$$$B@@$@0@Q* zl \n ;bWagg2'W@@@@$V\"*g@@@@@@@@@@@@@@@@@@@@@$@@$$@@4R/ zv| \n `vN4$$$$@@@FF~ 4$$$@W@@$@@@@@@$$@W$$$$@@$@$@B#4%@mP xJX \n {W@W$$@$@F y$@@@@@@@@$@@@$@@@$@@$$$@@@@@$%@B~_wa Y \n @Y@E$2@@@\"y ug@$@@@@@$$@@@$@@@@@W$$$@@W$#M$B@@@@B$?x \n {mKW@$@$@$@$@@@$0@@@$$B@$@@$@$@@@$$@@$@@yMAEE$0H5X \n [/aM@$R@B@@#$@$$@5$$@@$@@$$@@@@@#@@@$@E@@$@@@WX\\ \n ^t&W@$%T0@$@@g$@m@$@$@@@$$@$W@@BB@@@$@gbNR5k5L` \n [UZ$Z23@@@$B$@B5$@@@@$T@d5@@0@@$PM$$KRkW^^` \n '\\@PBKtYKTP@@M@g@@$@$gR$g$BWB$Bh3~8X' ` \n 'f?k>@ghg@MBT@8RE@fd$RnZs#?1w)[!: \n '\"~$J~m#?Bd$M4@gE@Z$0a3GGV1' ~ \n T^~^T`^j4Zlu*M4T ' ` \n \n"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
index: 8,
|
|
154
|
+
distance_km: 368792.8,
|
|
155
|
+
libration_elat: 1.882,
|
|
156
|
+
libration_elon: 4.299,
|
|
157
|
+
ascii: " \n .: . - \n ,_*_q -/nvu`. ' ' x \n jj+~ '` `'^hUyygZl _1r. \n <^~ w@B$M$$$g./5BY, \n .4@E@@a0@@#.1&$#$i{., \n u_: s r..4$@@@~ ~\" '$_,R@WQ,; \n -F'h~ _.y_4y1_Fd$gg@$@TL R$@MBE0M# \n :@z=w9@@@@@@@$$$M@$$$ / n$@g$BR${, \n '. 4@@$#@@@@B@@@@B@$@@@@gy_4+ `9e#@%g$\\\\~\\ \n r_ . 9$@$@@@$@@$@@@@@@@@@@R@@RBK `/ #g@5 ^ \n XQ? \"A@@@$@@@$$@@@@$@$@@@@@$@@ ? .\"^$&i \n /VzL . ..\"M@@@@@@@@@@@$@@@@@@@@@@[\"_ __ _. `V^#\\, : \n ^J,$y n@@@@@@@@@@@@@@@@@@@@@@$$y_WggwLjT` ~$w \n )S@@@L______ywJ.5@@@@@@@$@@@@@@B@@@@@@@@@@@B@g0i 'Y \n ^9650g@$2s@$$@F@*g#@$@@@@@@@@@@@@@@$$B$EBg@B$@Hf. ?| \n #3@M@$@@$@F~~ a@$@@$@$$@@@$@@@@@@@@@@$@@@V$@EO?; ?s4 \n Jjg@$$N$5Z., w$@@@@@@@@@@$@$@@@@0BW@$@RR$$$9@ZR$ x. \n ^4N%7W@R@y$wB9W@$@$@@@$@@@B@B@@@$$@@@@A$@B$Bdg@_jW: \n \\@$B$@@$g2@@@gE$W$@@@@B@@@$@@5@@$@E$@W$@@$gM@@@2k,` \n \"Wfj@$s@gg@@2@$$@@$@B$@@$@@$@@@$@$R$@@2@E22@EA$@# \n \"@BG0L$@B@@$@$@$$@R@$$@@E@$$@@@@g@R$$@@$$@MFt~ \n `fT$$%@R@$@$$d2sg$$@@$@@@@g$@$@@HRRM@ETT7+\" \n ?X@W~YT{WT#@B$$@@@$@$g0B@@W$#@@#$$dWn \n !8Hg@mE$EBVT&0y%$@0#sNEWAmpV*4M ~ \n ~n'__@2#Ga-BE@$sglEE(NNZJZ \n ^ ^ {3'9i@V_zM+>-~~ \n \n"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
index: 9,
|
|
161
|
+
distance_km: 370979.8,
|
|
162
|
+
libration_elat: -5.57,
|
|
163
|
+
libration_elon: 4.616,
|
|
164
|
+
ascii: ' \n . r F^. , ,. \n 7 , _mvpaW..,_.^ -r> , \n z$"``~ `r ~-zR9_ ` ` +. \n \' {Y~^ ~3Bwyak. .QU \n . . )gg$@R9g@R/Rtmu. \n , . _g@WyZ.xsv. , u7@E@AaK@@W"H%)__^ \n ; `T`$__ yw).f__.WRwya@$g@$` "?^-~_/X#!: \n < _ g@@*5g@@$$0@$@@$g@@53 4@@p@aRi< \n Jjp , ~g$@@$@@$@@@@@@@@@0@@@l , T@@E5@KL \n _4g@ R@$B@@@@@@@@@@$g$@$@@$$a_,\\ 2@$$$g8@\\ \n T>@{; 4M@@@@@@@@$@@@@$@@@@@@$$EePh "~~`~5$V/". \n _*@LZX . `$@@@R@@@@@@$@$$@@@$@@$K *R@; `: \n |$P@W%_ w _ r.@@@@@@@@@@@@@@@@@@@@@@@~ -, .n:01 > \n )XjE5B@@~aZ$gg$ya$$@@@@@@@@@@@$@@@@@$B@$gW _yN_ .X! 4M/` \n JD$@B@@@R0@@@$M~Fx@g@@@@@@@@@@@@g@@@@@@@$@Ws@@B(^ `>\' \n 7$4$P@$$$@F" R@$@@@@$@@@@W$@$@@$$@$$W$@$y@gL+ . \n !2BR$@6@@WMg __m$$@@@@@@@@@@@$@@@@@@B$@@@@E$@$%\\ . > \n 7*>M$@B@@0@Em$@@@@@@@@@@@@B@@@@$@@B$@@$$dRE@MRyy M \n ^!@$yEgZQ@$$@$@@@s@@@@$@@@@@g@@@gR@@ZB@@@@0BW@~~_v \n "9BR$@T#$@@gE@@$@@@$$$@B@@#@@@@g$$@@$s$g@@#$g$GR! \n \'M&@@@D@@R@@@@B@@$@R@@s@@@@$$@@@@BB@RR@WM0@@B" \n ~0B#@Bt@@@RCgy@E$@@@@$$$@@$E$@B@@@@$3@@<P \n \'2[@g_{iE@$Z@@0BKEE0$R$@$$#@5@$$$@@MT \n ~<[F8g(EzaZM$#@yM$4yB$$@$d4MW4W~^ \n \'R@/2Sy<MRg$W5D$^>OT\'" ~ \n ~r!7/4%E@@5vr*?^" \n \n'
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
index: 10,
|
|
168
|
+
distance_km: 372936.5,
|
|
169
|
+
libration_elat: -5.822,
|
|
170
|
+
libration_elon: -5.197,
|
|
171
|
+
ascii: " \n ; -: . \n _, >c +___' ,`i + ._ \n ._Nw^~\"~T~ ;\\ 9M_., \"`4o_ \n ^>~ . ^$@$2%2Wiu zRzq \n ` Lg@@@$@@ge$d$gZ2~aL \n _vW<> ;-' g$@$RZ&@B$4@K$$4R%_%M_ \n ` | ,,.: . _,xgEyX@@g$$M` \"4Y?$$~-MB]*K_g \n _zW*32@@g5y$@@R@$@@@@Kv '$$$W$m#mggJk \n :2@$WgBg@@$@@@@$@@$@@h_./yG j@@$@$WBw4M-, \n [ '4@@@$@@@@@@@@@@@$@@@$g2@$E,: ;@$$$@@@2#MIo( \n < ^w5@@@@$@@@@@@@@@@@@@@$@$@k j\"@@VF@@@@KM~\"|> \n rj $@$@@@@@@@@B@@$@@@@@@M~$y@Y ` R@$@% !| \n 5\\E , _@@@@@@@@@@@@@@@@@@@@$EK@@@$_, .eX#b> j \n \"KEN~;zyy$_, `0R$@$@@@@@@@@@@@@@$@R@@y@$$$~ -aA<^W1nV' \n #E0R@@$B##~F_yg@g@@@@@@@@@@@@@@@@@@$@$$@$@Z=\"~ ,'MI`' \n cMF$@B@' =#$@5@K$@@@@@@@@@@@$@$$$B@@$@@R$ .' \n w\\a@@m_, yz$5$@M~$@@@@$@@@$$@@@@$@@@@$@$s@t LyA'; \n i,kRR$@ma@@$gW@@@@@$$@@@@E@@$@$@@$$$@@@@$@@gwm ;%XP \n }44$KB@@@@g@$$$@@$@@@@@$@$@$@@$B@@@$@@@R@B@R$yX^,/^ \n YVAYT@@$Z@$@@@$@@@0@B$@@@@$$$@B@$$@@$$B@@W#ER4_~ \n SK@2@B@$B@@@@Z$5$@5@R@@@B@$D5@@200@MM@$4@E~_ \n ^I\"<Z24B@9y@g5$@@@@$g@@@$$@$@R@@$$R@@@Y?k` \n ~^j._;4$Ta@s@@@5@ER$$2@$$@gBsyAH4@O- \n `\"';tK/RyvR@Nq@@#$@$QE$@@E7$d\\J= + \n ~ Yg+F=9fP$12$F*+$)@~j~?` \n T~zE$45[~K=\"~ \n \n"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
index: 11,
|
|
175
|
+
distance_km: 376361.2,
|
|
176
|
+
libration_elat: 2,
|
|
177
|
+
libration_elon: -5.764,
|
|
178
|
+
ascii: ' \n ; .. _ \n .- yxw__ `\'( ` n> \n - ~"F M@g_-m\\_,, _W<x, \n l` . __$@$@@RK9>4$d$%,qn_ \n mg@$@@D@@$2D#g@sgMyJ4} \n .._ 4$@@@F~ ~F\\~k5~x$@@WMswt, \n ^r . ywyE@@@$;, #R$$@S$g$H*m . \n $ . @$y$UNg@LZ@@@@$ ~, \\ .g@@@$@$$$$dF;; \n js@ug@$@@$@@@@@$@$$@ysx$E{ ZR$$@$@RQ@M%)N^ \n . -@@@m$@@@@$@$@@$$@@R@@@@$#* [^M8F.$$@$@ ~MN \n _: 4ZR5@@@@@@@@@B$$@@@@@$@@@@B$@j ."^5g$_ >| \n (. *y@R@@@@@@@@@@@@@@@@@$@@$@@$zy.r3<VH@z_ *j \n \'_ )Z@R@@@@@@@@@@@@@@@$@@@$@@@B$sy$$\'M `AgWi^? \n Wd, . j ~Ey2@@@@@@@@@@@@@@@@@@@$@$$@$#E . ~?]X: \n X;0>)_g@RK7.ggA@@@@@@@@@@@@@@$@@@@@@$$g@@AB_ . _,j\' \n \\@ME@@$F~ .$@@$$T$$@@@@@@$$@@@@@@$@@@$@0@@ga1_$*@wK<_ \n 7#%BB$ y#j$$Za$@@@@@$$@@@@@@B@@$@@@$gEg@@@ ~&>\\ \n `,N4Rgy/jggR4W@@@$$@@@@@$$@@@$@B@@@@$@0@$@gg9$WW_j5r \n V\\2W$$AgR$y@$@@@@@@$@$@@@@@@BB@$g@@@$$E$WB$@AK@7+ \n YXnbM5@@d$@@@@a@$$@@$@@@@@$@0$@@@@@@B@$0$%@HK%2\' \n \'42K^RB@B$$$$@$@@@@$@@$M@$@$R$@$@@@@@@BW@$#{" \n ^"Z@0E@@BgM@$@@@$$E@@$@@B@$$B@@d$Zm@R#{~" \n `x`.U +$$@B@W@@@@gM$$@$#g$40A#gF[~$"M \n K@cm$M8wK@gG3g$R@g$s4@M7xH~4j^ ~ \n " -~~&CTp9=$$@9U$RE?kv7+ur \n `~` `T"-"<M5PT \n \n'
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
index: 12,
|
|
182
|
+
distance_km: 377700.5,
|
|
183
|
+
libration_elat: 5.801,
|
|
184
|
+
libration_elon: -5.923,
|
|
185
|
+
ascii: `
|
|
186
|
+
-
|
|
187
|
+
.,_ .. ~ ~ '" ^g:,
|
|
188
|
+
; ^~ ' \`$$WyzQLw: j8yG=-
|
|
189
|
+
" Ly@$$&@RM72g<@%$LYR_.
|
|
190
|
+
+4$M@GB=R@kdM@M^?$@WxM"|,
|
|
191
|
+
. _gW@$K ~' 2$x@MgM@WE)r1
|
|
192
|
+
.- ^ >:, 4y@$@M0$ =@@@$B$@@QWz(?
|
|
193
|
+
- .$$jQygg$y$$$g$C,: a. j@R$@@@ZmBR#Kw{
|
|
194
|
+
5$us@@$$@@@$$$@@@@@gGgFLL.J?$W0~$@$@U~\`~\\n&
|
|
195
|
+
,a@@@$$@@@@@@@@@@@@@$$@@@~gy$r ' =~$@$\\ ^3|
|
|
196
|
+
. (5M$@@@@@@@@@@@@@@@$@@$$@@@@@L__ wRR~E@@ ,Xk
|
|
197
|
+
~\`{W$@@@@@@@@@@@@@@@@@@@@$$$@@&~wdM*M~#@gL~J
|
|
198
|
+
; _$$$@@@@@@@@@@@@@@@$$$$@$@$@@$$~. '~~v[/
|
|
199
|
+
w_ . _ '4^y0@@@@@@@@@@@@@@@@@@@@@@$@$@*> >w-
|
|
200
|
+
H &i +w@#M$ _$$$@@@@$@$$@@@@$$@@@@@@@$@@$NM>_,-_kgv9Y
|
|
201
|
+
~<msX@BF~ 9@R$mR@MB@@$@@@R@@@$@$@@@@@@@@@@gg$BQW+%$_/
|
|
202
|
+
\\FRW$$ _yH&4gy$@@@@@@@@@@@@$@$@@@@$@@@@@E0@$$]"FM'
|
|
203
|
+
'?V]MgL+,_g%a$@@@@@@@@@@@@@$@@K@@$@@@2@$$$@@$%0M@2A^
|
|
204
|
+
a@7@$g@g@y$@@B@$@R@@$B@@$@@@@@@@@@R@@MR@$$@By@#YF
|
|
205
|
+
^3k522#@B@@@B@@@@@@@EE@@@@@$@@@@E$BR@$@$RgR$R+~
|
|
206
|
+
^(^4\`@@WA$@B$$@$@$@@9R@@$@$$@@$@E2@@RRWgMw?/^
|
|
207
|
+
'Q7W2$0$W@$@$@$@@@@zRW@$@B0BK0W@@MBMM~\\J
|
|
208
|
+
"V('x.~3@RRB@@$@RB@@@$$A$B@@jptW%~' "
|
|
209
|
+
\\T$/RRZBgp$ZGPRMg$$$@$E$X/'~W)
|
|
210
|
+
\` =""&*G]@wtB4E4$gg$4$4EP!^
|
|
211
|
+
"^ \`\`"+M= -T~^'\`
|
|
212
|
+
|
|
213
|
+
`
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
index: 13,
|
|
217
|
+
distance_km: 378113.4,
|
|
218
|
+
libration_elat: -2.581,
|
|
219
|
+
libration_elon: -5.835,
|
|
220
|
+
ascii: ' \n . . .. \n . `, ,_. -7`". \n /J^~T ~ " z4$_ ._ `":- \n 4-\' . . [@$@x@Wyy y@$iu. \n jy$@@@$g@A@g$DARB}@w_ \n _*_ . 790$$g$MA@@a@W@NRBRk^% \n \' .~ +_ *$_yx@B@E= ^`~JBsm$$HWbyQ^, \n Jy-"@@g@_a@@@#@@$5gTn "ZM@$$$g$@@w^. \n _@@@$Gg@$@@@@@B$@E@$;$gys\' _9@@@g0$Ra@j_~. \n q@@@$@@@@@@@@@@@$$@@@@$g## _vQ@R@B@Ew#&~nr2 \n .T `#2@@@$@@@@@@$@@@@G@@$@$@%_z:7F^ W@@B^ (*l \n } =D@@@@@@@@@@@@$@@@@@@@N@#Wy ,`_5@#w \\. \n #PL . 5g@M@@@@@@@@@@@@@@@@@@@$gR@$pu,_%7"R$L KU\' \n \\ Pz\\_y-gb "05L@@@@@$@$@@@@@@@@$@R@@g$@@$g>~ ~KAD\'@ \n 7|B$)g@@$@ Y=y$@g@$@@@@@@@@@@@$@$$@@@@@@@BR_ r\' \n \'YK$$N@" PF@EgM@$@@@$$$$@@@@@@$g@@@@@R$@z. _)z7 \n :kR@$0;_ g@W@$_yg@@@@g@@@@$@$B@$@@@@@$5R_$*.iH9R? \n TQ@@$d1w$@9#$@@@@@@@@@@@@@@$@B@@@$$@@@g$BgB@@wMk:T \n {%AP5@@0@@s@@$@@@@@@@$@@$B$@$B@$@M$@$RRg@dyw@#W};` \n ^y5XA@$MRB$@@@$R$@@@B@$@@@@$@@B@@$@@@@RA@@B@YQ;~ \n `6%RGBB@@@@$W$$@$$@$@E$@$@@$@$B$@$$$@@@$%5"` \n `\\X3~~2@ER$$B@@$$$E0RB$h$R$@$@a$aA@%R@%9 \n >Un _{6$RA@$@RW$g@0$$@@ygWKMM$@@W^~ \n ~n1M5&*#_a0@@@AR@$@$$$EXU7YMf^? \n ` ~^~k[c5s%MAYqMFFM@"VZ \' \n ^-^*F^~?~`~` \n \n'
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
index: 14,
|
|
224
|
+
distance_km: 379658.1,
|
|
225
|
+
libration_elat: 5.491,
|
|
226
|
+
libration_elon: 6.128,
|
|
227
|
+
ascii: ' \n , - ,. \n , __ _x` , , \n ,+Y\'=\' .^?=PywwM__., _.- \n -s- lE@@$@g@__L_$>. . \n " ` >$$@$$44@F<Ma YX_(:. \n . _. 4@W$R "" ^wyy9$%BZ \n ,#RoP ` k \\\\;_a@m@@@#ET ~@@#$%syV; \n ~a_bX$@$$3@$$@W@9$g@L , W$@@RzFC}t \n . ~@$@$$@@$@@@@@$$$$@@$N%y___ ~g?~5$Bw^"| \n ^ y$$@@$$@@@@@@@@@@@$@@Q@@RP^ ` "R$@_ : \n ..W ~@@@@@@@@@$@@@@$@$@@@@@$@$. u /m=Ey . \n ^jR "~?@@@$@@@@@@@@@@@@@@@@@$w_< `gy; j~) tyl \n xV^> {+2@$@@@@@@@@@@@@@@@@@@$@B@_@R$$W~ "?Y \n \'&W$z . y[_?@@@@@@@@@@@@@@B@@@@@@$$@@@@0@Ek !\' \n ^N26@9g_pdg$$$M$*@@@@@@@@@$@@@@@@@$@$@@@@@*@$Rb\\ :d/ \n ^ARj@@$$$@@@~~.}9$@@$@@@$@@@@@$$@B$@$@@@$$g@@@PgKL *" \n 4M*$$$@@$$__ x$@@@@@@@@@$@$$@$$$$B@@$$@@W@R$E~_j!u \n ^0MN@@@@$$wmys2@@@$@@@@@@$@@$$$$@0@@@@$$@s@@BR@@KK \' \n "\\3@@$R$@$$@$@@$@$@@$@@$@@@$@@$$@@@@@a@@B@E@E$0_\\ \n ~WR#W@$s0@$@@K@@@@@@@$@@$f@@@M@@@@$g@K@$B$@0$P"" \n ~^@QB@$~b$R@g$B@@@0$$@@@@@@gBB$$@@@B@@B@54M~ \n )=W&@A4M@@$@@E@W@@2@B@gWK@gD@@@gEW${$#^ \n /@TEEE`&A$#0y$@@Z$MM@$p$@0BtP5%@<l \n \'~XmT$E$W@MgyR$$aRs9gS4WW9/~ \n ` f=L"0EZW$@RPG%#$R{Rx{&\'\'~ \n `^`^ \'`"\\"?~ \' \n \n'
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
index: 15,
|
|
231
|
+
distance_km: 381331.9,
|
|
232
|
+
libration_elat: 0.836,
|
|
233
|
+
libration_elon: 6.123,
|
|
234
|
+
ascii: " \n . _, \n __ . _ \" < \n wz?^^\\^ `r={*_, _. ` ,, \n .4fT '80@Ma<w% <,). \n gg$$$$B@%K$YJi[ = \n ___y, ^ji . . _ 'J$g$0F~~5\"*J:`6x\"i: \n . #T5ZY ;`-,'_n-;)wyWB$@$\" aygg5B4W \n ' g@9e@@@@Ea$$g@$@$R$$ j@0@@@KR \n 2 +@@@y$$@$$@@@@@@@$@@RL_ * \\$@RRwgT^I \n /jw 4$@@@$@@@@$@@@@@@$$@@@@E@$+ \"4\"'7Ak@^ w \n .%g$ `@A@@@@@@$@@@@@RR@$@@@$@$E | TT@5 ' \n ,&X<> `~?@@@$B@@@@@@@$@@@@@@$@@ _; ? MW { \n 'MtJz. +^$@@@@@@@@@@@@@@@@@@@@$gG| _ay, *` ~GV \n 5yjE@$yz(ny_y$ -@@@@@@@@@@@@@@$$$@@@@$$@ga@R$@T `\"- \n IJEW#$@B4@@@@@KS1g@@@@@@@@@@@@@@@$@@@#@@@$B$R@7 '- \n 2ZW@E$@&&$F~~. VB$@$@$@@@@$@@@$$@@$$E@$@@Z0$$$> y)' \n ?%&$@$@$g@x{ _,m@M@@@@@@@@@$@$@$@@@$gB@R$$*$$Y@M 2 \n ` %2@$BB@Rb$L@@@@@@@$$@@@@@@$@@@@@R@@$@$R$$$I2l_y> \n `Wkg#@@R@$@@@@@@R@@@$$$$@$@$@$%@@@B$a$Rg@@@g@@Pp+' \n 74&$R@WM@B@@$RR@@$W@$@@@@@g@@@@$gRbEB@@W@@E@@&; \n +E#@$am@0@B$@@@@$$$@$$@@@gW$5@@$@@$d@@BgRR^^ \n `\"@S@$MM$3RRE@$@@$$$MW@R$$BR#@$@@@%$%@< \n ` J8MqG_3=AM$$a@@@W$@@@$@@$aR@R?Tx~' \n \"|QT4RARm4$*ARQsGW@EaRP7$TTP~` \n ~- zMeeE65tsF0g12$Lb9X^ \n ` ' T~F~~ ~^`` \n \n"
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
index: 16,
|
|
238
|
+
distance_km: 381859.3,
|
|
239
|
+
libration_elat: -2.705,
|
|
240
|
+
libration_elon: 5.978,
|
|
241
|
+
ascii: ' \n . . \n . ___ L._ ^; - ( \n mze^^`" \'~~RX_ " . \n .tv? `B$@lglu- | . \n . pggR@@$@EZ:dFR, \n wax_. y_ R0ER$@f4$WyCW?w:v \n !. ~TT%~_."u_Jw__j*E_x$@g@H ~"\'J_ jQtjj \n [ $$bdB@@@@W$@0$E@@@Q$ . \'@$@zNBcX \n [| ";g$@@@$@@B@@@@@@$E$@@@ :. 4@B5@R%(` \n jyMy t@$@@@@@@@@$@@@@@@@@@B@%y1_ . Zf$RK@CG# \n vNt` Pg@@@@@@@$@@@@@@@@@@gB@$F\'~ F WB@\' \n 8j@~w - ~f@@@$@@@@@@@@@@$@@@$@@L. \' `"?_ \n AM$@Zy . . .`w@@@@@@@@@@@@@@@@$@@B@$_i yL " yN).P \n )jy@0@h@~LsgyggaR@@@@@@@@@@$@@@@@@@@$@@@g_g$$v;^ 7N \n !VH#$B$g$$$@@@$7k4$@@@@@@@@@$@@$@@@@@@@$@$@R@@a ". \n \'5SBBR$Bg$$F {f$@@S@@@@@$@@$B@@@B@@$g$@B$$$[, 4` \n 1X@8@@2@@$hg __W@B@@@@@$@@@@@$@@@@$@$@@@@W@B$y_ M/ \n JQRB$D@$$@2$g$$@@@@@@@$@@@@$@@@@@$$@$@@R@@WWkFV {" \n \'@@fF$@0@@gR@@@@B$@@B@@$@@@$@$R@sM$@@@$$@$$@WwgW" \n `@V$4$ER$$E$$@@$@@g$0@@$@@@$@B@$$@$5@B5@@@NT3~; \n {~$M@@E$@$@@@$@@$@@@$$@s$$9@$@@2$@4@@RK$T@@^ \n ^ FqR#mZ3JH@Wgs$$EBW$@Z@0MWg@B@@$WM$B55? \n ~^k/1ayDgW$$#$00B@$@$2Kg@$$Eg$$$\\$\' ` \n ^+K^YG#%gWa9Ra@@9MT$$EZ@@~wO="\' \n ~ `-%Hy~T@@M?a4%M$"^k( ` \n ~\' `~P!+^^ ~` \n \n'
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
index: 17,
|
|
245
|
+
distance_km: 383889.6,
|
|
246
|
+
libration_elat: -5.925,
|
|
247
|
+
libration_elon: 6.256,
|
|
248
|
+
ascii: ' \n _ . \n . \' _,._ \' .:_ \n .nzF\'~-^`Fnrj__ . \n aF~ ~ `!Hyw_g_ w. \n . ` xygg@@W#k,=|l. \n _gwa; _wJ ($@9@@d@@\\W^@K_ . \n _ t~"$~_ ,_W_z+\'_jz. y$@W@" ~~kfX#~5i; \n /\\ \'.3@$@@$$@$$@ss@B$W@$MC 4m9p6b>{ \n G5[ _. ,$@@@D$$@@$@@@@$@@0@0@~ 0@$$B$$ \n .}2A> 9$@@@@$@@@@@@@@@@$@@@BaL ( \\$FgY$HX; \n M@@Bq . H@@@$@@@@@@@@@@@@@@@@$W@s "NV^?$g_"M \n jW@%y@ ~ . r ~@@@@$@@@@@@$$@$@$@@$@@ *#$m \n &U*&WMW y _pG$@@@@@@@@@@@@$@@@$@$@@F " =\'$, \' \n (T$Rg$@@E$w@g$@W$@@@@@@@@@@@@@@@@@$@E$@gy _y_ | `v</ \n &&mV$RB@@R@@$##K$s@@@@@@@@@@@$@@$@@@@@@g@ya@$Em ? \n `5VA$@$@g$RE`, @B@@@$@@@@@@@$$@@@@$$g@$B@y$$" _ \n v<Aqs@R@B@E9_yy@@@@@@@@@@@@@@$$@@@@B$@g@@E@@@$\\ ,> \n $AR$Bg@@$$@sR$@@$@$@@@@B@@@@@B@@$@@$@$MG$0@GlWw ; \n ~~qZ$BRgZ@@@@$$$@$@@E@@@@@$B@@$$@@@$@M@@$aRfM~,, \n ^R*@@zZ$@$@h$$@$@g$B@E$$@@$$A@@@@$@$BWWE@@B@) \n 79@@gW$@gg@@@R@$@$@R$D$@@@$@@@WB$$RXBBgM5[ \n {JGKRHk~@@g$$R@$Ez@@$$$@$@0$@$@$EB@@RMX~ \n &@R2$4yKBbAER@@R$$dW@@g@@@D$m@@XN`" \n ~^u"?F4KPEz$$$Z$#@g0$&@@55M@v"~ \n `~-Xw7PPe=TA4jzFW<_t^\' \n "^r-^^^ " ` \n \n'
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
index: 18,
|
|
252
|
+
distance_km: 389306.6,
|
|
253
|
+
libration_elat: -5.818,
|
|
254
|
+
libration_elon: -6.036,
|
|
255
|
+
ascii: ' \n . _ \n . ; ``( }. \n w;MP|* =n>fsL ^ . \n *|| `^RE@_}y_ 4ym, \n . ,yAg@M$R2@L$RMw< \n _w , . g@$$B@R@@m@y%B$@y,(k \n ``~\' x _yy.J$E@@BM~T@T@A$TM$gWg"VL \n .$x_gg$J0@a@@@@@@$@si aM$RB@AWMe/, \n . . .g@F*g$@@@@@@@$@R@g@\',_ z j$@$$@5$$W]`; \n / j@$$@$@@@@@@@@@$@@$@@ygz@_ #@@@g@$@BEa<u \n . . Jk4@@@$@@@@@@@$@@@@$@@$@$E ,7$2=@g$z&"^KTL \n /j A@@@@@@@@@g@@@$@@@$@BEgys\\ \' HB$@N ~P \n h0L . >@$@$@@@@@@$@@@@@$@$@M@@6$_ .we{@0 .l \n %>E$ -gsWw_^`RME@@@@@@@$@@@@@@B@@@$%#@$@~ y@# 4@*X|, \n MRQ@K@@@hff $y$@$@@@@@@@@@@@@@@@@@@$$@@BE$" "4> j \n L45B@MF . ~ZR@K@#B@@@@@@$@@@@@@$$@@@@0@R$ . x9r \n {5S0g$_ , g$T9@y_@@@$@@@@$@@$$@$@@@$@$BWN\\ xkx \' \n "VM$g@$@R@TJ$$@@$@$@@@$@@$$@@R@@@@@$@0%@gg$$^;M<:X \n \\ t@@g$$$@R$@@@@@@@@$$@@@B@$$$@@@@$$$E@@$M$yW`j+ \n \'jj`R5@@@$@@$@$@$$@@$@$@$@@@$B$@@Wgg@$B@@W@>/` \n \\^48R$@@$@$@$@@@@E@$K@@g@@@@@$@Z$$BW#sP#^| \n \'-:, {$MA@$@EZ5@@@@@$$@B$@@@$@g5$@Em9/^ \n z~*gT6GfTA$H$@z5$Z$KREBa@3GW5#9"^\' \n " +?L$"3f@@@1$E5$5F5$=Dj?$>?"` \n ~` ?tJjg#E@gH@~W$:` \n \'"``"\' \n \n'
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
index: 19,
|
|
259
|
+
distance_km: 390509.1,
|
|
260
|
+
libration_elat: 1.475,
|
|
261
|
+
libration_elon: -5.963,
|
|
262
|
+
ascii: `
|
|
263
|
+
_
|
|
264
|
+
- _ \` ... .
|
|
265
|
+
_r -- ~^<_)$w _,_ \` jy.
|
|
266
|
+
r 'g@$$$$x$yyMW_~:_
|
|
267
|
+
.j$$@Bk@$@@W2gRZ@y"<y
|
|
268
|
+
. NgM@R$~~4$RMgBM1%&E$jWy
|
|
269
|
+
w~ " . y_y@@@@~ g@@B@m$#RKJ{
|
|
270
|
+
,, _s@@ngLg$5$@$@@'^ w _$$B@@$@W$Nrj:
|
|
271
|
+
g0Yw$g$@@@@$$E@$@@@yjy4_; 4@@@@@E@#Xb@X>
|
|
272
|
+
q@$Eg@@@@@@@$@$@@@@$$$s$a.-vI5MFT@@@a\\~ \\nW
|
|
273
|
+
_ d7@@@@@@$@@@@$@@@@$$$$@Jp@$@, . FR0@F j!
|
|
274
|
+
' \`+R$@@@@@@@@@@@$@@@@@$d@@@gLuy,r@@%Wk :f-
|
|
275
|
+
LF C@@@$@@@@@@$@@@@@@@B@@@@$@@@wcHPT "%bs/1+
|
|
276
|
+
NU_+ __ 7^y$$@@$@@@@@@$@@@$@@@@@$@gR$ . '#~w:
|
|
277
|
+
%_W<_ygBR (=yB5$@@@@@$@@@@@@@@R@E@$@@@@@gW !M'
|
|
278
|
+
(Rg&@@~ *B$$@FRR$@@@@@@@@@@@@$@@@@@@s@EgW,y*RGvW+
|
|
279
|
+
K0@2@ w@#@$yX@B@$@@@@@@@@@@@$@@$@$g@@@@$_P%y~''
|
|
280
|
+
^\`gM@@EyyWH_$$0$@$@@@@@@$$$$@@$@$R$B@$E0BG$aH@@+J/
|
|
281
|
+
^N4@$@M@E@$ER$@@@$@@$$@@@$$@@$@@@@@$$W@@@$@Rz#7
|
|
282
|
+
^,W$FH0$@@@@$$@@@@@@KR@$@@@@$g@B@B#@0Z@B4Y$0v
|
|
283
|
+
Yx*BK$$@@@$BZ@@@@B@@@@@0@R0@@@$@M@$B#0@K~
|
|
284
|
+
'~~~}3?RA@$@$R$@BW@E$$gB$@$QM$#@@@kF}F"
|
|
285
|
+
"(4w~2#$n#M0@HW@$@9@@Z@AB)EKfBF'. '
|
|
286
|
+
'\\D?^X0@$$g%4s7@RB4$9%Z_w~, '
|
|
287
|
+
~^^P&Y"r*?59P44M%J~5~ ^
|
|
288
|
+
\`T~'"\`"
|
|
289
|
+
|
|
290
|
+
`
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
index: 20,
|
|
294
|
+
distance_km: 391670,
|
|
295
|
+
libration_elat: 5.642,
|
|
296
|
+
libration_elon: -5.869,
|
|
297
|
+
ascii: ' \n \n x`! \n | ;! ^\\+e%*_,<- ,_ _pK+ \n ..F ggg$Z%92kyBWWyC /. \n wg@$E$$@@K@Rg$7QRvx$t,_ \n . a@@B$" ~~"WRux$$@g@@$}L \n i ` jLyA$@@$ "0@@@@s@KRM*W{, \n _ gg-N<gyg^@@@R@> _ J X@#$@$@05&3x2=. \n _@_7&$E$$@@@@y@@@@$ggg0= . 9@$P5$$gb#~ \\M$. \n _ag$W@@@@0@@@@@@@@B$@@$@R\'yy.^~ R@BK/ &) \n . .F@@@@@$$@@@@@@@$@@@@$$$g@g@gw_ .w*y#@K_ }W \n k ` ]y@@@@$@@$@@@@@@@@$@$@@$@@@gF/g@t=\'4@$$/O \n t5$M$@@@@$@@$@@@@@@@@@$@$@$@ERF` ^~1.4/ \n jy . `E_2R@@@$@@@@@@@@@@B@@@@@E@$$gQ ]<W L \n 4;,-ag@$4.gg$R@$@@@@$@@$@@$@B@@@$@@@@@sBFy_ ua9mm7W \n "Y#@%$@^~ 0A@$$M4R$$@@@@@$$@@@@@@@@@@$@@W@$@r&MMMx# \n ^@K$g@ a$*R$gg$@@@$$@@@$@@@@@$@@@R@$@@@E$$$0V$R \n 0W$@ja\\_$@`$$B$@$$@@$$@@@$$$$$@$@$$B@$@@$@22@$@t\\ \n <P4m$W@@@$@2@@@@g@@@@@$$@@$@@@@$@@B$2R@@@$@Eh(` \n `TSsW@@R$$@@$$$$$@$@5$@@@$$$@$@$B@$@@@$gRRs5\' \n `^}&`$b$$@gH$@@$@@@$M@RM$g@@$@@%$N@R@5\\R"^ \n >j?"T#M$0#@@@g@R@@Dg@$$@$$$@b0B@E@#^` \n `? <L. k45k~F@E#@@0$T@BE@#5@$?6m-, \n 4K?4Y($GE4zR@5g$$EEgBngK"_>-~ \n `~>?^4 MMKqZR@Ds!=`(\' ` \n `\' ` ` \n \n'
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
index: 21,
|
|
301
|
+
distance_km: 393407.6,
|
|
302
|
+
libration_elat: 5.513,
|
|
303
|
+
libration_elon: 5.636,
|
|
304
|
+
ascii: " \n \n . ^ \n LNV' `T~{$b_ -, \" . \n _j@' <R@$mW$wxt!mn \n ~ g@@@$@$@@'Yq\\as;' \n g@@$6^ `P ~<\"_M@yMj \n _g%n- z+ sEyg$@$@' ~M$g$M$sX \n \" 'a(_ra@g@@$@$g2$$$@@ f4g$gA@4M \n `$@@y$Z@$@@@@$$B@@@@g$_y, *@7M?$$N~'\". \n ^ _H@@@@@@$@@@@@@@@@@@$$@@5~ ,. `B@N_ \n ;yK `gR@@@@@@R@@@@@@@@@@@@@$$_ ` w=~@L . \n <$\\ ~?@@$$@@@@@@@@$@@@@$@$@@yk `W@! ,I? YP( \n -JMw - 3B@@@@@@@@@@$@$@@@@@$@@@Mz@B@#! \"^ \n \\Xw$g _ . yJ_\"BB@@@@@@@@@@@@@@@@$@@@5@$@2BR[ ./ \n FP@w@g$_n@$@@M@*y$@@@@@@@@$@@@@@@@B@@2$@M@@@e> .W' \n y#@$@@@@$$~~ ~4$@@$@@@@@@@@@@$$$@@@@@$$@MBER$%< <^' \n l6$d@@@B@L a@@@@@$@@@@@@@@$@@@@E@$$@$B@Rm@\"_/, \n BM$g$@5gmezvB$$$@@@@$$@@@@R@@$$@@@$@#$@@@@R$$@(.` \n ~12KMy@R@@$@$@R@$$@@@@@@$E@@@AB$A@@@AR@@@@KE@Gz \n '@kRM@$@$@$gR8@@@@$B$@R@g@g@@$@@$@@$Ra$@@@$Z` \n ^?WE@x@@@@@@@@$$b$@g@@@@@gB4@$R$BBMRMyTT' \n \"4QB@@@M@$R$@$@@@$@RE@@@A5$R@BQM@M#P\\ \n ~^@j@&_gm$@%4T$B@@@W$@@UK@#W7~7' \n CtHP@$02WR@14@5Z2FA#3j\\J: \n '\"r'F5$~(G@7_$TM$4>^ \n ' \n \n"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
index: 22,
|
|
308
|
+
distance_km: 395633.7,
|
|
309
|
+
libration_elat: -2.548,
|
|
310
|
+
libration_elon: -5.238,
|
|
311
|
+
ascii: " \n \n `` , ;/ >_, \n ,_ +,P> * y _ ~ 'u_ \n :{T` `~=$WWk_r, _#P+ \n ~ _yD$@@g0Es&#ZB@'x. \n _ , @@@@Ea8@@bEY$@@sGL2t \n f^ Y '' . .w_ _$@@B@' `=3'25Zp$$>a#Iu \n g_:.g$_RMzy$U$@@$#E7 . Rg$@$@HgaEK` \n $@wR$@@@@$@$@$@$$@!y- g! .g@BB@$@$$M,3 \n . -@@@@@@@@@@@$@@$$@@@$@s$L ?BB$$B$@RMXFW, \n ` ~C$$$@@@@@@@@@@@@@@@$@@@?E_;]=^ 1@@WE {( \n >M `RZ$$@@@@@@$@$@@@@@@@0RgB2r ~M@$_ 4' \n (@+ . %@@@@@@@@@@@@@@@$@@@B$$$R@$w+ ~A_52v_xr \n ~^MkFwa-wK `XF2@@@@@@@@@@@@@@@$@$$@@@$$sA^ ' ~@$}'^ \n w$$$g$@$N`wty@@@$@@@@@@@$@@@@$@@@@@$@B$#_ `_' \n M$@B$g^ AB$@$R$R@@@@@@$@@$@@@@@$$@@$@G( y,]\" \n ~sf#R@,_ y$H@@$B@@@@@@@@@$@@@$@@$@$@$5R$yyw-^W4h; \n I}V5@K@@ME+R@@@$@$@@@@@@@@$$$@@@$@@R$$BgF4@_'T#_ \n m\"y*$@$#@@@@$@$@K@@@$@@@$@@@5$@5@@@B$B@@@RQ@_X` \n ~\"$~@g$$R$@@$$@@@@@@$@$g$@$R$@B$g@E$Z@@@$sx. \n ^FP$@$@@@@@@$@@@$a@@$$$@@$$g@@A@@g$@@@5VF \n ^ ~/`~$@K@@$@@@@$AE$@0@@B@$B$@a4?P@P\" \n uW&\\@m@ETRDH@Hg$sRgS@E&N@5@%6^X \n ' u3@#pME@RS@PQ4RWKRMkz@ `. \n r{^M=Fi@9#KEP(K7~/ \n `~ \n \n"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
index: 23,
|
|
315
|
+
distance_km: 396804,
|
|
316
|
+
libration_elat: -5.205,
|
|
317
|
+
libration_elon: 5.066,
|
|
318
|
+
ascii: " \n \n T - \n .x*zZTn>-- _ . . \n .. a_0F ~` n4M_;. ~u. \n '~ ,^@g$$gw_;kw, \n . ._w{ , __' r@$R$R#@$tfU~_x;. \n . ?X?E$`_~G _: __+ _@E$@^~~?kic%\"$/$ \n p @B%<#$$y@$W@$@@6@$@F y@_z@sl| \n n__ _M@@$z#$$@@@@@@@@4$0@ `A$@@g$( \n 4JK& , g@@@@@@@@@@@@$$@@@$@@$( # 9gKzgW&\\ \n jD@z_ +#@@@@@@@@@@@@@@@@@@B@W@m hN~\"5#F^ \n ?7#.@ 1 \\r ~$@@$$@@@@@@$$$@$@@@@@ < 'MRy V \n N%P#Rg _ ~W@@@@@@@@@@@@@@@@@@@g$,' -. r~$, j \n NGqQ@@$Ejy$gg$2s@@@@@@@@$@@@@@@@@@@5@@a,{Zg, ; ^ 0< \n (3H4@@B@$@@$#=~t0@@@@@@@@@$@@@$@@@@$@@$@@$@$$ ' \n `4Hg$B@@@$F`. \"4@@@@@@@@@@@@@@@@@@@@E$@$$e@W, j \n KR$$bR$$@gZ_vzg$@@@@@@$@@@@BB@$@E@@gB@$-g@E$) \\` \n Eeb@@$@$WgW@@Eg$$@@@@@R@$@$@$@@$@@@$B@$f@R)P@ . \n ~75RR#$@$@@@B$@@$$@@@@@@@@@@@$W@M$$BB@$@E2B_jn^ \n =W%B@_@@$B@@$$@@$@$@@B$@R@B@@$@@M$@D$$@RMBX \n ~~#M@0@M@@@@@@$s@@$$$BE@#@@$@W$@$g@B@B@>~^ \n ~#w7%,wRG$@M$$@@@$@$&$@$@@$@@M$gRR@^^ \n Ry$aG0$#MM45$$ZZR@$a3@@0@$R@2pM` \n `'=4Kh5M$K4AN*@tSd$sT&C^~} '` \n \" ~TF_75@RgmF4`~ \n ``~``` \n \n"
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
index: 24,
|
|
322
|
+
distance_km: 396918.3,
|
|
323
|
+
libration_elat: 1.016,
|
|
324
|
+
libration_elon: 4.987,
|
|
325
|
+
ascii: ' \n \n ~ r .:c . \n . ju ]>_^*Y=yL \' ` . \n .W> m@wy+l_ M~ \n ` ,ggm@Eg$WRwx_!_ \n . L$Eg@K`4$_dW$ \\wY \n _R4B$ ~).{. ,.sELgB@$E. ` yWw4aggy: \n `7kp>_ggy#Tg@$M@$@Wg . `4@$@R$@y \n ,$@$g$@@$$@@@@@B$@@$y_ - ?ER@22R]>, \n >. ,. 1z@@@$@@@@@@@$@@@@@@@@$@gp `"@~~2$$Y^~) \n vZr BW@@@@@@@$@@@@@@@B@g@@gB 7 jY$l \n 4v$y . ` ~@@@$@@@@$@@$@@@$@@@@@. - \\Y4w ) \n }A_z, \' ;;@@@@@@@@@@@@@@@@@@@@g$sI W*_ ,{^ ^@L\' \n T@#R@yy).y__$W-y@@@@@@@@@$@@@@@@@@@@@@$g@@$$( "I \n .X@9a$@gy$@@@$$=$g@@@@@@@@$$@@@@@@$$$@0$@@$#f >J \n 9D$$@$@R$R JB@$@@@@@@@$@$@@$@@@B@g@@G0@@D_ N \n :s$E@a@$@my _ggB$$@@@@@$$@$B$@$B$@@@BE@E0MQmM / \n 7X@@@R$@@@@ggR@@@@@@@@@@$@$@$@d@@M$@$$W@@g@Ly$M) \n myX$$K$@@@@@B@$@g$@$@@$@@$$@@@$@$@$M$$@@@$@g/l \n "?-&@@Z5$@@g@$@@@Q$g@$@$$@@@@$$@@R$@@W@@@gMG^ \n "7#5@0E@@@@Z@B@$B@$@@@$@$B@@@@B@$5$$$@R$\'" \n "0M$M4FD@@$@$@$$@@RB@@$@$E$RN0$PW0~~ \n ~5@<X@$0j@$#~$B@ZE@$gR%RA0EM7?"~ \n \'*TT3m4aH@2@RW$3M$P=BzR)^: \n ` A<?X%f_WmPg@EM-`" \n ` \n \n'
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
index: 25,
|
|
329
|
+
distance_km: 402200.1,
|
|
330
|
+
libration_elat: 0.434,
|
|
331
|
+
libration_elon: -3.119,
|
|
332
|
+
ascii: " \n \n \\ r \n ___< *r z_ ? \n . ~ `''P0wvzkyu _M:n. \n v __$B$MRM#%e$XgZLn_ \n ` 'd@$B@b4@$%%%@M@4drY- \n +A 5 ~ .___a$@$$~ ^``R$w$$#@@G~, \n v2x a@y*HkW$R$$$8yP 4$@bB$$@$@w: \n g@_D@$@@@@@$@@2$$@_.Jy\\ BR$@@@$E6Rw& \n ug@@$$@@@@@@$@@@@@@$@@@$:, &#MF2R$EW~'/W \n x `E$B@@@$@@@@@$@$@@$@@@@%~(ye ` 44$#F 'r \n !, 5y@@@@@@@@@@@$$@@@@@@y$$yw . ,*YMEG > \n 4[$ j 32@$@@@@@@@@@@@@@@@@@@@@@$MM`_mMF =bb^\" \n 45tgy: _ g_ .\"R$$@@@@@@@@@@@@@@@@@@$$@@@@$` . ''4* \n (j@$aDB@@%X Ly$@@@@@@@$@@@@$@@@$@@$@@g@$a_ W, \n (@0R@E@' `5@@@@$$$@@@$@$@@$@$B$@@@W@$M$PL_ yr/. \n Jm4XR@9;_ _ggF0@@@$@$@@@@$@@$$$$@@@@@$$@KZM@';e!j^ \n 3Y@M@$@wy$E_5$@@@@@$@@@@@$$$@$$@@@@@@@$@$WZ$$~i^ \n t)753M$@#@@$@$@@@@@@R@@@@@$@E$@@$$B@$W@B@@$Gl' \n V@G~@g$$0@@@B@$$@@@@@@$$B@@$@$$$@$WR$WW$W<( \n ~%p2#B$@$@N05@W@@@$$$$$$@@@@$@g$@@@M@Wz \n ^~`/`^PW@@@@$@B$$E@$@$@$BBg@@WERKC,\" \n 'V?hg$q#E2A@M42@g@GRMg@*wK@l~)' \n {7$k$n5HMDA@wBF$%bwmyI + ~ \n 'Y~~ *bv@4$$K'?~ '\" \n \n \n"
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
index: 26,
|
|
336
|
+
distance_km: 402352.2,
|
|
337
|
+
libration_elat: 5.638,
|
|
338
|
+
libration_elon: -2.986,
|
|
339
|
+
ascii: " \n \n . . \n __| -;<pN__ _ ~ g.. \n xP' @R$@SpJV.$U4+^ \n r~ _@@@BBR@@Z@HeP$@yl^t. \n j@s$0\"`~R\\F$E,g$$gmQJi \n - . ,. (_j$@@@\" MW@$0mA@E&n_ \n ``, ysg\\%ygP5@$@$F /_ 4@$$@@0R@a\\j. \n 2L @W$@a@$$@@g@$@@a~u@ %TBFg@$Z}'^`X \n y$@z$@@@@@@@@@@@@$$@$@@~'.u.^ <@gK@ \". \n . -@$@g@@@@@@B@@$@@$$@@@@$W$M-_ _>aMgz, 3' \n ' `'~2B$@@@@@@@@@@@@@@$@@@@Bg@$@^`aE*~^kmz~ \n F .D$$R@@@@@@@$@@@@@$@@@$$$@@@gg' ^$)(; \n ,p y 'sF@$@@@@@@@@@@$@$@@@$$@@D2@y> ?^}, \n !{P@_;A$@T$=L$@@@@@@@$@@@@@@@$@@$$@@@@B#RN_,x7Aw7 \n 't$$R@@F~ `TE$#@E@@@@@@@$@@@@@@@@$@@E@@$0$@@P2|ctx \n j$B@$# +@Mg@gg@$@@@@@@@@$$@@@@@@$g$@g@g$$$9vy! \n >rQ@0EgWw@@%M$R@@@@@@@@@@B@@@@@$$@@@R$$@E@@@MPF/ \n \"9?a$@@@@B@@@@@$@$@$@@@@@B@@$WRg@$R@$B@$$@WM6F \n N~(@v$$g@ZB@$@@@@B@$$@@E@@@@@@b@E@@n$@ME2Vl` \n `\"W@y0@B@$@$$@@Q$$$@@@BEB@@@@M@g@$R$$PV' \n ~2@@~^TK$@#@@#@@@g@@ME$@$E$4#E@$4< ~ \n \") u*yv2$2V5RW@W$RBW$g@RA[f(*`: \n /*_\"<sd9t($5$$g$7RbJR*&7 ~ \n ~~ #<`+MLN%~DJM/^ ` \n \n \n"
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
index: 27,
|
|
343
|
+
distance_km: 402371.7,
|
|
344
|
+
libration_elat: -5.458,
|
|
345
|
+
libration_elon: -2.965,
|
|
346
|
+
ascii: " \n \n ..~ . . y , \n ._wIq;ws _._ !`P- , \n ,p4 ~ ^r*$_w... `\"5s. \n ^ ,X@@$gWWm_aEKv \n __; , .$@$$B9@@@$<@g$Wf\"x \n -^??K `; _.. @@B@E\"~fMQ$a@=$RS_l. \n , z__g@gWasw0@y$E@@RA yWa|B$4&jF \n .g@$j@$$@@@$@@$@@$g$'' t@g@6@@%e ; \n m+ @@$@@@@@@@@$E@@@$@@$yWu#~ K$g$B@#RPW\\ \n v$. P3@@@$@@@@@@@@@B@@@@@@g9- ^4@YM@@g@! /: \n >,_ ! 5$@E@@@@@$@$@@$$@@$@B\"p_* . 0$W# ' \n v$g , / @@@@@@@@@@@@@@@@@@@@$N$j.$_ ,*=X@_ y \n /a&yE)awgBw_M4@$@@@@@@@@$@@@$@$@@@@NK$$_'veMr^Z$Q` \n #$N$$N@@MP M3L9$@@$@@$@@@$@@@@@@@@@@@M@$0~ `\"^ \n #Z@$@$$^ 4y@@@M@@@@@$B@@@@@$@$Rg@R$@@yM \\\\ \n K~@RBs`w_,j$F@@$Eg$@@@R@@@$$@@@@B@@6@@$$(, .qWe \n x#W$$@$@@@$i$@@@@$$@@@@g@$@@$@@@@@@$5@B@Z0@ K{. \n \\eM$A@$$$@@@$$@@@R@@@@@R$@$$$@@@9A$$$gBy_aa\\ \" \n o7k@0BREA@@@@$$@@@$@$@@$$R$$W$@@@@$$g@P@b} \n '83yFBA@$$M@$@R@$$@#R$@$@@$$$@@R@$g#bQH' \n ^!w_'V@$@@Bg$$F@dM5$$@@@R$Z$@$@@@E/!' \n =>fmMWEPSZM5RB5@A@B0$Ba$0$T\\A+(~ \n ^ ^#~fAIf@@@h$M5p@JEkX^F'' \n `' `P^@degNB+M?P\" \n \n \n"
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
index: 28,
|
|
350
|
+
distance_km: 403437.1,
|
|
351
|
+
libration_elat: 5.803,
|
|
352
|
+
libration_elon: 2.179,
|
|
353
|
+
ascii: " \n \n . ; . . \n . , >; =_z/r_ `^r- \n .:=~ ~d@ywgyg_Ll]-1 , \n >^ yg$$@4@@JWTg$9Gx\"; \n gm&@M~~~#?\"EW_k@yG' \n . ,+;_ r x ,Lym@R@s' $@g$@Ay?#._ \n ~`<_ +gzwsAsAgs@@$z$* i N$$6R@$@/_. \n ysGyBE@@@@@$@@$@$@Byw_r MDRBB@@^^\"t, \n u$@@y@@@@$@@@@@@@@@5@$$F~^.+'' ABg( `- \n . #P$@@@@$@@@@@@@@$@@@$@$L,w\" ; _-fR1 > \n Ae ~~@E@$@@@@@@@@@@@@@@@@$LmmyEZY uz&\\\"H*X~ \n .N^ - JD@$@$@@@@@@$@$@@@@@@@$@$$M@WZ ^^X \n tzg _J rT$@@@@@@@@@@@@@@@@@$@@@@$0$$R_ ^C \n v%W4g~e$$@@[E=L$B@@@@@@$@$@$@@@$@$E$@@$$BRP_ ym/ \n ^y@$$N@@@~~ 'fE$@@@$@@@@@$$$@@@B@$@B@@@@@@$@Wi G\"+ \n Kf$$@$9$_! q$@@@@$@@@@@@@@$@@@@@@@@@@g@BXgy2${z \n !t2@eQ0gggN@@@R$B@$$@@@@$$@@@@@@@$@$$$$gA$A$gEm| \n `@k2W$@@@R$@Bs@@@$@$@@@@@@@R@@$@$@@@BgW@@@R2{\" \n T3za@@0$$$$@$$@$E$@$@$@$0W@@@$@$$$R$ZR@B@Fs~ \n `zRMy$@@0@@@$@@@E@@@@EhM@@@@@$2p@5gW$~~\" \n `^?&$W@5Q0m@@@@$@$@@$$$3$k@@@$PGR$F~ \n `]U_#x$2$@$Iy$@k0M5F@@kY@%mr~^~' \n \"k?RK@F4@$&Gg$RMF4C@XV? \n ` '^-~'~'7MA*Z%T~~ \n \n \n"
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
index: 29,
|
|
357
|
+
distance_km: 403723.3,
|
|
358
|
+
libration_elat: -1.613,
|
|
359
|
+
libration_elon: 1.645,
|
|
360
|
+
ascii: " \n \n .. : ;-. \n +y__ Jv/ , {! .. \n _W~ ` ''YIg>*g,.,,{<. \n J\" ug@@@@0@fvN2R_, \n R@@$@R$@$5M#WhE. ; \n x04s* ^l __ :_, 4$g@$' `P\\^fPjAbyK}. \n 2_>iWayKQysg$@$@$#@ R$@ZAW05_ \n $@KZ@@B@@@@@@@$@R$w / v@@$@@5@x^ \n ._ g$@@@@@@@@@@W@@@$@@@gy4} <g9@MMMZXR^. \n |$ ~B$@@@@@@@@@@@@@$@@D$@@@~\" : ~ #S@k \"! \n jTg, ~4@@$@@@@@@@$@@@@@$@@g,z \" J~$w \n ty%* ' 14@@$@@@@@@@@@@@@@@@$@KmYx*_u wm'%xuU \n \\RA$x*Y_vygy-JF@@@@@@@@@@@@@@@@@$@@$by@WRmk^ 7N \n ^@$@@@@@@B@TJ-$y@@@@@@@@@@@@@@@@@D@@@@B#@Y\\ : \n 1W$#R$@@P . 7Hg@$@@@@B@@@$@@@$@$@B@$@K$@$*_ .GK \n Y&2AMBgEi_._zgR$@@@$@@@$@$@@@$@$@@@@@@@@$@$g+ R~ \n ?y2#MMW$@$$@BB$@@@@@$@@@@$@@@@$@B@$@$@gP$@~yy_': \n =Wg@$@$@$$@B@B@@R@@@@@$$@$$$@@R$@$@$@@@$@R0@'< \n ~%|A#Z$$@@2@@@@@$@@@@g@@0@@@$M@@@@R$@0@$@@U` \n ~=Zy$$@@B$$$#@0B$$@$@R@$@@@@B@@R@@$ByZY~ \n \"V~15P{24@0$@$@@R$Q@mBm0@@@g%8@B6M^~` \n oFe$9Z52g$$$5EE#M$@@RKRVRmVY \n ' \"Aw9@R4g$M$g$$$@9yjC~`~ \n ' ^!`!~P%$%s-fr\"`~ \n \n \n"
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
index: 30,
|
|
364
|
+
distance_km: 404313.4,
|
|
365
|
+
libration_elat: -5.652,
|
|
366
|
+
libration_elon: 1.402,
|
|
367
|
+
ascii: ' \n \n +. - _ \n ,-m1_yz_.l~ !]~J \n _$#` "` "r|kz__L ` : \n ^ ` .X@@$mWgy.ym?. \n y_ , ug@@$H2g@R{MYW*r \n +=hP# ft ._,. _ "$$@$=~4@YByB?sHx \n , .$K@VKyy$ssg@$a$$@@$T `` Zsi#R$64 \n ^, -@@$2@$$@$@@@@g@@@$E . 7g@zag@/> \n em" .s@@@@@@@@@@$$B$$@E@@$y:u) /$@m$B@$X\' \n 3nM; t@@@@@@@$@@@@@@@@@@@@gQw {0~~$B#M"\'_ \n dtyk ^$@@@@@@@@@$B@B@$@@@@E -/ ` M4E$ ~ \n @mHA_ . r @@@@@@@@@@@@$@@@@$@@@>" uX@ \n K@3B@$y-$g$g.{A$@@@@@@@@@@@@@@@@@@@$@ D$E _ <~@e( \n &Q$BBR#$@R== \\BW@@@@@@@@@@@@@$@@@$@$$$$$@$E # \n z8M0M@@@E R@$$@@$@@@@$@@@@$@@@@$@@M4R5r -` \n ?MBys$@$a_;wZ@@@@$$$@@@@@$$@$@$$@@$@R$@$$X< *# \n tX)A@@$@$@$@W@@$@$$@$@@@$@$@@$$$$$@@$d$P6R@F r" \n ^AK@$A$$$gA@@R@@@@@$@@@D@$@@@@$@$QMZ@$@7e_am \n ~b8kB$$BRB@@$$@@@B@@$g@@g$$@$$$$H$$$W$MMs( \n `"?4@@K4@g$@$@$@W$@$@@$g@$@$gB@@s@W$&@2l? \n `0}3y_`M$@$$@$$BPd@50@@@@@@@$@@@TWT\' \n ^z"4R$JBR_$5aR?@@2$@$@HBMA0#BF^ \n `^ FTT"$A#$RW$Z$y=Y%1@ \' \' \n \'~~A\'FZ7I0~7?^^\' \n \n \n'
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
index: 31,
|
|
371
|
+
distance_km: 404638.4,
|
|
372
|
+
libration_elat: 2.826,
|
|
373
|
+
libration_elon: 0.232,
|
|
374
|
+
ascii: " \n \n . . >r - \n ._:z m;-y., = . \n n\\F` ^ `'3ggLtg$ p w5,r \n ` jygM@Ea@GWyYMZ$_ i \n M@E$$R`4@Z@dM^$RxI': \n _qN$ \"_ . __pA@@$F `` a#92@@&8K? \n `L- jyggSss_$B@@@D$ ^ @$$$$@$gC \n ;@m_dR@@$@@@$@$$@@0yr R ;1@$@@@V3~?< \n _0@@$@@@@@@@$@@@$$@@$g@$>+ Mt\" z@@0~ , \n .j t@$@@@@@@@@@@@@$@$@@@$@m _4^. .~~@@_ ' \n </ . ~@M$@@@@@@@@@@@@@@$@@$M$-xw,, '1J~#>,=| \n +_' 1$@@$$@@@@@@@@@@@@@@$@@M$a@gu$Y ~TV\" \n >Z@__, __y' r~@@@@@@@@@@@@@@@@@@@@@$$@$@HL ` \n h4N@@JM$@$E^ ty@@@$@@@@@@@@@@@@@$@@@@@@@@R{ ,`( \n \"R#B@$$$F` '@@$@@$@@@@@@@@@@@@@$@#@@$@B@W7gy {Y, \n A$T@$$2- -gK$$$@@@@@@@@@@$@@$@@@@@@$@@IRF4yU~: \n tdaN$@$@ym@&@@@@@@@$@$@@@0$@$$W@$@@@R@6$g@BD/+' \n \" V8PMRB@@$@@@B@$@@@$@@$$@@@@$$@E@$R$Kb$A0s$W/ \n ~wX@@MB$B@A@B@B@@M$Bg@$$@@@B@@@R@@@$B#B@MM\"' \n 'Js$d@$$@$@@%$@$@@@$@$@$$@@$$R@9$MBMG#!' \n ~4MR+e~Tb@@@@@@@$@@a@@R$@@9$m$Qm[Xn \n `!~E6$5gM5W_RW@@@R$ER@b0bCs\"Q~ \n `~-'UR?@9@-ER$@@5g2_wuhX - \n 'FFF'\"Z\"@MGR^^'` \n \n \n"
|
|
375
|
+
}
|
|
376
|
+
]
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
// src/render/renderer.ts
|
|
380
|
+
var FRAME_W = 60;
|
|
381
|
+
var FRAME_H = 29;
|
|
382
|
+
function asciiMoonDim(asciiArt) {
|
|
383
|
+
const lines = asciiArt.split("\n");
|
|
384
|
+
let minX = Infinity;
|
|
385
|
+
let maxX = -Infinity;
|
|
386
|
+
let minY = Infinity;
|
|
387
|
+
let maxY = -Infinity;
|
|
388
|
+
lines.forEach((line, y) => {
|
|
389
|
+
const firstNonSpace = line.search(/\S/);
|
|
390
|
+
if (firstNonSpace !== -1) {
|
|
391
|
+
const lastNonSpace = line.search(/\s+$/);
|
|
392
|
+
minX = Math.min(minX, firstNonSpace);
|
|
393
|
+
maxX = Math.max(maxX, lastNonSpace === -1 ? line.length - 1 : lastNonSpace - 1);
|
|
394
|
+
if (minY === Infinity) minY = y;
|
|
395
|
+
maxY = y;
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
if (minX === Infinity) {
|
|
399
|
+
return {
|
|
400
|
+
width: FRAME_W,
|
|
401
|
+
height: FRAME_H,
|
|
402
|
+
centerX: Math.floor(FRAME_W / 2),
|
|
403
|
+
centerY: Math.floor(FRAME_H / 2)
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
const width = maxX - minX + 1;
|
|
407
|
+
const height = maxY - minY + 1;
|
|
408
|
+
return {
|
|
409
|
+
width,
|
|
410
|
+
height,
|
|
411
|
+
centerX: minX + Math.floor(width / 2),
|
|
412
|
+
centerY: minY + Math.floor(height / 2)
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
function clamp(v, lo, hi) {
|
|
416
|
+
return Math.min(hi, Math.max(lo, v));
|
|
417
|
+
}
|
|
418
|
+
function rad(d) {
|
|
419
|
+
return d * Math.PI / 180;
|
|
420
|
+
}
|
|
421
|
+
function phaseSunVector(phaseAngleDeg, isWaxing, elatDeg = 0) {
|
|
422
|
+
const a = rad(phaseAngleDeg);
|
|
423
|
+
const elat = rad(elatDeg);
|
|
424
|
+
const sign = isWaxing ? 1 : -1;
|
|
425
|
+
const sx = sign * Math.sin(a);
|
|
426
|
+
let sy = 0;
|
|
427
|
+
let sz = Math.cos(a);
|
|
428
|
+
const sy1 = -sz * Math.sin(elat);
|
|
429
|
+
const sz1 = sz * Math.cos(elat);
|
|
430
|
+
sy = sy1;
|
|
431
|
+
sz = sz1;
|
|
432
|
+
const mag = Math.sqrt(sx * sx + sy * sy + sz * sz);
|
|
433
|
+
return {
|
|
434
|
+
sx: sx / mag,
|
|
435
|
+
sy: sy / mag,
|
|
436
|
+
sz: sz / mag
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
function litIntensity(xn, yn, sx, sy, sz) {
|
|
440
|
+
const dx = 1 / FRAME_W;
|
|
441
|
+
const dy = 1 / FRAME_H;
|
|
442
|
+
const offsets = [-0.5, -0.25, 0, 0.25, 0.5];
|
|
443
|
+
let total = 0;
|
|
444
|
+
let samples = 0;
|
|
445
|
+
for (const ox of offsets) {
|
|
446
|
+
for (const oy of offsets) {
|
|
447
|
+
const x = xn + ox * dx;
|
|
448
|
+
const y = yn + oy * dy;
|
|
449
|
+
const rsq = x * x + y * y;
|
|
450
|
+
if (rsq > 1) continue;
|
|
451
|
+
const nz = Math.sqrt(Math.max(0, 1 - rsq));
|
|
452
|
+
const dot = x * sx + y * sy + nz * sz;
|
|
453
|
+
total += Math.max(0, dot);
|
|
454
|
+
samples++;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
if (samples === 0) return 0;
|
|
458
|
+
return total / samples;
|
|
459
|
+
}
|
|
460
|
+
function findNearestMoonState(state) {
|
|
461
|
+
const DISTANCE_WEIGHT = 1;
|
|
462
|
+
const LIBRATION_WEIGHT = 1e4;
|
|
463
|
+
let bestIndex = 0;
|
|
464
|
+
let bestDistance = Infinity;
|
|
465
|
+
for (let i = 0; i < ascii_default.moons.length; i++) {
|
|
466
|
+
const moon = ascii_default.moons[i];
|
|
467
|
+
const distDiff = Math.abs(moon.distance_km - state.size.distanceKm) * DISTANCE_WEIGHT;
|
|
468
|
+
const elatDiff = Math.abs(moon.libration_elat - state.libration.elat) * LIBRATION_WEIGHT;
|
|
469
|
+
const elonDiff = Math.abs(moon.libration_elon - state.libration.elon) * LIBRATION_WEIGHT;
|
|
470
|
+
const totalDiff = distDiff + elatDiff + elonDiff;
|
|
471
|
+
if (totalDiff < bestDistance) {
|
|
472
|
+
bestDistance = totalDiff;
|
|
473
|
+
bestIndex = i;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
return ascii_default.moons[bestIndex];
|
|
477
|
+
}
|
|
478
|
+
function renderMoon(state, _options = {}) {
|
|
479
|
+
const nearestMoon = findNearestMoonState(state);
|
|
480
|
+
const asciiLines = nearestMoon.ascii.split("\n");
|
|
481
|
+
const dim = asciiMoonDim(nearestMoon.ascii);
|
|
482
|
+
const { sx, sy, sz } = phaseSunVector(
|
|
483
|
+
state.phase.phaseAngleDeg,
|
|
484
|
+
state.phase.isWaxing,
|
|
485
|
+
state.libration.elat
|
|
486
|
+
);
|
|
487
|
+
const intens = Array.from({ length: FRAME_H }, () => Array(FRAME_W).fill(0));
|
|
488
|
+
const rawInc = Array.from({ length: FRAME_H }, () => Array(FRAME_W).fill(-1));
|
|
489
|
+
const inDisc = Array.from({ length: FRAME_H }, () => Array(FRAME_W).fill(false));
|
|
490
|
+
let discCells = 0;
|
|
491
|
+
let litCells = 0;
|
|
492
|
+
for (let iy = 0; iy < FRAME_H; iy++) {
|
|
493
|
+
for (let ix = 0; ix < FRAME_W; ix++) {
|
|
494
|
+
const moonX = ix - dim.centerX;
|
|
495
|
+
const moonY = iy - dim.centerY;
|
|
496
|
+
const xn = moonX / (dim.width / 2);
|
|
497
|
+
const yn = moonY / (dim.height / 2);
|
|
498
|
+
const r2 = xn * xn + yn * yn;
|
|
499
|
+
if (r2 > 1) {
|
|
500
|
+
intens[iy][ix] = 0;
|
|
501
|
+
rawInc[iy][ix] = -1;
|
|
502
|
+
continue;
|
|
503
|
+
}
|
|
504
|
+
inDisc[iy][ix] = true;
|
|
505
|
+
discCells++;
|
|
506
|
+
const I = litIntensity(xn, yn, sx, sy, sz);
|
|
507
|
+
intens[iy][ix] = I;
|
|
508
|
+
if (I > 0) litCells++;
|
|
509
|
+
const nz = Math.sqrt(Math.max(0, 1 - r2));
|
|
510
|
+
rawInc[iy][ix] = xn * sx + yn * sy + nz * sz;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
const litMask = Array.from({ length: FRAME_H }, () => Array(FRAME_W).fill(false));
|
|
514
|
+
if (litCells > 0) {
|
|
515
|
+
for (let iy = 0; iy < FRAME_H; iy++) {
|
|
516
|
+
for (let ix = 0; ix < FRAME_W; ix++) {
|
|
517
|
+
litMask[iy][ix] = intens[iy][ix] > 0;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
} else {
|
|
521
|
+
const frac = clamp(state.phase.illuminatedFraction ?? 0, 0, 1);
|
|
522
|
+
const target = Math.max(1, Math.round(frac * discCells));
|
|
523
|
+
const candidates = [];
|
|
524
|
+
for (let iy = 0; iy < FRAME_H; iy++) {
|
|
525
|
+
for (let ix = 0; ix < FRAME_W; ix++) {
|
|
526
|
+
if (!inDisc[iy][ix]) continue;
|
|
527
|
+
candidates.push({ ix, iy, v: rawInc[iy][ix] });
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
candidates.sort((a, b) => b.v - a.v);
|
|
531
|
+
for (let k = 0; k < Math.min(target, candidates.length); k++) {
|
|
532
|
+
const { ix, iy } = candidates[k];
|
|
533
|
+
litMask[iy][ix] = true;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
const out = [];
|
|
537
|
+
for (let iy = 0; iy < FRAME_H; iy++) {
|
|
538
|
+
let row = "";
|
|
539
|
+
const src = asciiLines[iy] ?? "";
|
|
540
|
+
for (let ix = 0; ix < FRAME_W; ix++) {
|
|
541
|
+
if (litMask[iy][ix]) {
|
|
542
|
+
row += src[ix] ?? " ";
|
|
543
|
+
} else {
|
|
544
|
+
row += " ";
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
out.push(row);
|
|
548
|
+
}
|
|
549
|
+
return out.join("\n");
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
// src/cli.ts
|
|
553
|
+
function main() {
|
|
554
|
+
const args = process.argv.slice(2);
|
|
555
|
+
const dateArg = args[0];
|
|
556
|
+
let date;
|
|
557
|
+
if (dateArg) {
|
|
558
|
+
const parsedDate = new Date(dateArg);
|
|
559
|
+
if (isNaN(parsedDate.getTime())) {
|
|
560
|
+
console.error(`Invalid date format: ${dateArg}`);
|
|
561
|
+
console.error("Please use format: YYYY-MM-DD (e.g., 2025-01-01)");
|
|
562
|
+
process.exit(1);
|
|
563
|
+
}
|
|
564
|
+
date = parsedDate;
|
|
565
|
+
} else {
|
|
566
|
+
date = /* @__PURE__ */ new Date();
|
|
567
|
+
}
|
|
568
|
+
try {
|
|
569
|
+
const moonState = getMoonState(date);
|
|
570
|
+
const asciiMoon = renderMoon(moonState);
|
|
571
|
+
console.log(asciiMoon);
|
|
572
|
+
} catch (error) {
|
|
573
|
+
console.error("Error rendering moon:", error);
|
|
574
|
+
process.exit(1);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
578
|
+
main();
|
|
579
|
+
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ascii-side-of-the-moon",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Tiny Moon phase/size/libration + Unicode terminal renderer. Zero runtime deps; dev-only almanac generated with astronomy-engine.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
7
7
|
"module": "./dist/index.mjs",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
|
+
"bin": {
|
|
10
|
+
"ascii-side-of-the-moon": "./dist/cli.js"
|
|
11
|
+
},
|
|
9
12
|
"exports": {
|
|
10
13
|
".": {
|
|
11
14
|
"import": "./dist/index.mjs",
|