【matlab地理】1.1.Landsat4-5影像模拟三维地形图

发布时间 2023-12-13 17:34:06作者: 屋檐下的树叶
LANDSAT 4-5 TM卫星数字产品数据库是中国科学院计算机网络信息中心建立的Landsat遥感影像数据服务系统中的一个组成部分,数据镜像自美国地质调查局。该影像系统主要用于地理、地形及地球勘测等重要领域。
Landsat4-5地形影像可以利用matlab模拟3D地形图、2D灰度图、等高线图、高精度地图制作等。以下内容主要模拟3D图形图。

1、第一步:合成Landsat地形影像

input:

%读取显示tif以及合成Landsat地形影像
%合并后的jpg便于今后生成三维地形图
%数据来源:Landsat4-5 MSS卫星数字产品https://www.gscloud.cn/sources/需登录

landsat_band_1=adapthisteq(readgeoraster("E:/mathlab/landsat4-5/landsat4-5d102.9245,30.3073_B1.TIF").*0.5);
landsat_band_2=adapthisteq(readgeoraster("E:/mathlab/landsat4-5/landsat4-5d102.9245,30.3073_B2.TIF"));
landsat_band_3=adapthisteq(readgeoraster("E:/mathlab/landsat4-5/landsat4-5d102.9245,30.3073_B3.TIF"));
landsat_band_4=adapthisteq(readgeoraster("E:/mathlab/landsat4-5/landsat4-5d102.9245,30.3073_B4.TIF"));
 
%cat参数3表示运算的维度
imagland = cat(3,landsat_band_4,landsat_band_3,landsat_band_2,landsat_band_1);

%这个属于RGBA四通道的图像,A一般代表透明度。
%按常规直接删除,如果A的元素大多数为1或255的话,将多平面图像用RGB=RGBA(:,:,1:3)转化为MxNx3的RGB图像。
imag = imagland(:,:,1:3);
figure;
imshow(imag);
imwrite(imag,'landsat.jpg');
title('landsat4-5(102.9245,30.3073)合成图');

output:

2、第二步:生成3D地形图

input:

%读取已经合成的Landsat4-5影像生成三维地形图
%续mapdem1.m的合并jpg影像
 
%真实地形3D模型
figure;
P=surf(datacop);
colormap("gray");
map_data=imread("landsat.jpg");
P.CData=map_data;
P.FaceColor = "texturemap";
P.LineStyle = "none";
title('landsat4-5(102.9245,30.3073)地形3D模型图');
view(120,70)
 
%颜色对比3D模型
figure;
P=surf(datacop);
colormap("jet");
map_data=imread("datacop_shale.jpg");
P.CData=map_data;
P.FaceColor = "texturemap";
P.LineStyle = "none";
title('landsat4-5山体坡向3D模型图(pitch-angle=45° direction-angle=225°)');

output1:

 

output2: