|
Last change
on this file since 19693 was 17952, checked in by tbretz, 11 years ago |
|
Use a general object which stored the coordinates of the solar objects so that it can be re-used.
|
|
File size:
1.1 KB
|
| Line | |
|---|
| 1 | #ifndef MARS_Prediction
|
|---|
| 2 | #define MARS_Prediction
|
|---|
| 3 |
|
|---|
| 4 | #include <math.h>
|
|---|
| 5 |
|
|---|
| 6 | #include "nova.h"
|
|---|
| 7 |
|
|---|
| 8 | namespace FACT
|
|---|
| 9 | {
|
|---|
| 10 | double PredictI(const Nova::SolarObjects &so, const Nova::EquPosn &srcEqu)
|
|---|
| 11 | {
|
|---|
| 12 | // Derived moon properties
|
|---|
| 13 | const double angle = Nova::GetAngularSeparation(so.fMoonEqu, srcEqu);
|
|---|
| 14 | const double edist = so.fEarthDist/384400;
|
|---|
| 15 |
|
|---|
| 16 | // Current prediction
|
|---|
| 17 | const double sin_malt = so.fMoonHrz.alt<0 ? 0 : sin(so.fMoonHrz.alt*M_PI/180);
|
|---|
| 18 | const double cos_mdist = cos(angle*M_PI/180);
|
|---|
| 19 | const double cos_salt = cos(so.fSunHrz.alt*M_PI/180);
|
|---|
| 20 |
|
|---|
| 21 | const double c0 = pow(so.fMoonDisk, 2.63);
|
|---|
| 22 | const double c1 = pow(sin_malt, 0.60);
|
|---|
| 23 | const double c2 = pow(edist, -2.00);
|
|---|
| 24 | const double c3 = exp(0.67*cos_mdist*cos_mdist*cos_mdist*cos_mdist);
|
|---|
| 25 | const double c4 = exp(-97.8+105.8*cos_salt*cos_salt);
|
|---|
| 26 |
|
|---|
| 27 | return 6.2 + 95.7*c0*c1*c2*c3 + c4; // [muA]
|
|---|
| 28 | }
|
|---|
| 29 |
|
|---|
| 30 | double PredictI(const double &jd, const Nova::EquPosn &srcEqu)
|
|---|
| 31 | {
|
|---|
| 32 | return PredictI(Nova::SolarObjects(jd), srcEqu);
|
|---|
| 33 | }
|
|---|
| 34 | }
|
|---|
| 35 |
|
|---|
| 36 | #endif
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.