[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.