12 Python 运用Matplotlib绘制遥感数字高程影像(DEM)

利用matplotlib将dem数据绘制出来
from matplotlib import cbook
from matplotlib import cm
from matplotlib.colors import LightSource
import matplotlib.pyplot as plt
import numpy as np
from osgeo import gdal_array

# 读取dem文件
path = "C:\\......\\lms16_高程.tif"
# 将dem文件转为np.array数组
lmsdem = gdal_array.LoadFile(path)
nrows, ncols = lmsdem.shape

# 设置x轴坐标
x_array = np.zeros((nrows,ncols))
def xaxis(a,b):
  for i in range(a,b):
      x_array[i,:] = i
  return x_array
x = xaxis(0,nrows)

# 设置y轴坐标
y_array = np.zeros((nrows,ncols))
def yaxis(a,b):
  for i in range(a,b):
      y_array[:,i] = i
  return y_array
y = yaxis(0,ncols)


# 设置绘制区域的范围
region = np.s_[1300:1500,1150:1400]
x,y,z = x[region],y[region],lmsdem[region]


fig, ax = plt.subplots(subplot_kw = dict(projection='3d'))
ls = LightSource(270, 45)
rgb = ls.shade(z, cmap=cm.gist_earth, vert_exag=0.1, blend_mode='soft')
surf = ax.plot_surface(x, y, z, rstride=1, cstride=1, facecolors=rgb,
                       linewidth=0, antialiased=False, shade=False)

plt.show()
效果展示

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

俯视效果

在这里插入图片描述

  • 6
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值