1
0
Fork 0

Lunar features

pull/2/head
Cees Bassa 2014-10-08 17:37:09 +02:00
parent 3ef67c456f
commit 70505033d2
3 changed files with 172 additions and 7 deletions

60
data/moonB.dat 100644
View File

@ -0,0 +1,60 @@
0 0 0 1 5128122
0 0 1 1 280602
0 0 1 -1 277693
2 0 0 -1 173237
2 0 -1 1 55413
2 0 -1 -1 46271
2 0 0 1 32573
0 0 2 1 17198
2 0 1 -1 9266
0 0 2 -1 8822
2 -1 0 -1 8216
2 0 -2 -1 4324
2 0 1 1 4200
2 1 0 -1 -3359
2 -1 -1 1 2463
2 -1 0 1 2211
2 -1 -1 -1 2065
0 1 -1 -1 -1870
4 0 -1 -1 1828
0 1 0 1 -1794
0 0 0 3 -1749
0 1 -1 1 -1565
1 0 0 1 -1491
0 1 1 1 -1475
0 1 1 -1 -1410
0 1 0 -1 -1344
1 0 0 -1 -1335
0 0 3 1 1107
4 0 0 -1 1021
4 0 -1 1 833
0 0 1 -3 777
4 0 -2 1 671
2 0 0 -3 607
2 0 2 -1 596
2 -1 1 -1 491
2 0 -2 1 -451
0 0 3 -1 439
2 0 2 1 422
2 0 -3 -1 421
2 1 -1 1 -366
2 1 0 1 -351
4 0 0 1 331
2 -1 1 1 315
2 -2 0 -1 302
0 0 1 3 -283
2 1 1 -1 -229
1 1 0 -1 223
1 1 0 1 223
0 1 -2 -1 -220
2 1 -1 -1 -220
1 0 1 1 -185
2 -1 -2 -1 181
0 1 2 1 -177
4 0 -2 -1 176
4 -1 -1 -1 166
1 0 1 -1 -164
4 0 1 -1 132
1 0 -1 -1 -119
4 -1 0 -1 115
2 -2 0 1 107

60
data/moonLR.dat 100644
View File

@ -0,0 +1,60 @@
0 0 1 0 6288774 -20905355
2 0 -1 0 1274027 -3699111
2 0 0 0 658314 -2955968
0 0 2 0 213618 -569925
0 1 0 0 -185116 48888
0 0 0 2 -114332 -3149
2 0 -2 0 58793 246158
2 -1 -1 0 57066 -152138
2 0 1 0 53322 -170733
2 -1 0 0 45758 -204586
0 1 -1 0 -40923 -129620
1 0 0 0 -34720 108743
0 1 1 0 -30383 104755
2 0 0 -2 15327 10321
0 0 1 2 -12528 0
0 0 1 -2 10980 79661
4 0 -1 0 10675 -34782
0 0 3 0 10034 -23210
4 0 -2 0 8548 -21636
2 1 -1 0 -7888 24208
2 1 0 0 -6766 30824
1 0 -1 0 -5163 -8379
1 1 0 0 4987 -16675
2 -1 1 0 4036 -12831
2 0 2 0 3994 -10445
4 0 0 0 3861 -11650
2 0 -3 0 3665 14403
0 1 -2 0 -2689 -7003
2 0 -1 2 -2602 0
2 -1 -2 0 2390 10056
1 0 1 0 -2348 6322
2 -2 0 0 2236 -9884
0 1 2 0 -2120 5751
0 2 0 0 -2069 0
2 -2 -1 0 2048 -4950
2 0 1 -2 -1773 4130
2 0 0 2 -1595 0
4 -1 -1 0 1215 -3958
0 0 2 2 -1110 0
3 0 -1 0 -892 3258
2 1 1 0 -810 2616
4 -1 -2 0 759 -1897
0 2 -1 0 -713 -2117
2 2 -1 0 -700 2354
2 1 -2 0 691 0
2 -1 0 -2 596 0
4 0 1 0 549 -1423
0 0 4 0 537 -1117
4 -1 0 0 520 -1571
1 0 -2 0 -487 -1739
2 1 0 -2 -399 0
0 0 2 -2 -381 -4421
1 1 1 0 351 0
3 0 -2 0 -340 0
4 0 -3 0 330 0
2 -1 2 0 327 0
0 2 1 0 -323 1165
1 1 -1 0 299 0
2 0 3 0 294 0
2 0 -1 -2 0 8752

