Doppler Shifts in Cen X-3 Chandra Observation¶
Within a Cen X-3 Chandra observation, some very prominent Doppler shifts in the Fe xxv central energy were observed in phase resolved analysis.
In this example, we will explore how these shifts are compatible with the emitting plasma's ballistic movement around the orbit.
In [1]:
Copied!
import xraybinaryorbit
from xraybinaryorbit import *
import xraybinaryorbit
from xraybinaryorbit import *
HELLO, nice to see you! :) PLEASE READ THIS, IT'S VERY IMPORTANT: These are the units that must be used within this package: - Rstar: Solar radius - Mstar: Solar masses - Inclination: Sexagesimal degrees - Periapsis: Sexagesimal degrees - Semimajor: Stellar radius - Periods: Days (Periods in the case of the period_sliding_window function will support any units) - Iphase: Radians A list of the functions contained in this package will be displayed by runing the function list_functions(). As these functions use a lot of parameters, which can sometimes be difficult to handle, we have implemented a user-friendly method for parameter input: A form will be displayed, and the parameters will be saved in the directory for further interactions. These saved parameters will be used if new parameters are not provided. For the function to work, the submit button must be pressed. If the parameters are already saved within the working directory, setting "load_directly=True" no form will be displayed and that parameters will be used within the function. Alternatively, the parameters can be provided as lists in the following format: parameter_list=[parameters] for the theoretical functions or as bound_list = [lower_bounds], [upper_bounds] for the fitting functions. Please, take into account that fits in general will take A LOT of time to complete. If you need help, contact graciela.sanjurjo@ua.es.
In [2]:
Copied!
# REAL DATA
# Known orbital phases for each time bin
phase_array = np.array([0.21901885, 0.24120082, 0.2522918 , 0.26338279, 0.27447377,
0.28556475, 0.29665574, 0.30774672, 0.31883771, 0.32715595,
0.33270144, 0.33824693, 0.35488341, 0.3604289 , 0.36597439,
0.37706538, 0.38815636, 0.40479284, 0.41033833])
# Time bins: The beguining and end are provided.
x = np.array([[7.97000557e+08, 7.97002557e+08],
[7.97004557e+08, 7.97006557e+08],
[7.97006557e+08, 7.97008557e+08],
[7.97008557e+08, 7.97010557e+08],
[7.97010557e+08, 7.97012557e+08],
[7.97012557e+08, 7.97014557e+08],
[7.97014557e+08, 7.97016557e+08],
[7.97016557e+08, 7.97018557e+08],
[7.97018557e+08, 7.97020557e+08],
[7.97020557e+08, 7.97021557e+08],
[7.97021557e+08, 7.97022557e+08],
[7.97022557e+08, 7.97023557e+08],
[7.97025557e+08, 7.97026557e+08],
[7.97026557e+08, 7.97027557e+08],
[7.97027557e+08, 7.97028557e+08],
[7.97029557e+08, 7.97030557e+08],
[7.97031557e+08, 7.97032557e+08],
[7.97034557e+08, 7.97035557e+08],
[7.97035557e+08, 7.97036557e+08]])
# Emission line evolution
y = np.array([6.68379, 6.80991, 6.67892, 6.70604, 6.59522, 6.69305, 6.78357,
6.7602 , 6.71054, 6.59051, 6.58941, 6.6197 , 6.6798 , 6.73628,
6.72427, 6.70338, 6.81985, 6.60144, 6.60003])
# Emission line evolution positive and negative errors
y_err = np.array([[0.01962, 0.01599, 0.0353 , 0.02163, 0.01522, 0.02066, 0.01784,
0.0408 , 0.09066, 0.01051, 0.00941, 0.0344 , 0.0998 , 0.02562,
0.02753, 0.03273, 0.08475, 0.02144, 0.02003],
[0.09961, 0.01009, 0.04271, 0.02659, 0.12467, 0.01667, 0.03643,
0.03073, 0.03159, 0.02861, 0.01781, 0.04638, 0.09535, 0.0397 ,
0.03344, 0.10163, 0.00015, 0.06801, 0.04635]])
# REAL DATA
# Known orbital phases for each time bin
phase_array = np.array([0.21901885, 0.24120082, 0.2522918 , 0.26338279, 0.27447377,
0.28556475, 0.29665574, 0.30774672, 0.31883771, 0.32715595,
0.33270144, 0.33824693, 0.35488341, 0.3604289 , 0.36597439,
0.37706538, 0.38815636, 0.40479284, 0.41033833])
# Time bins: The beguining and end are provided.
x = np.array([[7.97000557e+08, 7.97002557e+08],
[7.97004557e+08, 7.97006557e+08],
[7.97006557e+08, 7.97008557e+08],
[7.97008557e+08, 7.97010557e+08],
[7.97010557e+08, 7.97012557e+08],
[7.97012557e+08, 7.97014557e+08],
[7.97014557e+08, 7.97016557e+08],
[7.97016557e+08, 7.97018557e+08],
[7.97018557e+08, 7.97020557e+08],
[7.97020557e+08, 7.97021557e+08],
[7.97021557e+08, 7.97022557e+08],
[7.97022557e+08, 7.97023557e+08],
[7.97025557e+08, 7.97026557e+08],
[7.97026557e+08, 7.97027557e+08],
[7.97027557e+08, 7.97028557e+08],
[7.97029557e+08, 7.97030557e+08],
[7.97031557e+08, 7.97032557e+08],
[7.97034557e+08, 7.97035557e+08],
[7.97035557e+08, 7.97036557e+08]])
# Emission line evolution
y = np.array([6.68379, 6.80991, 6.67892, 6.70604, 6.59522, 6.69305, 6.78357,
6.7602 , 6.71054, 6.59051, 6.58941, 6.6197 , 6.6798 , 6.73628,
6.72427, 6.70338, 6.81985, 6.60144, 6.60003])
# Emission line evolution positive and negative errors
y_err = np.array([[0.01962, 0.01599, 0.0353 , 0.02163, 0.01522, 0.02066, 0.01784,
0.0408 , 0.09066, 0.01051, 0.00941, 0.0344 , 0.0998 , 0.02562,
0.02753, 0.03273, 0.08475, 0.02144, 0.02003],
[0.09961, 0.01009, 0.04271, 0.02659, 0.12467, 0.01667, 0.03643,
0.03073, 0.03159, 0.02861, 0.01781, 0.04638, 0.09535, 0.0397 ,
0.03344, 0.10163, 0.00015, 0.06801, 0.04635]])
In this observation, the Fe xxvi emission line energy exhibited remarkable Doppler shifts. In this example, we will utilize the fitting functions from the xraybinaryorb package to disentangle this intriguing behavior.
The best model (phisical interpretation + results) was achieved with the fit_disc_ps function, i.e, this emitting plasma is likely orbiting around the compact object, traveling in its orbit.
In [3]:
Copied!
plt.errorbar(phase_array,y, yerr =y_err,fmt="k", alpha=0.5)
plt.errorbar(phase_array,y,fmt="k")
plt.xlabel("Orbital phase")
plt.ylabel("Fe xxi energy evolution")
plt.errorbar(phase_array,y, yerr =y_err,fmt="k", alpha=0.5)
plt.errorbar(phase_array,y,fmt="k")
plt.xlabel("Orbital phase")
plt.ylabel("Fe xxi energy evolution")
Out[3]:
Text(0, 0.5, 'Fe xxi energy evolution')
DISC IN ORBIT¶
In [4]:
Copied!
lower_bound = [0.18,1.5,2.087,0.0, 0.0, 67.0,11.8,18.7, 1.33, 0.0,0.5,0.14,0.0, 0.0, 67.0,1e-60,6.63,0.0]
upper_bound = [0.25,1.7,2.09, 1e-05,1e-70,76.7, 12.2,22.77,1.45,0.99,1.0,0.16,0.46,360.0,76.7,1e-22,6.7,1e-70]
bound_disc= lower_bound, upper_bound
result, phase, dphase, predicted_data, r_squared = fit_disc_ps(x, y, y_err=y_err,
num_iterations=3, maxiter = 1000, swarmsize = 100,
units="keV",method_="extended",
extended_binsize=0.01,bound_list = bound_disc)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
lower_bound = [0.18,1.5,2.087,0.0, 0.0, 67.0,11.8,18.7, 1.33, 0.0,0.5,0.14,0.0, 0.0, 67.0,1e-60,6.63,0.0]
upper_bound = [0.25,1.7,2.09, 1e-05,1e-70,76.7, 12.2,22.77,1.45,0.99,1.0,0.16,0.46,360.0,76.7,1e-22,6.7,1e-70]
bound_disc= lower_bound, upper_bound
result, phase, dphase, predicted_data, r_squared = fit_disc_ps(x, y, y_err=y_err,
num_iterations=3, maxiter = 1000, swarmsize = 100,
units="keV",method_="extended",
extended_binsize=0.01,bound_list = bound_disc)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
Loaded bounds from the provided array: iphase 0.18 - 0.25 semimajor 1.5 - 1.7 orbitalperiod 2.087 - 2.09 eccentricity 0.0 - 1e-05 periapsis 0.0 - 1e-70 inclination 67.0 - 76.7 Rstar 11.8 - 12.2 Mstar1 18.7 - 22.77 Mstar2 1.33 - 1.45 iphase2 0.0 - 0.99 semimajor2 0.5 - 1.0 orbitalperiod2 0.14 - 0.16 eccentricity2 0.0 - 0.46 periapsis2 0.0 - 360.0 inclination2 67.0 - 76.7 Mass3 1e-60 - 1e-22 feature 6.63 - 6.7 wind_vel 0.0 - 1e-70 Stopping search: Swarm best objective change less than 1e-08 Stopping search: Swarm best objective change less than 1e-08 Stopping search: Swarm best objective change less than 1e-08
Out[4]:
| Name of the parameter | iphase | semimajor | orbitalperiod | eccentricity | periapsis | inclination | Rstar | Mstar1 | Mstar2 | iphase2 | semimajor2 | orbitalperiod2 | eccentricity2 | periapsis2 | inclination2 | Mass3 | feature | wind_vel |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Value | 0.182875 | 1.672746 | 2.088299 | 0.000004 | 6.688620e-71 | 68.926749 | 11.959089 | 20.052763 | 1.363479 | 0.990000 | 1.0 | 0.148633 | 0.460000 | 173.982326 | 75.687856 | 3.630221e-23 | 6.700000e+00 | 4.089993e-72 |
| Std | 0.021976 | 0.051049 | 0.000436 | 0.000003 | 2.586819e-71 | 1.744880 | 0.071862 | 1.167779 | 0.006301 | 0.465039 | 0.0 | 0.000472 | 0.000002 | 2.216911 | 3.188393 | 2.430893e-23 | 1.657071e-09 | 4.492871e-71 |
In [5]:
Copied!
result, phase, dphase, predicted_data, r_squared = fit_disc_ls(x, y, y_err=y_err,
units="keV",method_="discrete",
extended_binsize=0.01,
bound_list = bound_disc)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
result, phase, dphase, predicted_data, r_squared = fit_disc_ls(x, y, y_err=y_err,
units="keV",method_="discrete",
extended_binsize=0.01,
bound_list = bound_disc)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
Loaded bounds from the provided array: iphase 0.18 - 0.25 semimajor 1.5 - 1.7 orbitalperiod 2.087 - 2.09 eccentricity 0.0 - 1e-05 periapsis 0.0 - 1e-70 inclination 67.0 - 76.7 Rstar 11.8 - 12.2 Mstar1 18.7 - 22.77 Mstar2 1.33 - 1.45 iphase2 0.0 - 0.99 semimajor2 0.5 - 1.0 orbitalperiod2 0.14 - 0.16 eccentricity2 0.0 - 0.46 periapsis2 0.0 - 360.0 inclination2 67.0 - 76.7 Mass3 1e-60 - 1e-22 feature 6.63 - 6.7 wind_vel 0.0 - 1e-70
Out[5]:
| Name of the parameter | iphase | semimajor | orbitalperiod | eccentricity | periapsis | inclination | Rstar | Mstar1 | Mstar2 | iphase2 | semimajor2 | orbitalperiod2 | eccentricity2 | periapsis2 | inclination2 | Mass3 | feature | wind_vel |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Value | 0.250000 | 1.694740e+00 | 2.087018 | 2.259942e-07 | 5.000000e-71 | 7.198385e+01 | 1.220000e+01 | 2.032715e+01 | 1.447569e+00 | 0.050640 | 1.000000 | 0.151972 | 0.46000 | 180.583401 | 7.640269e+01 | 5.000000e-23 | 6.700000 | 5.000000e-71 |
| Std | 164.126605 | 1.854087e+06 | 24133.338396 | 4.939998e+03 | 8.027963e+00 | 1.482286e+08 | 1.077802e+07 | 3.601628e+07 | 1.032793e+06 | 0.161378 | 981028.811535 | 0.024955 | 0.71266 | 38.957554 | 1.562515e+08 | 0.000000e+00 | 21.285067 | 0.000000e+00 |
SIMPLE ORBIT¶
In [6]:
Copied!
result, phase, predicted_data, r_squared = fit_orbit_ps(x, y, y_err=y_err,
units="keV",method_="extended",
num_iterations=3, maxiter = 1000, swarmsize = 100,
extended_binsize=0.01, load_directly=False)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
result, phase, predicted_data, r_squared = fit_orbit_ps(x, y, y_err=y_err,
units="keV",method_="extended",
num_iterations=3, maxiter = 1000, swarmsize = 100,
extended_binsize=0.01, load_directly=False)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
2026-07-10 16:33:59.351 python[24526:7652270] +[IMKClient subclass]: chose IMKClient_Modern 2026-07-10 16:33:59.351 python[24526:7652270] +[IMKInputSession subclass]: chose IMKInputSession_Modern
Bounds after modification or user input: iphase 0.18 - 0.25 semimajor 0.5 - 1.0 orbitalperiod 0.1 - 0.25 eccentricity 0.0 - 0.3 periapsis 0.0 - 360.0 inclination 67.0 - 76.7 Rstar 11.8 - 12.2 Mstar1 18.7 - 22.77 Mstar2 1.33 - 1.45 wind_vel 0.0 - 0.99 feature 6.63 - 6.67 Stopping search: Swarm best objective change less than 1e-08 Stopping search: Swarm best objective change less than 1e-08 Stopping search: Swarm best objective change less than 1e-08
Out[6]:
| Name of the parameter | iphase | semimajor | orbitalperiod | eccentricity | periapsis | inclination | Rstar | Mstar1 | Mstar2 | wind_vel | feature |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Value | 1.800000e-01 | 1.0 | 0.150667 | 0.3 | 276.805627 | 74.435504 | 12.200000 | 18.700000 | 1.450000 | 0.000000 | 6.670000e+00 |
| Std | 2.775558e-17 | 0.0 | 0.001011 | 0.0 | 130.306809 | 2.432374 | 0.063113 | 0.000007 | 0.045652 | 0.444778 | 8.881784e-16 |
In [7]:
Copied!
result, phase, predicted_data, r_squared = fit_orbit_ls(x, y, y_err=y_err,
units="keV",method_="discrete",
extended_binsize=0.01, load_directly=False)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
result, phase, predicted_data, r_squared = fit_orbit_ls(x, y, y_err=y_err,
units="keV",method_="discrete",
extended_binsize=0.01, load_directly=False)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
Bounds after modification or user input: iphase 0.18 - 0.25 semimajor 0.5 - 1.0 orbitalperiod 0.1 - 0.25 eccentricity 0.0 - 0.3 periapsis 0.0 - 360.0 inclination 67.0 - 76.7 Rstar 11.8 - 12.2 Mstar1 18.7 - 22.77 Mstar2 1.33 - 1.45 wind_vel 0.0 - 0.99 feature 6.63 - 6.67
Out[7]:
| Name of the parameter | iphase | semimajor | orbitalperiod | eccentricity | periapsis | inclination | Rstar | Mstar1 | Mstar2 | wind_vel | feature |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Value | 0.180000 | 0.500000 | 0.105937 | 0.300000 | 292.260655 | 6.986850e+01 | 1.180464e+01 | 2.263201e+01 | 1.330000e+00 | 9.214084e-01 | 6.670000 |
| Std | 795.825826 | 781584.201408 | 0.290567 | 10.940606 | 286936.086377 | 1.645053e+08 | 1.462678e+07 | 2.571824e+07 | 1.163928e+06 | 1.401576e+06 | 1.974792 |
SIMPLE SPIRAL¶
In [8]:
Copied!
result, phase, predicted_data, r_squared = fit_spiral_ps(x, y, y_err=y_err,
num_iterations=3, maxiter = 1000, swarmsize = 100,
units="keV",method_="extended",
extended_binsize=0.01, load_directly=False)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
result, phase, predicted_data, r_squared = fit_spiral_ps(x, y, y_err=y_err,
num_iterations=3, maxiter = 1000, swarmsize = 100,
units="keV",method_="extended",
extended_binsize=0.01, load_directly=False)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
Bounds after modification or user input: iphase_spiral 0.0 - 1.0 semimajor_spiral 1.0 - 20.0 b -1.0 - -0.001 omega 0.0 - 0.0001 inclination_spiral 67.0 - 77.0 feature 6.63 - 6.7 Stopping search: Swarm best objective change less than 1e-08 Stopping search: Swarm best objective change less than 1e-08 Stopping search: Swarm best objective change less than 1e-08
Out[8]:
| Name of the parameter | iphase_spiral | semimajor_spiral | b | omega | inclination_spiral | feature |
|---|---|---|---|---|---|---|
| Value | 0.898103 | 15.423805 | -0.007317 | 0.000082 | 71.091282 | 6.696234 |
| Std | 0.423216 | 0.934388 | 0.002459 | 0.000003 | 2.521821 | 0.001618 |
In [14]:
Copied!
result, phase, predicted_data, r_squared = fit_spiral_ls(x, y, y_err=y_err,
units="keV",method_="discrete",
extended_binsize=0.01, load_directly=True)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
result, phase, predicted_data, r_squared = fit_spiral_ls(x, y, y_err=y_err,
units="keV",method_="discrete",
extended_binsize=0.01, load_directly=True)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
Loaded bounds from file: iphase_spiral 0.0 - 1.0 semimajor_spiral 1.0 - 20.0 b -1.0 - -0.001 omega 0.0 - 0.0001 inclination_spiral 67.0 - 77.0 feature 6.63 - 6.7
Out[14]:
| Name of the parameter | iphase_spiral | semimajor_spiral | b | omega | inclination_spiral | feature |
|---|---|---|---|---|---|---|
| Value | 1.208116e-24 | 1.455126e+01 | -0.006969 | 0.000081 | 7.227472e+01 | 6.696275 |
| Std | 6.678903e-02 | 2.476164e+06 | 0.038106 | 0.000004 | 3.050408e+07 | 0.016871 |
SPIRAL IN ORBIT¶
In [13]:
Copied!
result, phase,predicted_data, r_squared = fit_spiral_in_orbit_ps(x, y, y_err=y_err,
num_iterations=3, maxiter = 1000, swarmsize = 100,
units="keV",method_="extended",
extended_binsize=0.01, load_directly=False)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
result, phase,predicted_data, r_squared = fit_spiral_in_orbit_ps(x, y, y_err=y_err,
num_iterations=3, maxiter = 1000, swarmsize = 100,
units="keV",method_="extended",
extended_binsize=0.01, load_directly=False)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
Bounds after modification or user input: iphase_orbit 0.18 - 0.25 semimajor_orbit 1.56 - 1.6 orbitalperiod 2.08 - 2.1 eccentricity 0.0 - 1e-05 periapsis 0.0 - 1e-05 inclination 67.0 - 77.0 Rstar 11.8 - 12.2 Mstar1 18.7 - 22.77 Mstar2 1.33 - 1.45 iphase_spiral 0.0 - 1.0 semimajor_spiral 0.01 - 100.0 b -0.006969 - -0.0006969 omega 8.1e-05 - 8.2e-05 inclination_spiral 67.0 - 77.0 feature 6.63 - 6.7 Stopping search: Swarm best objective change less than 1e-08 Stopping search: Swarm best objective change less than 1e-08 Stopping search: Swarm best objective change less than 1e-08
Out[13]:
| Name of the parameter | iphase_orbit | semimajor_orbit | orbitalperiod | eccentricity | periapsis | inclination | Rstar | Mstar1 | Mstar2 | iphase_spiral | semimajor_spiral | b | omega | inclination_spiral | feature |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Value | 0.234229 | 1.598999 | 2.093790 | 0.000008 | 3.637154e-06 | 72.877011 | 12.026251 | 18.762555 | 1.447588 | 0.906157 | 1.230532 | -0.002198 | 8.197541e-05 | 68.340892 | 6.696535 |
| Std | 0.011636 | 0.006809 | 0.000701 | 0.000001 | 6.424740e-07 | 3.262074 | 0.022349 | 1.064923 | 0.039922 | 0.006704 | 0.010484 | 0.000522 | 4.272031e-07 | 2.882683 | 0.000161 |
In [15]:
Copied!
result, phase, predicted_data, r_squared = fit_spiral_in_orbit_ls(x, y, y_err=y_err,
units="keV",method_="discrete",
extended_binsize=0.01, load_directly=True)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
result, phase, predicted_data, r_squared = fit_spiral_in_orbit_ls(x, y, y_err=y_err,
units="keV",method_="discrete",
extended_binsize=0.01, load_directly=True)
plt.plot(phase_array, predicted_data,"o:")
plt.errorbar(phase_array, y, yerr=y_err)
plt.xlabel("Orbital phase")
plt.ylabel("Fe xvv Doppler shifts")
result
Loaded bounds from file: iphase_orbit 0.18 - 0.25 semimajor_orbit 1.56 - 1.6 orbitalperiod 2.08 - 2.1 eccentricity 0.0 - 1e-05 periapsis 0.0 - 1e-05 inclination 67.0 - 77.0 Rstar 11.8 - 12.2 Mstar1 18.7 - 22.77 Mstar2 1.33 - 1.45 iphase_spiral 0.0 - 1.0 semimajor_spiral 0.01 - 100.0 b -0.006969 - -0.0006969 omega 8.1e-05 - 8.2e-05 inclination_spiral 67.0 - 77.0 feature 6.63 - 6.7
Out[15]:
| Name of the parameter | iphase_orbit | semimajor_orbit | orbitalperiod | eccentricity | periapsis | inclination | Rstar | Mstar1 | Mstar2 | iphase_spiral | semimajor_spiral | b | omega | inclination_spiral | feature |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Value | 0.250000 | 1.600000e+00 | 2.080001 | 8.467492e-11 | 0.000010 | 7.699999e+01 | 1.206760e+01 | 1.870000e+01 | 1.450000 | 0.008802 | 1.250501 | -0.005635 | 0.000081 | 6.706118e+01 | 6.696298 |
| Std | 165.586271 | 1.741014e+06 | 32553.676233 | 6.741066e+03 | 0.870268 | 3.950366e+07 | 1.054803e+07 | 1.083641e+07 | 941411.577794 | 0.117017 | 809059.676331 | 0.170112 | 0.000006 | 7.562214e+07 | 30.842994 |
In [ ]:
Copied!
In [ ]:
Copied!