Welcome to Orekit forum !
Nothing really. You’re just not using the same TLE than the one on your reference website.
On your link to heavens-above website click on the “Orbite” menu on top. You’ll see they are using a more recent TLE (12:07) than yours (08:06).
With that TLE the results are much better. You don’t get the 20s divergence at the end. You still get some less-than-1s difference that is due to rounding off the date.
However there are still some differences that are above 1s. These I cannot really explain since I don’t know what’s under the hood of the heavens-above engine.
EventDetector groundAtNightEvt = new GroundAtNightDetector.ASTRONOMICAL_DAWN_DUSK_ELEVATION, new EarthStandardAtmosphereRefraction());
This is for the
Now you want to have both ISS visibility AND local night so you’ll replace a line of your code with:
propagator.addEventDetector(BooleanDetector.andCombine(kolOgrVisiEvt, groundAtNightEvt).withHandler(new VisibilityHandler(kolFrame.getName())));
You’ll have to adapt your
VisibilityHandler. Here I made it take the location name in argument since the
BooleanDetector does not have a
With this you’ll definitely see some discrepancies with your reference website.
From the different configurations I tried they do not seem to use atmospheric refraction (replace it by
null in the constructor to do so) and the dawn dusk elevation they use is quite high, in fact even higher than the civil dawn dusk elevation (which is -6deg).
You’ll have to play around with the values to get the same results as them. I’m not even sure that you can get them since they may not use such a complex scheme and simply cross their visibilities calculation at culmination with dawn/dusk ephemerides of the Sun.
Hope this helps,