Мой код для отслеживания урагана не работает - PullRequest
0 голосов
/ 26 октября 2019

Мне нужно использовать текстовый файл, чтобы отследить ураган и нарисовать его с черепахой на питоне. Это код, который у меня есть, но я не знаю, почему он не работает. Кто-нибудь может помочь?

def irma():
(t, wn, map_bg_img) = irma_setup()
text = open("irma.csv", "r")
lines = text.readlines()
lines = lines[1:]
t.penup()
category = 0
for line in lines:
    line = line.strip()
    line = line.split(",")
    lat = float(line[2])
    lon = float(line[3])
    wind = float(line[4])
    if wind < 74:
        t.color("white")
        t.pensize(5)
    elif 74 <= wind <= 95:
        t.color("blue")
        t.pensize(10)
        category = 1
    elif 96 <= wind <= 110:
        t.color("green")
        t.pensize(15)
        category = 2
    elif 111 <= wind <= 129:
        t.color("yellow")
        t.pensize(20)
        category = 3
    elif 130 <= wind <= 156:
        t.color("orange")
        t.pensize(25)
        category = 4
    else:
        t.color("red")
        t.pensize(30)
        category = 5
    t.goto(lat, lon)
    t.pendown()
    t.write(category)

if __name__ == "__main__":
    irma()

1 Ответ

0 голосов
/ 28 октября 2019

Конкретная проблема с вашим кодом:

Ваш отступ является катастрофой и не позволяет вашему коду работать правильно.

Вы изменили отображение широты и долготы на X & Y. Долгота длинный путь вокруг Земли, так что это координата X;широта - это Y.

Когда вы пишете номер категории, вы делаете это тем же цветом, что вы только что нарисовали жирную линию, поэтому вы не можете видеть его.

Это мойпереработайте ваш код, чтобы устранить большинство из этих проблем:

def irma():
    text = open("irma.csv")
    lines = text.readlines()

    category = 0

    t, wn, map_bg_img = irma_setup()
    t.penup()

    for line in lines[1:]:
        line = line.strip().split(",")
        lat = float(line[2])
        lon = float(line[3])
        wind = float(line[4])

        if wind < 74:
            t.color("white")
            t.pensize(5)
        elif 74 <= wind <= 95:
            t.color("blue")
            t.pensize(10)
            category = 1
        elif 96 <= wind <= 110:
            t.color("green")
            t.pensize(15)
            category = 2
        elif 111 <= wind <= 129:
            t.color("yellow")
            t.pensize(20)
            category = 3
        elif 130 <= wind <= 156:
            t.color("orange")
            t.pensize(25)
            category = 4
        else:
            t.color("red")
            t.pensize(30)
            category = 5

        t.goto(lon, lat)
        t.pendown()
        t.color("black")
        t.write(category)

    wn.mainloop()

if __name__ == "__main__":

    irma()

Маркировка категории по-прежнему не работает должным образом, но я оставлю это вам исправить.

...