MATLAB使用surflm绘制表面浮雕阴影地形图
1、第一,启动MATLAB,新建脚本(Ctrl+N),输入如下代码:
close all; clear all; clc
figure('Position',[50 50 600 500],'Name','Korea')
ax=worldmap('korea');
latlim=getm(ax,'MapLatLimit');
lonlim=getm(ax,'MapLonLimit');
coastline=shaperead('landareas',...
'UseGeoCoords',true,...
'BoundingBox',[lonlim' latlim'])
geoshow(ax,coastline,'FaceColor','none')
以上脚本使用worldmap选择地图区域(korea,朝鲜半岛)和地图边界。

2、第二,保存和运行上述脚本,得到如下图形:朝鲜半岛的地图廓线。

3、第三,使用load加载地形数据,使用meshgrat转化为网格数据,使用surflm绘制表面浮雕阴影地形图,使用colormap选择地形图颜色为铜色(copper)。
接着添加如下代码:
load korea;
[klat,klon]=meshgrat(map,refvec);
ht=surflm(klat,klon,map);
colormap('copper')

4、第四,保存和运行上述脚本,得到如下铜色的朝鲜半岛的表面浮雕阴影地形图。

5、第五,添加代码clmo(ht);ht=surflm(klat,klon,map,[135,60]),从而改变方位角azimuth为135度和仰角elevation为60度。

6、第六,保存和运行上述添加后的脚本,得到如下朝鲜半岛(Korea peninsula)的表面浮雕阴影地形图,光照的方位角和仰角做了相应改变。

7、第七,改变最后一行代码为:
clmo(ht);ht=surflm(klat,klon,map,[135,60],...
[0.65,0.4,0.3 10])
从而增加环境光(ambient light)、漫反射(diffuse reflection)和镜面反射(specular reflection)。

8、第八,保存和运行上述脚本,得到最终的朝鲜半岛的表面浮雕阴影地形图如下。
