नोट: यह एक पूरक उत्तर है जो @ Ingolifs के उत्कृष्ट उत्तर में कुछ विवरण जोड़ रहा है ।
पर मोटे तौर पर 2006-Apr-28 08:30 UTC
कैसिनी टाइटन से दोनों 1,800,000 किमी और एक ही समय में एपिमेथेउस से 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()