2017-06-05 12 views
0

python 3.6を使用して、ベースマップ上にnetCDF4ファイルから降水量データをプロットしようとしています。私が使用しているコードは、非常によく似たデータセットで完全に機能しています。唯一の違いは、以前の降水量データが 'cm'であったのに対し、現在私がプロットしようとしているデータは 'kg m-2 s-1'であることです。このファイルにある変数は、time、time_bnds、lat、lat_bnds、lon、lon_bnds、およびprです。 prは降水量変数で、私はプロットに興味があります。ここでベースマップ上のPython変更単位

は、あなたが、私はそれがnetCDF4ファイルで使用しています同じファイルを使用してこのコードを試してみて、実行したい場合はCMIP5のウェブサイトからダウンロードした私のコード

from mpl_toolkits.basemap import Basemap, cm 
from netCDF4 import Dataset as NetCDFFile 
import matplotlib.pyplot as plt 

nc = NetCDFFile('filename.nc','r') 

p = nc.variables['prc'] 
data = p[:,:,0] 

fig = plt.figure(figsize=(8,8)) 
ax = fig.add_axes([0.1,0.1,0.8,0.8]) 

m = Basemap(projection='cyl',lon_0=180,lat_0=0,resolution='l') 

m.drawcoastlines() 
m.drawstates() 
m.drawcountries() 


ny = data.shape[0]; nx = data.shape[1] 
lons, lats = m.makegrid(nx,ny) 
x,y = m(lons, lats) # compute map proj coordinates. 

cs=plt.contourf(x,-y,data*2592000,range(0,1000,10),cmap=cm.s3pcpn,latlon=True) 

#data is multiplied by the amount of seconds in a month 

cbar = m.colorbar(cs,location='bottom',pad="5%") 
cbar.set_label('mm') 

plt.show() 

です:http://pcmdi9.llnl.gov/マイファイル名:(/データ/CCSM4/pr_Amon_CCSM4_historical_r1i1p1_185001-200512.nc) 元のデータはnetCDF3_CLASSIC形式であるため、netCDF4に変更する必要があります。

+0

私たちが知っておくべき誤りはありますか? –

+0

このコードを実行するとエラーメッセージが表示されず、代わりにランダムな色のマップが表示されます。しかし、降水量データがどのように見えているのかとは異なり、ユニットが間違っていることが原因であると思われます。 @WoodyPride – CPG

答えて

1

降水量の単位が唯一の変化であれば、データをcmに変換すると、それがうまくいくことがわかり、データの解釈方法にはすでに精通しています。あなたはそれを変換する関数を書くことさえできます。

これを変換しても動作すると期待しているフォーマットと同じですが、まだ動作しない場合は、データに問題があることがわかります。 。

関連する問題