首页 > 编程 > Python > 正文

python实现DEM数据的阴影生成的方法

2019-11-25 12:15:16
字体:
来源:转载
供稿:网友

相关的依赖库在我的github网站上

首先贴出代码:

import solarfrom gradient import *from shadows import *import numpy as npimport matplotlib.pyplot as plt # plt 用于显示图片import matplotlib.image as mpimg # mpimg 用于读取图片# demimport srtmif __name__ == '__main__':    '''  # 另一种从网上直接下载DEM数据  geo_elevation_data = srtm.get_data()  image = geo_elevation_data.get_image((500, 500), (45, 46), (13, 14), 300)  # the image s a standard PIL object, you can save or show it:  image.show()  image = np.asarray(image)  print(image.shape)  '''  # 读入高程信息  filename = 'dempyrenees.asc'  dem = np.loadtxt(filename,skiprows=6,delimiter=' ')  # 高程信息的维度  # print(dem)  print(dem.shape)  # 定义一个光线向量  # 第一个表示和竖直方向的夹角,第二个表示由东向西照射  sv = normal_vector(45, 270)  # 生成阴影  shadow = project_shadows(dem=dem,sun_vector=sv,dx=30)  print(shadow[1,:])  print(shadow.shape)  # 显示dem和shadow图像  plt.figure()  plt.subplot(1,2,1)  plt.imshow(dem,cmap='gray') # 显示灰度图像  plt.axis('off') # 不显示坐标轴  plt.subplot(1,2,2)  plt.imshow(shadow,cmap='gray')  plt.axis('off')  plt.show()

生成的结果如下:左边是DEM数据,右边是shadow

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表