MATLAB如何利用DEM生成地形三维模型(DEM+Landsat

您所在的位置:网站首页 用arcgis做地形图 MATLAB如何利用DEM生成地形三维模型(DEM+Landsat

MATLAB如何利用DEM生成地形三维模型(DEM+Landsat

2023-06-25 17:11| 来源: 网络整理| 查看: 265

在这里插入图片描述

一、基础介绍

关于3维地形模型, 三维地形是描述地球表面及其特征的曲面模型。模型中的特征点和特征线都是三维的,可以直观测量或查询任意特征点的平面坐标和高程,模型能够真实的反映地表特征和地表现象。注意其和传统的DEM不同,DEM只具有地表空间特征但不具有地表属性特征,其只能反映地形,不能反映该处的样貌、色彩等。 下面简单列举一下能够作为建立模型的基础数据:

分类方法DEMDEM可以看作N×M个高程数据集Hij(i∈1,N,j∈1,M),MATLAB中是完全支持使用surf(DEM)进行绘制地形图,其转为地形图的原理可以参考我以前的文章,生成地形图之后,可以将有坐标系统的影像图或者其他纹理图进行浮动在地形图表面,实现建模。地表高程点高程点和DEM有异曲同工之处,但是相比于DEM这种二维数据,高程点可以看作是一维的。其可以表示为Hi(i∈1,N*M),而在MATLAB中也可以利用高程点进行绘制地形图,方法可以参考我以前的文章,其他和以上无异。激光点云激光点云比较特殊,其可以被用于精密场所的建模使用,在MATLAB中利用surf或者mesh类的函数显示,则会大大减小的其建模后的精度,因此在MATLAB中可以之间利用PCshow函数读取显示之后,将其所在地区的纹理图进行贴附,可以实现高精度建模。同样随着倾斜摄影测量的发展,其高精度的优势渐渐渗入到数字城市的建模中。其他NONE

其实上面所说的纹理图贴图类似于arcGIS中的按高程在表面浮动,其原理一样; 我们再看看matlab是如何进行纹理贴图的;首先P=surf(DEM),注意以下三个设置 在这里插入图片描述 接下来我们看看三个属性值分别表示的是什么: (1)Facecolor,所属于Surface的面属性,其下属有四个值,分别是‘Flat’、‘interp’、‘none’、‘texturmap’,本次只对第四个值进行说明;其主要是为了变化CData中的数据,使其符合曲面,可以理解为拉伸 在这里插入图片描述 在这里插入图片描述 (2)CData,所属于Surface的颜色属性,其分为二维和三维数组两种形式;

注意在此说明一下,我们将纹理图保存为JPG、PNG或者其他影像图时,其表面的颜色时对应于[R,G,B]颜色体,现在将其赋值给CDdata,使Surface其顶点的颜色为纹理图的颜色,若未赋值,则CData为默认值;

在这里插入图片描述 在这里插入图片描述 (3)Linestyle,所属于Surface的边缘属性,本次就将其设置为‘none’,使其为空以至于其表面的线条隐藏。 在这里插入图片描述

二、代码段及其结果 1)读取显示DEM clc; clear all; %读取显示DEM数据,剔除边缘异常数据 [data,R1]=geotiffread("gansu.tif"); figure; datacop=data(8:432-8,7:603-7); imagesc(datacop); title('DEM显示图');

在这里插入图片描述

2)读取显示以及合成Landsat_5影像 landsat_band_1=adapthisteq(geotiffread("landsat_b1.tif").*0.5); landsat_band_2=adapthisteq(geotiffread("landsat_b2.tif")); landsat_band_3=adapthisteq(geotiffread("landsat_b3.tif")); imag=cat(3,landsat_band_3,landsat_band_2,landsat_band_1); figure; imshow(imag); imwrite(imag,'landsat.jpg'); title('landsat合成图');

在这里插入图片描述

3)读取显示山体阴影图 [data_shale,R2]=geotiffread("gansu_shale.tif"); datacop_shale=data_shale(8:432-8,7:603-7); figure; imagesc(datacop_shale); colormap("gray"); imwrite(datacop_shale,'datacop_shale.jpg'); title('山体阴影显示图');

在这里插入图片描述

4)三维显示地形模型 figure; P=surf(datacop); colormap("gray"); map_data=imread("landsat.jpg"); P.CData=map_data; P.FaceColor = "texturemap"; P.LineStyle = "none"; title('真实地形3D模型图'); view(120,70) figure; P=surf(datacop); colormap("jet"); map_data=imread("datacop_shale.jpg"); P.CData=map_data; P.FaceColor = "texturemap"; P.LineStyle = "none"; title('山体坡向3D模型图(pitch-angle=45° direction-angle=225°)'); view(30,70)

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3