Page info |
---|
infoType | Modified date |
---|
prefix | Last modified on |
---|
type | Flat |
---|
|
Example Python code
Code Block |
---|
|
import pygrib
import matplotlib.pyplot as plt
import matplotlib.colors as colors
from mpl_toolkits.basemap import Basemap
from mpl_toolkits.basemap import shiftgrid
import numpy as np
plt.figure(figsize=(12,8))
grib = ' |
...
...
...
grib' # Set the file name of your input GRIB file
grbs = pygrib.open(grib)
grb = grbs.select()[0]
data = grb.values |
...
# need to shift data grid longitudes from (0..360) to (-180..180)
lons = np.linspace(float(grb['longitudeOfFirstGridPointInDegrees']), \
float(grb['longitudeOfLastGridPointInDegrees']), int(grb['Ni']) )
lats = np.linspace(float(grb['latitudeOfFirstGridPointInDegrees']), \
float(grb['latitudeOfLastGridPointInDegrees']), int(grb['Nj']) )
data, lons = shiftgrid(180., data, lons, start=False)
grid_lon, grid_lat = np.meshgrid(lons, lats) #regularly spaced 2D grid
m = Basemap(projection='cyl', llcrnrlon=-180, \
urcrnrlon=180.,llcrnrlat= |
...
...
lats.max(), \
resolution='c')
x, y = m(grid_lon, grid_lat)
cs = m.pcolormesh(x,y,data,shading='flat',cmap=plt.cm. |
...
gist_stern_r)
m.drawcoastlines()
m.drawmapboundary()
m.drawparallels(np.arange(-90.,120.,30.),labels=[1,0,0,0])
m.drawmeridians(np.arange(-180.,180.,60.),labels=[0,0,0,1])
plt.colorbar(cs,orientation='vertical', shrink=0.5)
plt.title('CAMS |
...
AOD forecast') # Set the name of the variable to plot
plt.savefig(grib+' |
...
...
Notes
Changing the grid resolution
Before plotting the field you can use the cdo software to conservatively regrid the data, for example from 0.1˘x0.1˘ to 0.5˘x0.5˘ regular latitude-longitude grid:
Code Block |
---|
|
cdo -s gencon,grid.R720x360.txt frp_01.grb remapweights.rencon.R3600x1800.to.R720x360.grb
cdo -s remap,grid.R720x360.txt,remapweights.rencon.R3600x1800.to.R720x360.grb frp_01.grb frp_05.grb |
...
The content of grid definition file (grid.R720x360.txt) is:
Code Block |
---|
|
#
# gridID 2
#
gridtype = lonlat
gridsize = 259200
xname = lon
xlongname = longitude
xunits = degrees_east
yname = lat
ylongname = latitude
yunits = degrees_north
xsize = 720
ysize = 360
xfirst = 0.25
xinc = 0.5
yfirst = 89.75
yinc = -0.5
|
Related articles
Content by Label |
---|
showLabels | false |
---|
max | 5 |
---|
spaces | CKB |
---|
showSpace | false |
---|
sort | modified |
---|
reverse | true |
---|
type | page |
---|
cql | label in ("grib","python","plot","visualize") and type = "page" and space = "CKB" |
---|
labels | plot python grib visualize |
---|
|