Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 9, 2015 18:33:33

Valera_idi_syuda
Зарегистрирован: 2015-10-09
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с построением траектории МКС для скина Rainmeter с помощью Python

Так это выглядит:


Места двух соседних “разрывов”:
1)

[Meter_top_3482]
Meter=Roundline
Y=[b]270.4108674558287[/b]
X=[b]548.0192777363758[/b]
W=2
H=2
StartAngle=1
RotationAngle=6.283
LineLength=2
LineColor=0,0,0,255
Solid=1
AntiAlias=1

[Meter_top_3483]
Meter=Roundline
Y=[b]259.46175708207727[/b]
X=[b]556.5435012595765[/b]
W=2
H=2
StartAngle=1
RotationAngle=6.283
LineLength=2
LineColor=0,0,0,255
Solid=1
AntiAlias=1

2)
[Meter_top_3556]
Meter=Roundline
Y=[b]246.55801856056934[/b]
X=[b]567.1231107456508[/b]
W=2
H=2
StartAngle=1
RotationAngle=6.283
LineLength=2
LineColor=0,0,0,255
Solid=1
AntiAlias=1

[Meter_top_3557]
Meter=Roundline
Y=[b]235.92037825990553[/b]
X=[b]576.4075149317131[/b]
W=2
H=2
StartAngle=1
RotationAngle=6.283
LineLength=2
LineColor=0,0,0,255
Solid=1
AntiAlias=1
Значит проблема не в Rainmeter.

from bs4 import BeautifulSoup
from urllib.request import urlopen
import ephem
import datetime
from datetime import datetime
import re
import math
html_doc = urlopen('http://www.celestrak.com/NORAD/elements/stations.txt').read()
soup = BeautifulSoup(html_doc)
heading = soup.p
print(heading.contents[0][0:167])
f = open('c:\iss.txt', 'w')
f.write(heading.contents[0][0:169])
f.close()
f = open('c:\iss.txt')
name = f.readline().rstrip(' \n')  # имя
f.readline()
line1 = re.sub(r'\n', '',f.readline()) # TLE 1
f.readline()
line2 = re.sub(r'\n', '',f.readline()) # TLE 2
f.close()
tle_rec = ephem.readtle(name, line1, line2)
Y = int(datetime.utcnow().strftime('%Y'))
m = int(datetime.utcnow().strftime('%m'))
d = int(datetime.utcnow().strftime('%d'))
HH = int(datetime.utcnow().strftime('%H'))
MM = int(datetime.utcnow().strftime('%M'))
SS = int(datetime.utcnow().strftime('%S'))
h = 0
mi = 0
s = 0
nummet = 1
while h != 1 or mi != 36 or s != 12:
    h2 = HH + h
    m2 = MM + mi
    s2 = SS + s
    if s2 > 59:
        ostatok_sec = s2 % 60
        m2 += 1
        s2 = ostatok_sec
    if s2 == 59:
        m2 += 1
        s2 = 0
    if m2 > 59:
        ostatok_m = m2 % 60
        h2 += 1
        m2 = ostatok_m
    if m2 == 59:
        h2 += 1
        m2 = 0        
    
    if s == 59:
        mi += 1
        s = 0
    if mi == 59:
        h += 1
        mi = 0
    else:
        pass
    
    tle_rec.compute(datetime(Y, m, d, h2, m2, s2))
    long = math.degrees(tle_rec.sublong)
    lat = math.degrees(tle_rec.sublat)
    Xx = (564 + (long * 3.529) + 32) # 564 - нулевой мередиан
    Yy = (295 + (lat * -3.55) + 23) # 295 - нулевая параллель
   
    if long >= -180 and long <= -168:
        Xx = (1271 + (564 + (long * -3.529) * -1) + 32)
    else:
        Xx = (564 + (long * 3.529) + 32)
    ftw = open('c:\pr.inc', 'a')
    ftw.write('[Meter_top_'+ str(nummet) +']\nMeter=Roundline\nY=' + str(Yy) + '\nX=' + str(Xx) + '\nW=2\nH=2\n'
              'StartAngle=1\nRotationAngle=6.283\nLineLength=2\nLineColor=0,0,0,255\nSolid=1\nAntiAlias=1\n\n')
    ftw.close()
    nummet += 1
    s += 1
ftw.close()

В чем тут дело? Спасибо

Отредактировано Valera_idi_syuda (Окт. 9, 2015 22:21:01)

Офлайн

#2 Окт. 9, 2015 20:45:43

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Проблемы с построением траектории МКС для скина Rainmeter с помощью Python

Для начала нужно что-то сделать с зелёными “long”.

Офлайн

#3 Окт. 9, 2015 21:55:26

Valera_idi_syuda
Зарегистрирован: 2015-10-09
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с построением траектории МКС для скина Rainmeter с помощью Python

Shaman
Для начала нужно что-то сделать с зелёными “long”.
Да нет, у меня с long все нормально.
Я нашел проблему: пропускается минута времени.
Выдержка из лога:
Координаты на сетке Rainmeter: 359.0258876492253, 301.6964503809046
Координаты на карте: -67.15049939098178, 4.592549188477581
Время UTC (ч, м, с): 18, 58, 58

Координаты на сетке Rainmeter: 367.15075140928275, 290.35882454645434
Координаты на карте: -64.84818605574306, 7.786246606632578
Время UTC (ч, м, с): 19, 0, 1

В части, где считает время, всё 59 нужно заменить на 60.
Теперь всё норм.

Спасибо.

Отредактировано Valera_idi_syuda (Окт. 9, 2015 22:08:53)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version