更容易从数据中提取点数?

时间:2016-10-11 13:27:40

标签: python netcdf4

我正在分析天气模型的输出,使用python模块netCDF4并使用mpl_toolkits底图制作图像。

我制作了一些气压等高线图,非常简单。现在我想为风添加倒钩,最后得到a plot with only wind over the seas。在一些摆弄之后,我发现底图函数fillcontinents()实际上覆盖了这些风倒钩,即使稍后调用倒钩函数。因此,删除fillcontinents()函数会给all wind barbs as wanted

有没有办法让人满为患的大陆,但仍有我所有的倒钩?

我的代码看起来有点像这样(我遗漏了一些图形参数,它们对我的问题并不重要):

from netCDF4 import Dataset
from mpl_toolkits.basemap import Basemap
import numpy as np

file = 'W:/projects/wrfout_d01_2013-10-27_120000'
data = Dataset(file)

# Load grid
longrid = data.variables['XLONG'][:].squeeze() # Removes time dimension
latgrid = data.variables['XLAT'][:].squeeze()

# Load surface pressure
p_surf = data.variables['PSFC'][:].squeeze()

# Load wind components
u = data.variables['U10'][:].squeeze()
v = data.variables['V10'][:].squeeze()

m = Basemap(projection='cyl', resolution='l',
                    llcrnrlat= 42., llcrnrlon= -12.,
                    urcrnrlat= 57., urcrnrlon= 12.)
m.drawcountries()
m.drawcoastlines()
m.fillcontinents('#FAF0E6') ### Blanking out this line gives barbs over land
m.drawmeridians(np.arange(-180,180,10),labels=[0,0,1,1])
m.drawparallels(np.arange(-90,90,10),labels=[1,0,0,0])

x,y = m(longrid,latgrid)
ct = m.contour(x,y,p_surf, colors='#1C8CFC') ### So far, so good
ct.clabel(fmt='%1i')

m.barbs(x,y,u,v)

plt.savefig('p_surf-barbs-map.png')

1 个答案:

答案 0 :(得分:0)

在保罗的帮助下,我找到了解决方案:

在绘制倒钩时,添加一个具有高值的变量zorder(我使用100),如下所示:

m.barbs(x, y, u, v, zorder=100)