Hello,
I am using orekit in Android to calculate the latitude, longitude, altitude of Iridium satellites.
It works well and I am determining accurate geodetic points.
My issue is that I use:
Frame earthFrame = FramesFactory.getITRF(IERSConventions.IERS_2010, true);
And this call takes around 30 seconds to complete.
I was hoping to ask if this was expected? I believe that using true means that it will use simpleEOP and should generally complete quicker than without it.
I have tried other frames and they complete within 1 second, but they do not produce the correct locations and I don’t understand the differences in these frames well enough.
For reference, I am using TLE data from Celestrak, for example:
“IRIDIUM 106”,
“1 41917C 17003A 25140.11006944 .00002980 00000+0 10656-2 0 1406”,
“2 41917 86.3962 252.7335 0002773 98.4397 8.2363 14.34213221 10”
And my basic sequence of calculations is as follows:
val tle = TLE(satellite.LINE1, satellite.LINE2)
val propagator = TLEPropagator.selectExtrapolator(tle)
earthFrame = FramesFactory.getITRF(IERSConventions.IERS_2010, true)
val position = propagator.getPVCoordinates(observeAt, earthFrame).position
val earth = OneAxisEllipsoid(
Constants.WGS84_EARTH_EQUATORIAL_RADIUS,
Constants.WGS84_EARTH_FLATTENING,
earthFrame)
val geoPoint: GeodeticPoint = earth.transform(position, earthFrame, observeAt)
latitude = Math.toDegrees(geoPoint.latitude)
longitude = Math.toDegrees(geoPoint.longitude)
So I guess my questions would be if anyone that may have used this method, is it expected to take around 30 seconds? I know using a PC is likely to be a lot faster than an android device, so maybe it isn’t as noticeable but I still wouldn’t expect it to take this long?
Also, is it be possible to use a different earth frame and still calculate the geodetic points somewhat accurately? I have tried TEME and GCRF but have not been able to calculate the correct locations but I’m sure I’m misunderstanding how these work.
Thanks