Map plot (surfm) of polar regions missing data

4 次查看(过去 30 天)
Hi all,
I have global model output and am trying to plot the data from a view above the south pole. I am using the surfm function (although using contourfm, or surfacem yields similar results) to plot the data on top of an axes such that:
axesm('MapProjection','vperspec',...
'Frame','on','Grid','on',...
'Origin',[-90 0 0],...
'MeridianLabel','on','ParallelLabel','on')
surfm(lat,lon,data)
where:
lat = 145 x 1 double array (latitude of centre of grid box)
lon = 192 x 1 double array (longitude of centre of grid box)
data = 145 x 192 double array (model data)
The output of this results in a map, except that it contains a white 'wedge' at the edge of the dataset (see attached image). This doesn't occur when I plot the data in other plotting programs. Any ideas as to how to get it to plot the edge data and fill this wedge?
I have tried applying the example found at this link to my data, with the same result.
I assume it is a problem with my longitude array (since it is a longitudinal slice), but this is direct output from the model and as mentioned before, works fine with other plotting programs. My longitude array is of the following form:
lon = [0.9385, 0.9385+1.8750i, ..., 359.0625]
Any help would be greatly appreciated.
Thanks! weirdkhar

采纳的回答

Chad Greene
Chad Greene 2015-3-10
Hi Weirdkhar,
First, if you make a lot of maps centered about the South Pole, I recommend initializing with antmap or ncpolarm. It's a bit more streamlined than calling the axesm function with a bunch of arguments.
As for the missing data, a manual fix is to append your lat, lon, and data matrices with an extra column, which will be a copy of the very first column. That process is described here.

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by