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

*To*: orekit-users@orekit.org*Subject*: Re: [Orekit Users] how to calculate iss passes*From*: MAISONOBE Luc <luc.maisonobe@c-s.fr>*Date*: Sun, 26 Feb 2017 21:03:46 +0100*In-reply-to*: <CAEGzASMMx7iWAvRdXmL9e2VPqJ-tyStTHMveZb7a+snnjx4Peg@mail.gmail.com>*References*: <sympa.1487848248.5407.670@orekit.org> <20170223132302.Horde.UY5rru6c-W4bGbOCXBkc2A1@messagerie.c-s.fr> <CAEGzASNm7xUPpYufKVAQSgxcQepasz+shKYbOZ0GK=-nubEYBg@mail.gmail.com> <20170224145123.Horde.pJ4qHm8FliBjLjz9-wv_WA2@messagerie.c-s.fr> <20170224145705.Horde.Rgz0uKgyw1kpsJ36K0knLA3@messagerie.c-s.fr> <CAEGzASMMx7iWAvRdXmL9e2VPqJ-tyStTHMveZb7a+snnjx4Peg@mail.gmail.com>*User-agent*: Internet Messaging Program (IMP) H5 (6.2.3)

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

I thank you again for your answer, I'm trying to use formula in this post ( http://stackoverflow.com/questions/19739831/is-there-any-way-to-calculate-the-visual-magnitude-of-a-satellite-iss) for reflection model. When I use ElevationExtremumDetector, I'm actually filtering for positive elevation: in this case regarding number 2) (the fact ISS is illuminated by Sun or in Earth shadow) is ISS always illuminated by Sun?

night and if ISS flies directly at the zenith, it will also be in the night.

Is ElevationExtremumDetector filtering for eclipsed transit?

No, because for classical operations, we need to be able to get satellite telemetry and send telecommands even at night. We don't really "look" at the satellite, we connect to it using ground stations antennas. So this detector finds by default all passes. Also rather than ElevationExtremumDetector (which will give you only one point, the max of the pass), you can use ElevationDetector which will give you the raising and setting times, and can take into account atmospheric refraction, which distorts rays near horizon. Another reason to use ElevationDetector is that if your ground point is slightly after sunset (or before dawn) and therefore is in night, the max pass will also be in night and you will miss it, despite near the horizon, the ISS may be out of shadow and be visible (despite the observer is in the night part of the Earth, near the terminator).

If not, how can I know if ISS is eclipsed in the "eventOccurred" of an ElevationExtremumHandler since I'm out of a EclipseDetector event?

You can wrap your ElevationDetector within an EventEnablingPredicateFilter object, together with your own implementation of EnablingPredicate based on the g method of an EclipseDetector (not the eventOccurred method, which you don't need here). Something along these lines: public class Illuminated implements EnablingPredicate<ElevationDetector> { private final EclipseDetector eclipseDetector; public Illuminated() throws OrekitException { this.eclipseDetector = new EclipseDetector(CelectialBody.getSun(), 696000000.,

}

throws OrekitException {

return eclipseDetector.g(state) >= 0; } }

so it may well contain errors. bes

Thanks again! Il venerdì 24 febbraio 2017, MAISONOBE Luc <luc.maisonobe@c-s.fr> ha scritto:MAISONOBE Luc <luc.maisonobe@c-s.fr> a écrit :Matteo <appdeveloper80@gmail.com> a écrit :Hi Luc,Hi Matteo,thanks for your fast reply. I've used TLEPropagator and now it's allright!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);in fact last line should be: double angle = FastMath.PI - Vector3D.angle(sunPos.subtract(issPos),issPos);LucYou 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, LucThanks 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 frompropagationtutorial and I write this code (https://gist.github.com/anonymous/fb939c0df8e6a72282eb27cc76840ac9). But if I compare the rise and set date with the Heavens Aboveprevision(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°N12: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°SW16: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 elementsandpropagated them as if they were osculating elements. You will get tensorperhaps hundreds of kilometer differences after some propagation time. As Heavens Above used TLE, you should use TLE too for propagation, soyouuse the same semantic on parameters and the same model. Second, when copying the mean anomaly (131.4349), it seems you forgottoconvert from degrees to radians. Hope thi_s helps, LucThanks, Matteo

**Follow-Ups**:**Re: [Orekit Users] how to calculate iss passes***From:*MAISONOBE Luc <luc.maisonobe@c-s.fr>

**References**:**[Orekit Users] how to calculate iss passes***From:*<appdeveloper80@gmail.com>

**Re: [Orekit Users] how to calculate iss passes***From:*MAISONOBE Luc <luc.maisonobe@c-s.fr>

**Re: [Orekit Users] how to calculate iss passes***From:*Matteo <appdeveloper80@gmail.com>

**Re: [Orekit Users] how to calculate iss passes***From:*MAISONOBE Luc <luc.maisonobe@c-s.fr>

**Re: [Orekit Users] how to calculate iss passes***From:*MAISONOBE Luc <luc.maisonobe@c-s.fr>

**Re: [Orekit Users] how to calculate iss passes***From:*Matteo <appdeveloper80@gmail.com>

- Prev by Date:
**Re: [Orekit Users] how to calculate iss passes** - Next by Date:
**Re: [Orekit Users] how to calculate iss passes** - Previous by thread:
**Re: [Orekit Users] how to calculate iss passes** - Next by thread:
**Re: [Orekit Users] how to calculate iss passes** - Index(es):