matplotlib.basemap-地球科学 - 价值eRror:操作数不能与形状(12529,15661)(1252



似乎无法弄清楚为什么我的图形不会正确出现。我正在尝试使用NetCDF4和mpl_toolkits.basemap在地图投影上绘制深度。我尝试了几个预测,但没有奏效。以下是我正在使用的代码:

from netCDF4 import Dataset
from mpl_toolkits.basemap import Basemap
import mpl_toolkits as mplt
import matplotlib.pyplot as plt
import numpy as np
f = Dataset("/geosci/path2data/depth_data.nc")
# extract and label column
lats = f.variables['lat'][:]  # extract/copy the latitude data
lons = f.variables['lon'][:]  # extract/copy the longitude data
depth = f.variables['Band1'][:]
lon_0 = lons.mean()
lat_0 = lats.mean()

#create map projection
m = Basemap(projection = 'stere', width = 5*10**6, height = 35*10**5, resolution = 'l', lat_ts = 40, lat_0 = lat_0, lon_0 = lon_0)
# Plot of global temperature on our random day
fig = plt.figure()
fig.subplots_adjust(left=0., right=1., bottom=0., top=0.9)
# Make the plot continuous
depth_cyclic, lons_cyclic = mplt.basemap.addcyclic(depth, lons) 
# compute map projection coordinates for lat/lon grid
# Create 2D lat/lon arrays for Basemap
lon2d, lat2d = np.meshgrid(lons_cyclic, lats)
# Transforms lat/lon into plotting coordinates for projection
x, y = m(lon2d, lat2d)
# Plot of air temperature with 11 contour intervals
cs = m.contourf(lon2d, lat2d, depth, 11, cmap=plt.cm.Spectral_r)
cbar = plt.colorbar(cs, orientation='horizontal', shrink=0.5)
m.plot(x,y)
plt.show()

这是我回报的错误。仍在教自己编码,需要一点帮助。

ValueError                                Traceback (most recent call last)
<ipython-input-7-7b81b2da3866> in <module>()
     18 
     19 # Plot of air temperature with 11 contour intervals
---> 20 cs = m.contourf(lon2d, lat2d, depth, 11, cmap=plt.cm.Spectral_r)
     21 cbar = plt.colorbar(cs, orientation='horizontal', shrink=0.5)
     22 m.plot(x,y)
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mpl_toolkits/basemap/__init__.pyc
in with_transform(self, x, y, data, *args, **kwargs)
    519             # convert lat/lon coords to map projection coords.
    520             x, y = self(x,y)
--> 521         return plotfunc(self,x,y,data,*args,**kwargs)
    522     return with_transform
    523 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mpl_toolkits/basemap/__init__.pyc
in contourf(self, x, y, data, *args, **kwargs)
   3669                 data = ma.asarray(data)
   3670                 # combine with data mask.
-> 3671                 mask = np.logical_or(ma.getmaskarray(data),xymask)
   3672                 data = ma.masked_array(data,mask=mask)
   3673                 CS = ax.contourf(x,y,data,*args,**kwargs)
ValueError: operands could not be broadcast together with shapes (12529,15661) (12529,15662)

我忘记了分配给其他信息的连续深度。

cs = m.contourf(x,y,depth_cyclic,11,cmap = plt.cm.spectral_r)

相关内容

  • 没有找到相关文章

最新更新