Matplotlib users,

I've been using pcolor and pcolormesh to plot results from the NCEP Reanalysis. I've noticed that the plotted values are slightly offset. Googling around I see that matlab has this quality, which I assume matplotlib inherited.

# If your georeferenced image is in lat/long coordinates (i.e. each data row is along a line of

constant latitude, each column a line of equal longitude), ... you MUST remember to offset your

coordinates by one-half of the pixel spacing. This is because of the different behaviors of

p_color and image when given the same data.

1. image will center the drawn (i,j) pixel on the (i,j)th entry of the X/Y matrices.

2. p_color with shading flat will draw a panel between the (i,j),(i+1,j),(i+1,j+1),(i,j+1)

coordinates of the X/Y matrices with a color corresponding to the data value at (i,j). Thus

everything will appear shifted by one half a pixel spacing.

and

% Since the grid is rectangluar in lat/long (i.e. not

% really a projection at all, althouhg it is included in

% m_map under the name 'equidistant cyldindrical'), we

% don't want to use the 'image' technique. Instead...

% Create a grid, offsetting by half a grid point to account

% for the flat pcolor

[Plg,Plt]=meshgrid(Plon-0.25,Plat+0.25);

The data I'm using uses polar grids centered on +-90.0 which give a latitude array as such

[-90. -87.5 -85. -82.5 -80. -77.5 -75. -72.5 -70. -67.5 -65. -62.5

-60. -57.5 -55. -52.5 -50. -47.5 -45. -42.5 -40. -37.5 -35. -32.5

-30. -27.5 -25. -22.5 -20. -17.5 -15. -12.5 -10. -7.5 -5. -2.5

0. 2.5 5. 7.5 10. 12.5 15. 17.5 20. 22.5 25. 27.5

30. 32.5 35. 37.5 40. 42.5 45. 47.5 50. 52.5 55. 57.5

60. 62.5 65. 67.5 70. 72.5 75. 77.5 80. 82.5 85. 87.5

90. ]

Is there a simple way to "shift" this data so my global plots look correct? So far my results result in an "empty" line along the south pole or I end up with an extra latitude which pcolor doesn't like.

Thanks,

Mike