我有一个全球2.5度的数据字段(144,72)绘制在一个底图。我以为一切正常,直到我注意到地图在东西方向不是连续的。图片发布在
请注意,英国东部的截止线不会出现在底图的左侧。我肯定我在做傻事。我不确定是数据读取问题还是底图问题。谢谢。你知道吗
precipfile = "/Users/bolvin/oc.197901.sg"
num_lon = 144
num_lat = 72
fileobj = open(precipfile, mode='rb')
data = np.fromfile (fileobj, dtype ='f')
data.byteswap(True)
datat = np.reshape(data, (num_lon, num_lat), order = 'FORTRAN')
datamasked = np.ma.masked_where(datat < 0.0, datat)
my_cmap = matplotlib.colors.LinearSegmentedColormap('my_colormap',uneven_rgb)
my_cmap.set_bad('k', 0.8)
plt.figure(figsize = (20,10))
mapproj = Basemap(projection = 'cyl', llcrnrlat=-90.0, llcrnrlon=0.0, urcrnrlat=90.0, urcrnrlon=360.0)
mapproj.drawcoastlines()
mapproj.drawcountries()
mapproj.drawparallels(np.array([-90.0,-60.0,-30.0, 0.0, 30.0, 60.0, 90.0]), labels=[0,0,0,0])
mapproj.drawmeridians(np.array([0.0, 90.0, 180.0, 270.0, 360.0]), labels=[0,0,0,0])
myplot = plt.imshow(datamasked.T, interpolation = 'nearest', cmap = my_cmap, \
norm = matplotlib.colors.Normalize(vmin = 0.0, vmax = 20.0, clip = False), \
extent = (0.0, 360.0, -90.0, 90.0))
我回答了我自己的问题。显然,默认的分辨率='c'完全抹杀了英国东部。把分辨率提高到一个新的水平,“l”起作用。你知道吗
相关问题 更多 >
编程相关推荐