Генерация данных pcolormesh по неправильной форме - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь сгенерировать тепловую карту (буквально, так как я пытаюсь отобразить данные о температуре) поверх карты Калифорнии. Я использую базовую карту, у меня есть метод, который работает в моих тестах небольшого масштаба, за исключением того, что я создаю прямоугольные наборы координат широта / долгота, и когда я масштабируюсь до целого состояния, у меня будут проблемы, потому что состояние не прямоугольник.

Чтобы уточнить, проблема здесь в том, что у меня есть данные с нерегулярно расположенных измерительных станций, поэтому мне нужно создать сетку данных для фактической подачи в pcolormesh. Если я создаю сетку из равномерно распределенных точек, используя np.meshgrid на двух линейных пространствах, я получаю прямоугольное пространство, пересекающее границы Калифорнии. Вы можете обмануть pcolormesh, передав ему набор точек, которые находятся внутри границы, но если они расположены неправильно (значения x и y строго растут в обоих направлениях), pcolormesh запутывается и не знает, как заполнить расстояние между точками.

Например, я нашел коллекцию точек lon / lat в Калифорнии

#collection of lon/lat points
lon = np.array(sample_lat_long['0'])
lat = np.array(sample_lat_long['1'])

#arranged into the sort of 2d shape pcolormesh wants
lon = lon.reshape(30,30)
lat = lat.reshape(30,30)

#I attach the appropriate estimated temperature with this function
#for every point
z = np.zeros((30,30))
for i in range(0,30):
    for j in range(0,30):
        z[i][j] = near_temp(lon[i][j],lat[i][j])

#I know that pcolormesh will match up the z with the correct lon/lats
#This draws the map
fig = plt.figure(figsize=(10,10))
map = Basemap(projection='lcc', lat_0=38.3004, lon_0=-119.4179, width=1000000, height=1000000)


map.drawstates()
map.pcolormesh(lon, lat, z, latlon=True, cmap='RdBu_r')
plt.clim(dec_31[1:].min(),dec_31[1:].max())
plt.colorbar()

Но результаты странные, так как pcolormesh не может правильно соединить точки. Есть ли разумный способ придать базовой карте равномерно расположенные / хорошо организованные точки внутри неправильной формы?

...