2015-11-07 5 views
4

Я использую pyEphem, чтобы получить следующую через проход МКС от моего местоположения, но результаты, которые я получаю обратно не соответствует тому, что я вижу на небе, выше, используя те же координатыpyephem не next_pass соответствия неба-выше

Я, вероятно, сделать глупую ошибку, но я не могу понять его

Мой код ниже возвращает результаты: время Взлет: 2017/5/25 20:34:39 азимут: 193: 28: 04,0

В то время как ближайший небесный перевал составляет около 3 часов, время нарастания: 23:09:40

http://www.heavens-above.com/passdetails.aspx?&satid=25544&mjd=57898.9270155034&type=V

from datetime import datetime 
import ephem 
import pytz 

line1 = 'ISS (ZARYA)'  
line2 = '1 25544U 98067A 17145.52800275 .00016717 00000-0 10270-3 0 9015' 
line3 = '2 25544 51.6372 151.2656 0005033 192.5139 167.5889 15.53913304 18224' 

tle = [line1, line2, line3] 
iss = ephem.readtle(tle[0], tle[1], tle[2]) 

longitude = -6.2282 
latitude = 53.2842 
altitude = 20 

site = ephem.Observer() 
site.lat = str(latitude) 
site.lon = str(longitude) 
site.elevation = 20 

current_time = datetime(2017, 5, 25, 12, 0, 0, tzinfo=pytz.utc) 
site.date = current_time 

info = site.next_pass(iss) 
print("Rise time: %s azimuth: %s" % (info[0], info[1])) 
+0

Чтобы другие люди могли запускать этот код, вы должны удалить вызов 'utcnow()' и вместо этого указать точную дату и время. В противном случае кто-то, кто запускает скрипт, всегда будет видеть другой ответ, чем результат, который вы поделили в своем ответе, потому что они будут запускать его на другой день, чем вы. –

ответ

2

Обновленный ответ следующий редактируют вопрос:

Увы, Heavens Above теперь дает ошибку сервера, когда я по ссылке в вашем вопросе. Поэтому я посетил сайт заново, ввел координаты из вашего скрипта и получил некоторые прогнозы. Для того, чтобы не потерять их, вот быстрый скриншот:

enter image description here

Когда я вставляю в свежем ВЭ для МКС в сценарий и настроить current_time, я могу получить ответ, что довольно близко к их. Скрипт выглядит следующим образом:

from datetime import datetime 
import ephem 
import pytz 

line1, line2, line3 = """\ 
ISS (ZARYA)    
1 25544U 98067A 17198.89938657 .00000988 00000-0 22167-4 0 9998 
2 25544 51.6416 245.2318 0005849 47.2823 302.7554 15.54170925 66526 
""".splitlines() 

tle = [line1, line2, line3] 
iss = ephem.readtle(tle[0], tle[1], tle[2]) 

longitude = -6.2282 
latitude = 53.2842 
altitude = 20 

site = ephem.Observer() 
site.lat = str(latitude) 
site.lon = str(longitude) 
site.elevation = 20 

current_time = datetime(2017, 7, 21, 1, 0, 0, tzinfo=pytz.utc) 
site.date = current_time 

info = site.next_pass(iss) 
for item in info: 
    print(item) 

И выход:

2017/7/21 01:32:01 
263:02:11.2 
2017/7/21 01:37:29 
66:12:31.4 
2017/7/21 01:42:58 
93:15:48.0 

Какой же проход, как вы можете видеть на скриншоте, выраженное в всемирному времени вместо часового пояса UTC + 1 для Дублина, что Heavens Above использует - поэтому самое высокое время в 1:37, данное PyEphem, становится 2:37 утра в местном часовом поясе Дублина.

Я проверил еще один проход или два, и все они, похоже, согласны достаточно близко - может ли часовой пояс стать источником путаницы?

Оригинальный ответ:

Вы указываете долготу 53.2842 ° в.д. и широты 6.2282 ° южной широты, что на карте мира, кажется, где-то в западной части Индийского океана. Возможно, вместо этого вы указали отрицательный номер -53,2842 °, который вместо этого разместил бы место в Бразилии?

+0

Извините, что я идиот, он должен был быть широтой: 53,2842 °, долгота: -6,2282, что ставит меня в Дублин, Ирландия. Когда я меняю его, я получаю результат: Время нарастания: 2015/11/14 02:07:40 азимут: 157: 24: 58.0, который все еще находится в часе езды от закрытого перевала небес (видимого и невидимого) 14 ноября \t - \t \t 3:43:02 10 ° \t \t SSW 3:45:18 \t 18 ° \t \t SSE 3:47:38 \t 10 ° \t \t E видно, я буду обновлять этот вопрос, в том числе ВЭ – kujosHeist