相关的依赖库在我的github网站上
首先贴出代码:
import solar
from gradient import *
from shadows import *
import numpy as np
import matplotlib.pyplot as plt # plt 用于显示图片
import matplotlib.image as mpimg # mpimg 用于读取图片
# dem
import srtm
if __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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。