[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Orekit Developers] SOCIS Schedule
Bob Reynders <tzbobr@gmail.com> a écrit :
Luc,
Hi bob,
I still have some spare time these weeks so I should be able to do more
than just compile the project.
Fine !
I'd like to start making sense of the code as soon as I can, so far I have
cloned the repo and ran the available tests[2]. How should I best proceed
to learn about the codebase and components related to the data-loading
project? So far I've had a quick glance at the wiki and found diagrams
regarding data-handling[1].
This is it. In order to fully understand how data handling works, you
have to consider the configuration part that is performed beforehand
by user (typically telling were the data is), and the loading part
that is trigger automatically when some computation requires new data
(for example when you convert spacecraft coordinates from an inertial
frame to an Earth frame, Orekit loads under the hood the accurate
corrections that are used to compute Earth orientation).
The first part, configuration, is what is explained in the wiki page.
It is done by retrieving the singleton DataProvidersManager and
registering one or more instances of DataProvider to it.
The second part, automatic loading, is not explained in the user
documentation, as it is mainly done under the hood, without needing
user attention. You can look at how it works in a debugger, by setting
a breakpoint in the DataProvidersManager.feed method. This is the
method Orekit calls when it needs to load data. If you look at the
callers of this method, you will see it is used by many Orekit classes
to load many different types of data. The callers give a name
(currently corresponding to a regular expression pattern for the files
they are interested in), and an object that will be able to parse the
data (and store the parse output, of course). So for now, this system
is mainly based on parsing something from a bytes stream. We think
this is probably not well suited for database, except if you load
binary blobs in the database and parse them only at load time, which
certainly not really elegant and don't use the rich features a
database provides.
I would also like to work on bugs (no promises on fixes! ^.^) that could
help me learn more about the data-loading section of the code, so if there
are any please forward them to me.
I have browsed the open issues, unfortunately none of them would help
you understand this part of the code.
Please note that, as the proposal said, I have no knowledge on space flight
dynamics. If you have references to articles or papers that could help me
make more sense of the code I will be working on they are greatly
appreciated!
If you are selected as a student for this SOCIS session, I'll send you
directly some training material that may help you.
Cheers!
Bob
[1] https://www.orekit.org/forge/projects/orekit/wiki/Configuration
[2] I seem to have several failing tests due to rounding errors:
Failed tests:
EventShifterTest.testNegNeg:64 expected:<2300.238432465> but
was:<2300.2384324666564>
EventShifterTest.testNegPos:79 expected:<2300.238432465> but
was:<2300.2384324666564>
EventShifterTest.testPosNeg:98 expected:<2300.238432465> but
was:<2300.2384324666564>
EventShifterTest.testPosPos:113 expected:<2300.238432465> but
was:<2300.2384324666564>
EclipseDetectorTest.testTooSmallMaxIterationCount:105 an exception should
have been thrown
DSSTPropagatorTest.testPropagationWithSolarRadiationPressure:380
expected:<4.216625799807995E7> but was:<4.2166257996152095E7>
DSSTPropagatorTest.testIssue157:453 expected:<8758.8> but
was:<8733.563709354028>
SolidTidesFieldTest.testDeltaCnmSnm:239 expected:<-2.6732289327355114E-9>
but was:<-2.6732287866060995E-9>
DragForceTest.testParameterDerivativeSphere:69->AbstractForceModelTest.checkParameterDerivative:104
expected:<0.0> but was:<1.6421545637449973E-18>
HarrisPriesterTest.testUserTab:199 expected:<0.021637889734841487> but
was:<0.02163788973510572>
HarrisPriesterTest.testParameterN:95 expected:<0.021637889734841487> but
was:<0.021637889735105276>
These errors worry me. Could you tell me the configuration you used:
platform, java version, Orekit version, Apache Commons Math version,
development environment (maven, Eclipse or other IDE)?
best regards,
Luc
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.