网络编程
位置:首页>> 网络编程>> Python编程>> python实现DEM数据的阴影生成的方法

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

作者:林木声  发布时间:2023-11-09 11:17:25 

标签:python,DEM,阴影

相关的依赖库在我的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

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

来源:https://www.cnblogs.com/wylwyl/p/10270803.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com