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

[Orekit Developers] New snapshot with new orbit parameters forms and eclipse detection



Hi,

I've just released a new snapshot available here :
https://www.orekit.org/forge/attachments/download/60/orekit-20110822.apk

There isn't huge visible changes, but only tiny changes which should
improve the usability :

* Orbit parameters forms have been completely rewritten. They are now
standard forms and are not in a "list" style like before, this will
reduce the number of clicks needed to type data.

By the way, I've discovered that the orbit parameters window in the
previous versions were erranous and I'm really sorry :( They sometime
required requested fields that were not even used, and so on, because
I copied the keplerian form to do the other orbit types, since it's
basically the same structure and cannot be factorized much. In this
release I've triple checked with the Orekit API if the requested
parameters match, and they should do.

* In the original submission form, I suggested that I could study how
we could optimize things so that they could run faster on a phone ARM
CPU. However, we can see that the main bottleneck is not the actual
computation, but it is loading data sets. And loading the UTC
timescale takes ~10s and is needed each time we need an AbsoluteDate,
which is everywhere.

The idea was to create a thread, which will automatically prefetch
some often used datasets parts in the background while you're filling
in your forms.

Currently, it only loads the UTC timescale, but you can already notice
the speed improvement (if you don't fill the forms too fast). As this
is the main bottleneck for other parts on the application, you should
experience faster loading times (like the Frame conversion part, and
so on). Also, as I've seen on the SOCIS page that Orekit is not
thread-safe, it uses a mutex to lock Orekit computation parts and
release it when the background thread has finished his job. I've used
a synchronized(), but I'll switch to a java.util.concurrent.Semaphore.

* Add eclipse detection

By the way, I've used some parts of
tutorials/fr/cs/examples/propagation/EphemerisMode.java, for instance
the radius values and the occulting/occulted objects. I hope I'm not
wrong in the implementation :/ The implementation in the Android app
is here https://www.orekit.org/forge/projects/socis-2011/repository/revisions/master/entry/src/org/orekit/android/event/EventEclipseProxy.java
(in the load() method).

* A settings panel has been added. To access it, just press your
"menu" key on the application front page, and you'll be able to change
Orekit dataset path and the default central acceleration coefficient
value.
* selectAllOnFocus has been put on True for the Vector3DView, so
you'll have faster data typing for x/y/z vectors
* An icon has been added and the logo shown is now correct.
* maxCheck for visibility has been risen to 60 secs
* AOS/LOS visualization should be better
* The station selection weirdness has been removed, and when you add a
"Visibility" event, it will ask you one station (and you'll just need
to repeat the operation for the other station you want)
* The engine impulse field has been removed
* The assets/ folder in the sources have been added, so it should build now
* A context menu has been added so you can remove events

Have a nice day :)

Alexis Robert