[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orekit Users] how to calculate iss passes




Matteo <appdeveloper80@gmail.com> a écrit :

Hi Luc,

Hi Matteo,

thanks for your fast reply. I've used TLEPropagator and now it's all right!
I'd want to ask if there is a way to calculate also brightness
(magnitude) of ISS.

Orekit will help you to compute

 1) the distance between ISS and your ground point,
 2) the fact ISS is illuminated by Sun or in Earth shadow
 3) the Sun-ISS-ground point angle

From these, you will have to set up by yourself a reflection
model.

For item 1, as I assume you already have a TopocentricFrame
object associated to your ground point. So at any date, you
get the ISS SpacecraftState and just have to compute:

 distance = state.getPVCoordinates(topoFrame).getPosition().getNorm();

For item 2, you can set up an EclipseDetector and call its g function
directly with your SpacecraftState, the function will be positive
when spacecraft is illuminated and negative if shadowed.

For item 3, you have to compute:

  CelestialBody sun = CelestialBodyFactory.getSun();
  Vector3D sunPos   = sun.getPVCoordinates(topoFrame).getPosition();
  Vector3D issPos   = state.getPVCoordinates(topoFrame).getPosition();
  double angle      = Vector3D.angle(sunPos.subtract(issPos), issPos);

You may also take into account the directions of lines-of-sight in ISS
frame for both the incoming and reflected rays, taking ISS attitude (can
be assumed to be a LOFOffset attitude with LOFType.VNC local orbital
frame and all offset angles set to 0), if you want a reflection model
more realistic than something simply based on the Sun-Iss-ground point
angle.

best regards,
Luc

Thanks again!

Matteo

2017-02-23 13:23 GMT+01:00 MAISONOBE Luc <luc.maisonobe@c-s.fr>:

appdeveloper80@gmail.com a écrit :

Hi,


Hi Matteo,

I'm trying to calculate iss passes over Rome and I start from propagation
tutorial and I write this code
(https://gist.github.com/anonymous/fb939c0df8e6a72282eb27cc76840ac9).
But if I compare the rise and set date with the Heavens Above prevision

(http://heavens-above.com/PassSummary.aspx?satid=25544&lat=41.9028&lng=12.4964&loc=Roma&alt=53&tz=CET)
I don't find a match:

My code finds:

Visibility on station1 begins at 2017-02-23T14:06:33.974
Visibility on station1 ends at 2017-02-23T14:12:28.528

Heavens Above calculates:

23 Feb  -       12:48:03        10°     NNW     12:50:12        16°     N
12:52:20        10°     NE      daylight
23 Feb  -       14:24:14        10°     NW      14:27:21        37°
NNE
14:30:26        10°     E       daylight
23 Feb  -       16:00:50        10°     WNW     16:03:44        29°     SW
16:06:36        10°     SSE     daylight

Note that Heavens Above times are in CET timezone.

Can you help me where my error is?


From a quick check, I see two things.

First is that you created a Keplerian orbit from mean orbital elements and
propagated them as if they were osculating elements. You will get tens or
perhaps hundreds of kilometer differences after some propagation time.
As Heavens Above used TLE, you should use TLE too for propagation, so you
use the same semantic on parameters and the same model.

Second, when copying the mean anomaly (131.4349), it seems you forgot to
convert from degrees to radians.

Hope thi_s helps,
Luc

Thanks,

Matteo