水深地形图

水深地形图

1. 转置

1.1 代码示例

Filename='filename.nc'; 
lon=ncread(Filename,'LON');  % 115-140
lat=ncread(Filename,'LAT');    % 15-40
dep=ncread(Filename,'BATHY'); 
dep=dep';

重点注意,水深数据dep需要进行转置

1.2 解释说明

A=[a11a12...a14a15a21a22...a14a25..a41a42...a14a45]A=\begin{bmatrix}a_{11} &a_{12}&...&a_{14}&a_{15} \\ a_{21} &a_{22}&...&a_{14}&a_{25} \\ ..\\ a_{41} &a_{42}&...&a_{14}&a_{45} \\ \end{bmatrix} 对4×5型AA矩阵进行转置得到ATA^{T}为5×4型矩阵AT=[a11a21...a41a12a22...a42a13a23...a43...a15a25...a45]A^{T}=\begin{bmatrix} a_{11} & a_{21} &...& a_{41} \\ a_{12} & a_{22} &...& a_{42}\\ a_{13} & a_{23} &...& a_{43}\\ ...\\ a_{15} & a_{25} &...& a_{45}\\ \end{bmatrix}
对于nc文件中的水深数据,其维度:

Dimensions: LON17701_19201,LAT6301_7801,TIME

重构网格点meshgrid后得到的网格同为(lon,lat),但区别如下:
\qquad在这里插入图片描述 \qquad\quad在这里插入图片描述
如左图,假设标记处a34a_{34}表示其lon=30,lat=40的水深,但发现若在地图中标记处应为lon=40,lat=30,因此对AA进行转置得到ATA^{T}后,标记处变为a43a_{43},恰好与lon=40,lat=30与其对应。
故:在进行一般绘图时需要考虑是否进行转置!

2. plot水深地形图

2.1 代码示例

f=figure(id);
m_proj('mercator','lon',[115,140],'lat',[15,40]); 
m_contourf(lon,lat,dep,50,'linestyle','none');     
m_gshhs_f('Color','g','LineWidth',0.6,'LineStyle','-.');    
m_grid('linestyle',':','box','fancy','tickdir','out','linecolor','w','alpah','0.5');

设置投影和,等值线填充,海岸线,格点

2.2 部分参数详解

m_proj('投影方式','long',[lonmin lonmax],'lat',[latmin latmax]);

2.2.1 等值线

m_contourf(x,y,z,level,LineSpec,'ShowText','LineWidth','LabelSpacing');

  1o1^o. x,y,z的维度size应该一致,若x,y分别为1×n,m×11×n,m×1,则可以通过meshgrid进行重构网格,最终得到相同大小的x,y,z;

% reshap size
[X,Y]=meshgrid(x,y) % produce the coordinates of a rectangular grid (X, Y).
cat(DIM,A,B)        % cat(2,A,B) is the same as [A,B].
                    % cat(1,A,B) is the same as [A;B].

  2o2^o. level表示层级,可以为层级数也可以是一个或几个特定的层级;

contourf(X,Y,Z,10)
contourf(X,Y,Z,[2 3])
contourf(X,Y,Z,[2 2])

level=10level=[2 3]level=[2 2]
上述三幅图来自于mathworks,分别表示level=50,[2 3],[2 2]的结果;
  3o3^o. LineSpec表示线性

contourf(X,Y,Z,50'b--');
contourf(X,Y,Z,50,'linestyle','--','color','blue'

两种呈现结果相同,均显示蓝色虚线的线条格式
  4o4^o. ShowText表示等高线标签

2.2.2 海岸线

m_gshhs(RES,'patch' ( ,standard patch options,...,...) )

在这里插入图片描述

2.2.3 网格相关参数

在这里插入图片描述

3. colormap

hh=colorbar;                           
set(hh,'position',[0.78 0.1 0.02 0.8]);
caxis([-7000 3000]);
set(hh,'ytick',-7000:1000:3000,'yticklabel',-7000:1000:3000);
colormap([ m_colmap('blues(1)',70); m_colmap('greens',30)]);

3.1 常见的colormap/m_colmap

在这里插入图片描述
在这里插入图片描述

3.2 特殊拼接用法

  1o1^o. flipud翻转colormap

colormap(m_colmap('blues'));

正常

colormap(flipud(m_colmap('blues')));

翻转

  2o2^o. colormap拼接

colormap([ m_colmap('blues',70); m_colmap('greens',30)]);

拼接
表示blues与greens两个colmap的比例为7:3

posted @ 2019-03-29 01:32  dan-chen  阅读(1308)  评论(0编辑  收藏  举报