#----------------------------------------------------------------------
# Read and plots the given 2D variable read off a GRIB1 file 
# using PyNIO/matplotlib/basemap.
#
# Curvilinear grid, 113 x 151
#----------------------------------------------------------------------
import numpy as np, sys, os
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
import Nio

# Read data
dir      = "../Data/"
filename = "ruc.grb"
a   = Nio.open_file("%s/%s" %(dir,filename))
lat = a.variables["gridlat_236"][:]
lon = a.variables["gridlon_236"][:]

var_name = "PRES_236_MTHE"           # Pick a variable to plot
var      = a.variables[var_name][:]
#  print var.min(),var.max()

# create figure, add axes
fig = plt.figure(figsize=(8,10))
ax  = fig.add_axes([0.1,0.1,0.8,0.8])
ax.set_title(var_name)

map = Basemap(projection='cyl',llcrnrlat=lat.min(),urcrnrlat=lat.max(),
              resolution='l',  llcrnrlon=lon.min(),urcrnrlon=lon.max())
x, y = map(lon,lat)

map.drawcoastlines()
cf = map.contourf(x,y,var)
cb = map.colorbar(cf,"bottom", size="7%", pad="10%")

#   plt.show()
plt.savefig("grib1_plot_%s_mpl.png" % var_name)
plt.close(fig)
