নোট: এই @ Ingolifs 'থেকে কিছু কিছু বিবরণ যোগ করার সময় একটি সম্পূরক উত্তর চমৎকার উত্তর ।
এ মোটামুটিভাবে 2006-Apr-28 08:30 UTC
কাসিনিজের টাইটান থেকে উভয় 1.800.000 কিমি এবং একই সময়ে Epimetheus থেকে 667.000 কিলোমিটার।
আমি JPL এর ব্যবহার দিগন্ত এবং সংরক্ষিত শনি শরীরে অবস্থানের স্থানাঙ্ক কেন্দ্রিক প্রতি 5 মিনিটে তারপর চক্রান্ত করার জন্য নিচের পাইথন স্ক্রিপ্ট দৌড়ে। এইভাবে কীভাবে রিংয়ের বিমানটি পাওয়া যায় সে সম্পর্কে আমি নিশ্চিত নই।
class Body(object):
def __init__(self, name):
self.name = name
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fnames = ['Titan photo Cassini horizons_results.txt',
'Titan photo Titan horizons_results.txt',
'Titan photo Epimetheus horizons_results.txt' ]
names = ['Cassini', 'Titan', 'Epimetheus']
bodies = []
for name, fname in zip(names, fnames):
with open(fname, 'r') as infile:
lines = infile.read().splitlines()
iSOE = [i for i, line in enumerate(lines) if "$$SOE" in line][0]
iEOE = [i for i, line in enumerate(lines) if "$$EOE" in line][0]
print iSOE, iEOE, lines[iSOE], lines[iEOE]
lines = zip(*[line.split(',') for line in lines[iSOE+1:iEOE]])
JD = np.array([float(x) for x in lines[0]])
pos = np.array([[float(x) for x in lines[i]] for i in 2, 3, 4])
vel = np.array([[float(x) for x in lines[i]] for i in 5, 6, 7])
body = Body(name)
bodies.append(body)
body.JD = JD
body.pos = pos
body.vel = vel
Cassini, Titan, Epimetheus = bodies
r_Titan = np.sqrt(((Cassini.pos - Titan.pos )**2).sum(axis=0))
r_Epimetheus = np.sqrt(((Cassini.pos - Epimetheus.pos)**2).sum(axis=0))
hours = 24 * (JD - JD[0])
r_Titan_target = 1.8E+06
r_Epimetheus_target = 6.67E+05
hours_Titan = hours[np.argmax(r_Titan < r_Titan_target)]
hours_Epimetheus = hours[np.argmax(r_Epimetheus[30:] > r_Epimetheus_target)+30]
print hours_Titan, hours_Epimetheus
if True:
fig = plt.figure()
plt.subplot(2, 1, 1)
plt.plot(hours, r_Titan)
plt.plot(hours, 1.8E+06 * np.ones_like(r_Titan), '-k')
plt.ylabel('Cassini-Titan distance (km)', fontsize=16)
plt.subplot(2, 1, 2)
plt.plot(hours, r_Epimetheus)
plt.plot(hours, 6.67E+05 * np.ones_like(r_Epimetheus), '-k')
plt.ylabel('Cassini-Epimetheus distance (km)', fontsize=16)
plt.xlabel('2006-Apr-28 hours', fontsize=16)
plt.show()