Problems with m_proj for specific area of the world

33 ビュー (過去 30 日間)
Julien Bodart
Julien Bodart 2017 年 6 月 30 日
回答済み: Silver 2018 年 9 月 25 日
Hi,
I have recently switched from python and R to Matlab to use certain features that Matlab offers and Python doesn't. I have been looking at a lot of tutorials and info on my specific problem but cannot solve it.
I basically have Mean Sea Level Pressure data in a NetCDF file stored as lon lat and my data. I need to plot my data over and around Antarctica and also add coastlines using the m_map package but I keep getting error messages such as:
>> Output argument "ncst" (and maybe others) not assigned during call to
"\\filestore\MyFiles\StudentPG1\jb16006\Documents\MATLAB\private\mu_coast.m>mu_coast".
>> Error in m_coast (line 28)
h=mu_coast('default',varargin{:},'tag','m_coast');
Undefined function 'checkellipsoid' for input arguments of type 'double'.
>> Error in resetmstruct (line 29)
checkellipsoid(mstruct.geoid, 'resetmstruct', 'mstruct.geoid');
>> Error in axesm (line 139)
mstruct = resetmstruct(mstruct);
My code at the moment (which plots my data correctly but for the whole word) is as follows:
% Create overal world view of MSLP data
% ---------------------------------------
nc = netcdf.open('MSLP_lagged_15.nc','NC_NOWRITE');
high_15 = netcdf.getVar(nc,15,[0 0],[480 241],'double'); %(file, var number, Dim start, Dim end
lon = netcdf.getVar(nc,0,0,480) % (File, VarID, Start = 0 , End = 480)
lat = netcdf.getVar(nc,1,0,241) % (File, VarID, Start = 0 , End = 241)
for p = 1:480
for q = 1:241
if abs(high_15(p,q)) > 99 % get rid of 99 values if any and replace by NaN
high_15(p,q) = nan;
end
map(q,p) = high_15(p,q);
end
end
pcolor(lon,lat,map)
shading interp
h=colorbar('h')
%set(get(h,'title'),'string','ENSO MSLP Correlation');
hold on
contourf(lon,lat,map)
% ---------------------------------------
When I try to add:
>> m_coast('line');
m_grid('xaxis','bottom');
m_proj('stereographic','lats',90,'lons',45);
to get a focus on Antarctica, my data disappears completely and leaves me with a half white and half green figure of Antarctica's coastline but my data has disappeared completely. Is it an problem of ordering my code so that m_proj comes first before my data? And any idea why I always have error messages when I try to use packages such as m_coast? My Matlab version is MATLAB R2012b x64 and I have already reset my path just in case using:
>> restoredefaultpath;
rehash toolboxcache;
Any help on this would be useful.
Thanks.

採用された回答

Chad Greene
Chad Greene 2017 年 7 月 7 日
Can you do it with Antarctic Mapping Tools? Syntax would be
pcolorps(lat,lon,map)
antbounds('coast')
I'm not sure how your lat,lon data are formatted, but you might need to do
[Lon,Lat] = meshgrid(lon,lat);
or
[Lat,Lon] = meshgrid(lat,lon);
before calling pcolorps.

その他の回答 (1 件)

Silver
Silver 2018 年 9 月 25 日
I have the same problem @Julien Bodart , did you get the solution ? If you did , pease share it so it helps.

カテゴリ

Help Center および File ExchangeGeodesy and Mapping についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by