Orbit Determination with Python
New features:
The CPU intensive propagate_orbits
, simulate_measurements
, and determine_orbit
may now be called asynchronously, which allows orbdetpy to use multiple CPU cores and hyper-threading. See examples/run_tests.py
for an example of the caller-side changes needed to support multi-threaded synchronization. The UKF will automatically propagate sigma points in parallel without any additional user input needed.
Station measurement biases and other parameters may now be estimated or considered in the UKF. The EKF can only estimate Cd, Cr and DMC accelerations but not station biases.
Outlier detection may now be configured using the parameters in docs/file_formats.md
.
The primary goal of this release was to eliminate the costly JSON encode/decode cycles that were used to bridge the Python/Java divide. This was done by using protobuf's native binary wire format for data marshalling. However, the following changes in this release break backward compatibility.
README.md
for more details on usage.testsim.py
and testodet.py
have been removed because the underlying functions simulate_measurements()
and determine_orbit()
are capable of handling file inputs directly.plotsim.py
and plotodet.py
have been moved to the orbdetpy.plotting
sub-package. See README.md
for some examples.Propagation/Step
configuration parameter. Use this in combination with Propagation/StepHandlerStartTime
and Propagation/StepHandlerEndTime
parameters to limit the amount of data generated and to avoid out-of-memory situations.orbdetpy.propagation
module introduces a new propagate_orbits()
function that is capable of propagating multiple orbits in parallel.Changed Python<->Java function call interface to use gRPC instead of the Python pyjnius package.
Made package installabe using pip.
Initial stable release