У меня есть фрейм данных, который содержит три столбца: Широта, Долгота и Переменная. В нем примерно 100 тысяч строк. Мне нужно построить цветную сетку этих данных, которая показывает странные линии и области.
Я видел повсюду сообщения о преобразовании одномерных массивов широты и долготы с использованием сетки, но в этом случае это не сработает, потому что это сами конкретные координаты. Я попытался отсортировать их по восходящей долготе и / или широте и / или обоим. Затем я попытался сместить координаты, преобразовав их в множители их общей длины, но тщетно.
Данные:
Longitude = [-10, -40, 34, 12, 67, ...] # 138627 elements
Latitude = [ 23, -89, 67, -25, 92, ...] # same
Variable = [ 1, 2, 3, 4, 5, ...] # same
Код:
import cartopy, glob, warnings, os, matplotlib.pyplot as plt
import numpy as np, cartopy.crs as ccrs
from netCDF4 import Dataset as netcdf_dataset
from cartopy import config
from mpl_toolkits.basemap import Basemap
warnings.simplefilter('ignore')
# CARTOPY
ax = plt.axes(projection=ccrs.PlateCarree())
plt.pcolormesh(Longitude, Latitude, Variable)
ax.coastlines()
plt.show()
# BASEMAP
m = Basemap(projection='cyl', llcrnrlat=-90, llcrnrlon=-180, rcrnrlat=90, urcrnrlon=180)
#TRY 1
new_coor = sorted([(i,j) for i,j in zip(Longitude, Latitude)], key=lambda x: x[0])
shape = (3,46209) #len(Latitude) = 138627
Longitude = np.asarray([i[0] for i in new_coor]).reshape(shape)
Latitude = np.asarray([i[1] for i in new_coor]).reshape(shape)
xi, yi = m(Longitude, Latitude)
cs = m.pcolor(xi, yi, np.squeeze(Variable)) #tried *pcolormesh* also
# tried *m.shifting()* and *lat_lon = True* also
m.drawcoastlines()
m.drawcountries()
cbar = m.colorbar(cs, location='bottom', pad="10%")
plt.show()
pcolormesh
, или выполнить триангуляцию с помощьюtripcolor
. Чтобы сопоставить данные, просмотрите docs.scipy. org / doc / scipy / reference / generated / или ссылки в нем. - person Jody Klymak   schedule 06.05.2019