python:从多个netCDF文件中绘制数据

时间:2016-07-21 19:41:42

标签: python matplotlib plot matplotlib-basemap colorbar

长话短说,我正在从netCDF文件中绘制气候数据。我唯一的问题是,我必须从数十个这些文件中绘制数据,每个文件都有超过一百个数据点。幸运的是,它们都具有相同的格式,并且它们的名称按升序排列(例如:file1.nc,file2.nc ...)。这是我的代码(未完成,因为我必须更改标记的标记和颜色):

无论如何,我想要绘制多于一个文件(大约20个开头)。有没有办法做到这一点?另外,如果你们知道如何根据变量' data'设置颜色条。那会很棒。

谢谢!

2 个答案:

答案 0 :(得分:0)

制作一个空数组:

data =[] 

列出文件名:

flist=["001.dat","002.dat",...] 

然后遍历该列表:

for fn in flist: 
        data.append( netcdf_file(fn,'r'))

现在您可以参考您的数据集,如:

data[0]
data[1]

答案 1 :(得分:0)

至少,plt.savefig("some unique name")表示您可以在循环中生成它们而无需保存图表/单独关闭它们。

我还建议您熟悉object oriented interface

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
map = Basemap(projection='robin',lon_0=0,resolution='l',ax=ax)
#keep all your code
cs = map.scatter(x,y,data)
fig.savefig("{}".format(some unique identifier))

Eta:如果他们在同一个文件夹中,您可以使用glob查找所有文件:

import glob
filelist = glob.glob('/Users/epsuser/Dropbox/Argo/Data/*.nc')
for fl in filelist:
    ncfile = netcdf_file(fname,'r')
    #the rest of your reading code
    fig = plt.figure()
    #etc...