Matplotlib Wind Barb: проблемы с графикой - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть код ниже, я в основном пытаюсь нанести зубцы ветра на зондирующий сюжет

import urllib
import matplotlib.pyplot as plt
%matplotlib inline

def read_sounding(url):
    pressure=[]
    altitude=[]
    temp    =[]
    lines  = urllib.request.urlopen(url).readlines()
    for line in lines[10:76]:
        entries = line.decode("utf-8").split(" ")
        columns=[]
        for entry in entries:
            if len(entry) > 1: columns.append(entry)
        if len(columns) > 2: # otherwise data not available
            pressure.append(float(columns[0]))
            altitude.append(float(columns[1]))
            temp.append(float(columns[2]))
    return(pressure,altitude,temp)
def read_wind(url):
    wind = []
    lines  = urllib.request.urlopen(url).readlines()
    for line in lines[10:76]:
        entries = line.decode("utf-8").split(" ")
        columns=[]
        for entry in entries:
            if len(entry) > 1: columns.append(entry)
        if len(columns) > 2: # otherwise data not available
            wind.append(float(columns[7]))
    return(wind)
def location(url):
    lines  = urllib.request.urlopen(url).readlines()
    lon=lines[81] # longitude
    lat=lines[80] # latitude
    lon=float(lon.decode("utf-8").split(":")[1])
    lat=float(lat.decode("utf-8").split(":")[1])
    return(lat,lon)   

if __name__ == '__main__':
    url    = 'http://weather.uwyo.edu/cgi-bin/sounding?region=naconf&TYPE=TEXT%3ALIST&YEAR=2005&MONTH=07&FROM=0812&TO=0812&STNM=72469'
    p,h,t=read_sounding(url)
    lat,lon=location(url)
    W= read_wind(url)
    plt.plot(t,h,'o--')
    #print(W)
    plt.barbs(W)
    plt.xlabel("temperature [C]")
    plt.ylabel("altitude [m]")
    plt.title('lat='+str(lat)+' lon='+str(lon))

ошибка, которую я получаю, находится в строке plt.barb, и это ошибка, которая говорит: «выскочить из пустого списка», хотя при печати возвращаемого значения у меня есть список с числами в нем. Я могу создать точный график для температуры, но мне нужно добавить к нему ветровые зазубрины. Ссылка в главной функции содержит все данные в столбцах. Точная ошибка: «Ошибка индекса: выскочить из пустого списка»

...