⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m_elev.m

📁 M_MAP教你如何用MATLAB绘制海洋、大气类的图。可以使用各种投影
💻 M
字号:
function [values,longs,lats]=m_elev(varargin);% M_ELEV Contour elevation onto a map using a 1-degree database%        M_ELEV contours elevations at 1000m intervals for the map.%        M_ELEV(OPTN (,LEVELS) (,ARGS,...) ) lets you change various options.%        if OPTN=='contour', contour lines are drawn. for OPTN=='contourf',%        filled contours are drawn. LEVELS are the levels used, and ARGS%        are optional patch arguments of line types, colors, etc. %%        [CS,H]=M_ELEV(...) allows access to the return arguments of the%        contour/contourf call.%%        [ELEV,LONG,LAT]=M_ELEV([LONG_MIN LONG_MAX LAT_MIN LAT_MAX])%        extracts elevation data for the given lat/long limits (without plotting).%%        See also M_PROJ, M_GRID, M_COAST% Rich Pawlowicz (rich@ocgy.ubc.ca) 2/Apr/1997%% This software is provided "as is" without warranty of any kind. But% it's mine, so you can't sell it.%% 20/5/97 - moved registration over by 1/2 degree (seems to fit better)% 2/10/97 - a minor bug in the edge-handling for filled contours!% 8/ 1/98 - better handling for options.% 23/1/98 - redid everything to allow for raw bathymetry output option.% 6/Nov/00 - eliminate returned stuff if ';' neglected (thx to D Byrne)global MAP_PROJECTION MAP_VAR_LIST % Have to have initialized a map firstdraw_map=1;if nargin==1 & ~isstr(varargin{1}) & length(varargin{1})==4,  draw_map=0;end;if draw_map==1 & isempty(MAP_PROJECTION),  disp('No Map Projection initialized - call M_PROJ first!');  return;end;% Set current projection to geographicCurrentmap=m_coord('set');m_coord('geographic');if draw_map,  blat=max(floor(MAP_VAR_LIST.lats(1)+.5),-89)-.5;  tlat=min(ceil(MAP_VAR_LIST.lats(2)+.5),90)-.5;  llong=floor(MAP_VAR_LIST.longs(1)+.5)-.5;  rlong=ceil(MAP_VAR_LIST.longs(2)+.5)-.5;else  blat=max(floor(varargin{1}(3)+.5),-89)-.5;  tlat=min(ceil(varargin{1}(4)+.5),90)-.5;  llong=floor(varargin{1}(1)+.5)-.5;  rlong=ceil(varargin{1}(2)+.5)-.5;end;load topoif rlong>360, rlong=rlong-360; llong=llong-360; end;if llong<-360, rlong=rlong+360; llong=llong+360; end;lts=(blat:tlat);lgs=(llong:rlong);if rlong<0,  topo=topo(lts+90.5,lgs+360.5);elseif llong<0 & rlong>=0,  topo=topo(lts+90.5,[(360.5+llong:end) (1:rlong+0.5)]);else  topo=topo(lts+90.5,lgs+.5);end;if draw_map,  if nargin==0,   levels=[-7000:1000:-1000 1000:1000:5000];   optn='contour';   n_opt=1;  else   if isstr(varargin{1}),     optn=varargin{1};   end;   if nargin==1,     levels=[-7000:1000:-1000 1000:1000:5000];     n_opt=2;   else     if isstr(varargin{2}),       levels=[-7000:1000:-1000 1000:1000:5000];       n_opt=2;    else       levels=varargin{2};       n_opt=3;     end;   end;  end;  [lg,lt]=meshgrid(lgs,lts);  [X,Y]=m_ll2xy(lg,lt,'clip','on');  hold on;  switch optn,   case 'contour',      [values,longs]=m_contour(lg,lt,topo,levels);   case 'contourf',      [values,longs]=m_contourf(lg,lt,topo,levels);   case 'pcolor',      [longs]=m_pcolor(lg,lt,topo);  end;    set(longs,'tag','m_elev');    if n_opt<length(varargin), for l=1:length(longs), set(longs(l),varargin{n_opt:end}); end; end;else  [longs,lats]=meshgrid(lgs,lts);  values=topo;end;% Reset map coordsm_coord(Currentmap.name);if nargout==0, clear values lats longsend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -