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