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

Re: [Orekit Developers] [SOCIS 2011] Status of the Android application



Alexis ROBERT <alexis.robert@gmail.com> a écrit :

On Mon, Aug 8, 2011 at 12:06 PM, Alexis ROBERT <alexis.robert@gmail.com> wrote:
* I think GCRF time scale object is too big as I get a E/JavaBinder(
9766): !!! FAILED BINDER TRANSACTION !!! when I want to select a GCRF
time scale.

Sorry GMST timescale.

It's not GMST by itself, but rather the UT1 time scale which GMST depends on. UT1 time scale needs Earth Orientation Parameters, which are correction files published by IERS (International Earth Rotation and Reference Systems Service).

These files are from a few tens of kilobytes for final2000A.daily which covers the last 90 days to about 2.7 megabytes for finals2000A.all which covers from 1973 to current date. There are other data files we use which are larger, like for example JPL ephemerides (DE406 binary files are about 10 megabytes for each 300 years chunks, we often use only the chunk from 1800 to 2100). Is there a limit on the size of the file we can safely handle ? Should we reduce some files by reducing their time range and let the user download only useful small parts (lets say 1 year for each data type) ? What does the failed binder transaction error mean ?


Also, when I said "By creating a /sdcard/orekit/ folder and storing
the orekit-data.zip inside, it works." it also implies changing the
System.setProperty("orekit.data.path", "/sdcard/"); line of the
Android application sourcecode to /sdcard/orekit/ :)

If we force users to use one folder only, using the orekit.data.path system property programmaticaly is awkward. This is a default configuration that was intended for external use (i.e. when some script launches the application and set the property beforehand). For mandatory programmatic setting, the cleanest way to configure Orekit is to use something like:

DataProvider provider = new DirectoryCrawler(new File(/sdcard/orekit));
DataProvidersManager.getInstance().addProvider(provider);

In fact, this could later be expanded by having some user preferences with a few data folders, and even some URLS for online data (using NetworkCrawler for these data instead of DirectoryCrawler). The number of DataProvider instances the DataProvidersManager handles is not limited.

Luc






----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.