У меня есть фрейм данных, который содержит три столбца: Широта , Долгота и Переменная .В нем примерно 100 тысяч строк.Мне нужно построить колориметрическую сетку этих данных, которая показывает странные линии и области.
Я видел сообщения повсюду, в которых конвертировались одномерные массивы с помощью meshgrid, но в этом случае это не сработает, потому что это сами конкретные координаты.Я пытался отсортировать их по возрастанию lon и / или lat и / или оба.Затем я попытался сместить координаты, преобразовав их в факторы их общей длины, но тщетно.
Данные:
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()