(11468) Shantanunaidu orbit determination test

(11468) Shantanunaidu orbit determination test#

[1]:
import grss
prop = grss.prop
fit = grss.fit
[2]:
import numpy as np
np.set_printoptions(precision=40, linewidth=np.inf)
[3]:
body_id = '11468'
init_sol, init_cov, nongrav_info = fit.get_sbdb_info(body_id)
de_kernel = 440
[4]:
add_gaia_obs = True
optical_obs_file = None
t_min_tdb = None
t_max_tdb = None
debias_lowres = True
deweight = True
eliminate = False
num_obs_per_night = 4
verbose = True
obs_df = fit.get_optical_obs(body_id, optical_obs_file, t_min_tdb, t_max_tdb, debias_lowres, deweight, eliminate, num_obs_per_night, verbose)
obs_df = fit.add_radar_obs(obs_df, t_min_tdb, t_max_tdb, verbose)
if add_gaia_obs:
    gaia_dr = 'gaiafpr'
    obs_df = fit.add_gaia_obs(obs_df, t_min_tdb, t_max_tdb, gaia_dr, verbose)
Read in 1751 observations from the MPC.
        WARNING: At least one unknown observation mode in the data.
        WARNING: At least one deprecated star catalog in the data.
        Filtered to 1751 observations that satisfy the time range and accepted observatory constraints.
Applying Eggl et al. (2020) debiasing scheme to the observations.
        Unknown star catalog: GSC
        Unknown star catalog: UNK
        No debiasing needed for 727 observations.
        Debiased 984 observations.
        No bias information for 40 observations.
Applying Vereš et al. (2017) weighting scheme to the observations.
        Using 1552 CCD observations with station-specific weight rules.
Applying sqrt(N/4) deweighting scheme.
        Deweighted 484 observations.
Read in 308 Gaia observations from gaiafpr
        Filtered to 308 observations that satisfy the time range constraints.
[5]:
n_iter_max = 10
fit_sim = fit.FitSimulation(init_sol, obs_df, init_cov, n_iter_max=n_iter_max, de_kernel=de_kernel, nongrav_info=nongrav_info)
[6]:
fit_sim.filter_lsq()
Iteration               Unweighted RMS          Weighted RMS            Chi-squared             Reduced Chi-squared
1                        0.430                   0.567                   1321.936                        0.321
2                        0.430                   0.567                   1321.832                        0.321
Converged without rejecting outliers. Starting outlier rejection now...
3                        0.396                   0.545                   1222.259                        0.298
4                        0.396                   0.545                   1222.211                        0.298
Converged after rejecting outliers. Rejected 6 out of 2059 optical observations.
[7]:
fit_sim.print_summary()
Summary of the orbit fit calculations after postfit pass:
==============================================================
RMS unweighted: 0.39604552022124734
RMS weighted: 0.5447909449735425
chi-squared: 1222.2107614002311
reduced chi-squared: 0.29810018570737346
square root of reduced chi-squared: 0.5459855178549825
--------------------------------------------------------------
Solution Time: MJD 57700.000 TDB = 2016-11-08 00:00:00.000 TDB
Solution Observation Arc: 15800.49 days (43.26 years)
--------------------------------------------------------------
Fitted Variable         Initial Value                   Uncertainty                     Fitted Value                    Uncertainty                     Change                          Change (sigma)
e                       1.66658960206e-01               2.25799628222e-09               1.66658960547e-01               2.27127785234e-09               +3.41507933044e-10              +0.150
q                       2.56494502971e+00               2.92925632622e-09               2.56494502968e+00               2.94348291231e-09               -2.94808621959e-11              -0.010
tp                      5.75112237351e+04               4.22566998374e-06               5.75112237357e+04               4.24910817464e-06               +5.80439518671e-07              +0.137
om                      2.06375171960e+02               6.73376313990e-06               2.06375171950e+02               6.76776543604e-06               -9.32419652599e-09              -0.001
w                       1.53990533467e+02               6.80555902001e-06               1.53990533611e+02               6.84004223742e-06               +1.44254272527e-07              +0.021
i                       7.88980995904e-01               8.48419637423e-08               7.88981001462e-01               8.50627397661e-08               +5.55799106738e-09              +0.065

[8]:
fit_sim.plot_summary(auto_close=True)
../../../_images/tests_python_fit_shantanunaidu_8_0.png
[9]:
fit_sim.iters[-1].plot_iteration_summary(title='Postfit Residuals', auto_close=True)
../../../_images/tests_python_fit_shantanunaidu_9_0.png
../../../_images/tests_python_fit_shantanunaidu_9_1.png
[10]:
mean_0 = np.array(list(init_sol.values())[1:])
cov_0 = init_cov
mean_f = np.array(list(fit_sim.x_nom.values()))
cov_f = fit_sim.covariance

maha_dist_f, maha_dist_0, bhattacharya, bhatt_coeff = fit.get_similarity_stats(mean_0, cov_0, mean_f, cov_f)
print(f'Mahalonobis distance between JPL and GRSS solution: {maha_dist_f:0.2f}')
print(f'Mahalonobis distance between GRSS and JPL solution: {maha_dist_0:0.2f}')
print(f'Bhattacharya distance between JPL and GRSS solution: {bhattacharya:0.4f}')
print(f'Bhattacharya coefficient between JPL and GRSS solution: {bhatt_coeff:0.4f}')
Mahalonobis distance between JPL and GRSS solution: 0.19
Mahalonobis distance between GRSS and JPL solution: 0.19
Bhattacharya distance between JPL and GRSS solution: 0.0001
Bhattacharya coefficient between JPL and GRSS solution: 0.9999
[11]:
assert maha_dist_f < 5.0
assert maha_dist_0 < 5.0
assert bhattacharya < 0.10
assert bhatt_coeff > 0.90
[ ]: