Я хотел построить линии тока с помощью NOAA из композита (2,5*2,5 долготы/широты).
Я пытался нарисовать их с помощью базовой карты (коды прилагаются), но столкнулся с этой ошибкой: 'y' должно быть строго увеличивается.
После этого я решил нарисовать его с помощью cartopy (Коды прилагаются) с помощью (crs=ccrs.PlateCarree(central_longitude=180). Линии тока в диапазоне От 160 градусов востока до 160 градусов запада не были нарисованы.
Конечно, используя эти данные о ветре, я нарисовал вектор ветра на базовой карте, используя этот код:
, но я получил ошибку при рисовании линии тока.
Я был бы очень признателен, если бы кто-нибудь помог мне решить эту проблему (с помощью базовой карты или картопии).
Мои коды пытаются решить проблему:
Я хотел построить линии тока с помощью NOAA из композита (2,5*2,5 долготы/широты). Я пытался нарисовать их с помощью базовой карты (коды прилагаются), но столкнулся с этой ошибкой: 'y' должно быть строго увеличивается. После этого я решил нарисовать его с помощью cartopy (Коды прилагаются) с помощью (crs=ccrs.PlateCarree(central_longitude=180). Линии тока в диапазоне От 160 градусов востока до 160 градусов запада не были нарисованы. Конечно, используя эти данные о ветре, я нарисовал вектор ветра на базовой карте, используя этот код: [code]plt.quiver(lon[::5],lat[::5],U4[0,::5,::5],V4[0,::5,::5],scale_units='xy',scale=0.25)[/code], но я получил ошибку при рисовании линии тока. Я был бы очень признателен, если бы кто-нибудь помог мне решить эту проблему (с помощью базовой карты или картопии). Мои коды пытаются решить проблему: [code]from netCDF4 import Dataset as NetCDFFile import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.basemap import Basemap
fig = plt.figure(figsize=(12,9)) ax = fig.add_subplot(111) nc2 = NetCDFFile('E:/cycle-of-Mjo/NOAA/nc/u850b1.nc') nc4 = NetCDFFile('E:/cycle-of-Mjo/NOAA/nc/v850b1.nc') lat = nc2.variables['lat'][:] lon = nc2.variables['lon'][:] U4 = nc2.variables['uwnd'][:] V4 = nc4.variables['vwnd'][:] map = Basemap(projection='cyl', lon_0 =0 , lat_0 =-20 , llcrnrlon=0.,llcrnrlat=-20.,urcrnrlon=360.,urcrnrlat=61.,resolution='i' ,suppress_ticks=False) plt.tick_params(labelleft=False, labelbottom=False , axis='both',which='major') map.drawcoastlines() parallels = np.arange(-20.,61.,20.) meridians = np.arange(0,360.,50.) map.drawparallels(lat_ticks,labels=[0,0,0,0],fontsize=10 , dashes=(0,1), fontweight='bold') map.drawmeridians(lon_ticks,labels=[0,0,0,0],fontsize=10 , dashes=(0,1), fontweight='bold') lons,lats= np.meshgrid(lon,lat) x,y = map(lons,lats) map.streamplot(x,y,U1[0, :, :],V1[0, :, :],density = 2) [/code] [code]**Error:'y' must be strictly increasing** [/code] С Cartopy: [code]from netCDF4 import Dataset as NetCDFFile import numpy as np import cartopy.crs as ccrs import matplotlib.pyplot as plt import cartopy.mpl.ticker as cticker from cartopy.mpl.ticker import LatitudeFormatter, LongitudeFormatter from cartopy.mpl.gridliner import LongitudeFormatter