View File

@ -39,7 +39,7 @@ struct map {
char orientation[LIM];
char nfd[LIM],tlefile[LIM],observer[32];
char datadir[LIM],tledir[LIM],notamfile[LIM],xyzfile[LIM];
int site_id,notamflag,xyzflag;
int site_id,notamflag,xyzflag,moonflag;
float w;
} m;
struct globe {
@ -92,6 +92,7 @@ void initialize_setup(void)
m.h0=gmst(m.mjd);
m.notamflag=0;
m.xyzflag=0;
m.moonflag=0;
// Default settings
strcpy(m.observer,"Unknown");
@ -469,7 +470,6 @@ void plot_xyz(void)
// Plot
if (flag==1) {
printf("%lf %lf\n",m.mjd,mjd);
flag=2;
plot_footprint(s);
if (!(sqrt(x*x+y*y)<XKMPER && z<0.0)) {
@ -617,11 +617,12 @@ void plot_moon(void)
float r,h;
float l,b,l0,b0;
float x0,y0,z0,x,y,z;
double lra,lde;
double lra,lde,dmjd;
int isci;
char text[8];
cpgqci(&isci);
cpgsci(14);
cpgsci(3);
// Get positions
lunpos_xyz(m.mjd,&s,&lra,&lde);
@ -663,7 +664,7 @@ void plot_moon(void)
// Plot antipode
if (z0>0.0)
cpgpt1(x0,y0,2);
cpgpt1(x0,y0,6);
// Plot moon
z=s.z;
@ -677,6 +678,37 @@ void plot_moon(void)
cpgcirc(x,y,1737.5);
// Plot antipode travel
for (dmjd=1.0;dmjd<7.0;dmjd+=1.0) {
// Get positions
lunpos_xyz(m.mjd+dmjd,&s,&lra,&lde);
// GMST
h=gmst(m.mjd);
// Lunar antipode
l0=modulo(lra-h-180,360.0);
b0=-lde;
if (l0>180.0)
l0-=360.0;
// Convert
z0=cos(l0*D2R)*cos(b0*D2R)*XKMPER;
x0=sin(l0*D2R)*cos(b0*D2R)*XKMPER;
y0=sin(b0*D2R)*XKMPER;
rotate(1,m.l0,&x0,&y0,&z0);
rotate(0,m.b0,&x0,&y0,&z0);
// Plot antipode
if (z0>0.0) {
sprintf(text," %.0f",dmjd);
cpgpt1(x0,y0,2);
cpgtext(x0,y0,text);
}
}
cpgsci(isci);
return;
@ -940,7 +972,8 @@ void plot_map(void)
plot_terminator();
// Plot moon
plot_moon();
if (m.moonflag==1)
plot_moon();
// Plot Grid
cpgsls(2);
@ -1079,7 +1112,7 @@ int main(int argc,char *argv[])
initialize_setup();
// Decode options
while ((arg=getopt(argc,argv,"t:c:i:s:l:hN:p:"))!=-1) {
while ((arg=getopt(argc,argv,"t:c:i:s:l:hN:p:mL:B:"))!=-1) {
switch (arg) {
case 't':
@ -1108,11 +1141,23 @@ int main(int argc,char *argv[])
m.notamflag=1;
break;
case 'L':
m.lng=atof(optarg);
break;
case 'B':
m.lat=atof(optarg);
break;
case 'p':
strcpy(m.xyzfile,optarg);
m.xyzflag=1;
break;
case 'm':
m.moonflag=1;
break;
case 'h':
usage();
return 0;