Колючки ветра отображаются неправильно - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь нанести на карту данные о ветре в виде ветровых зубцов. Я использую базовую карту и погодный API, поэтому у меня есть списки моих долгот и широт, а также списки моих компонентов u и v данных ветра. Я протестировал, чтобы убедиться, что получаю все правильные данные о долготе, широте и ветре, поэтому проблема не в моих данных. Я использую функцию map.barbs () для построения своих данных. Когда я запускаю свою программу, на моей карте не отображаются зазубрины ветра. Я не уверен, почему это происходит, поэтому приветствую любую помощь.

import matplotlib.pyplot as plt
import numpy as np
import requests
from mpl_toolkits.basemap import Basemap

lon = [-76.5152, -76.7311, -76.3055, -76.7277, -75.4714, -75.1652, -77.0011, -75.6624, -78.3947, -77.8600, -78.7583, -79.9959, -80.0851]  
lat = [40.3295, 40.1998, 40.0379, 39.9626, 40.6023, 39.9526, 41.2412, 41.4090, 40.5187, 40.7934, 41.1210, 40.4406, 42.1292]  
u_comp = []
v_comp = []

key = '4a7a419e4e16e2629a4cedc37cbf7e50'
url = 'https://api.openweathermap.org/data/2.5/weather'

for i in range(0,len(lon)):
   params = {'lat': lat[i], 'lon': lon[i], 'appid': key, 'units': 'imperial'}
   response = requests.get(url, params = params)
   weather = response.json()
   windspeed = round(weather['wind']['speed'])
   winddirection = weather['wind']['deg']
   u_comp.append(-(windspeed)*np.sin(((np.pi)/180)*winddirection))
   v_comp.append(-(windspeed)*np.cos(((np.pi)/180)*winddirection))
   
map = Basemap(llcrnrlon=-80.5, llcrnrlat=39.8, urcrnrlon=-74.7, urcrnrlat=42.3,resolution='i',
              lat_0 = 40., lon_0 = -80)
map.drawmapboundary(fill_color='#A6CAE0')
map.drawcounties(zorder = 20)
map.drawstates()
map.fillcontinents(color='#e6b800',lake_color='#A6CAE0')


for i in range(0, len(lon)):
    x,y = map(lon[i], lat[i])
    map.barbs(x, y, u_comp[i], v_comp[i], length = 5, pivot = 'middle')

plt.show()
...