zoukankan      html  css  js  c++  java
  • python实现DEM数据的阴影生成

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

    首先贴出代码:

     1 import solar
     2 from gradient import *
     3 from shadows import *
     4 import numpy as np
     5 
     6 import matplotlib.pyplot as plt # plt 用于显示图片
     7 import matplotlib.image as mpimg # mpimg 用于读取图片
     8 
     9 
    10 # dem
    11 import srtm
    12 if __name__ == '__main__':
    13 
    14     
    15     '''
    16     # 另一种从网上直接下载DEM数据
    17     geo_elevation_data = srtm.get_data()
    18     image = geo_elevation_data.get_image((500, 500), (45, 46), (13, 14), 300)
    19     # the image s a standard PIL object, you can save or show it:
    20     image.show()
    21 
    22     image = np.asarray(image)
    23 
    24     print(image.shape)
    25 
    26     '''
    27 
    28     # 读入高程信息
    29     filename = 'dempyrenees.asc'
    30     dem = np.loadtxt(filename,skiprows=6,delimiter=' ')
    31 
    32     # 高程信息的维度
    33     # print(dem)
    34     print(dem.shape)
    35 
    36     # 定义一个光线向量
    37     # 第一个表示和竖直方向的夹角,第二个表示由东向西照射
    38     sv = normal_vector(45, 270)
    39 
    40     # 生成阴影
    41     shadow = project_shadows(dem=dem,sun_vector=sv,dx=30)
    42     print(shadow[1,:])
    43     print(shadow.shape)
    44 
    45     # 显示dem和shadow图像
    46     plt.figure()
    47     plt.subplot(1,2,1)
    48     plt.imshow(dem,cmap='gray') # 显示灰度图像
    49     plt.axis('off') # 不显示坐标轴
    50 
    51     plt.subplot(1,2,2)
    52     plt.imshow(shadow,cmap='gray')
    53     plt.axis('off')
    54 
    55     plt.show()

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

  • 相关阅读:
    powerdesigner反向MySQL5.1数据库 生成ER图
    Sublime Text 2 使用心得
    MyEclipse老是弹出problem occurred窗口
    Jquery ui Datepicker 的汉化
    jsp 中的getParameter和getAttribute
    jquery easyui
    struts2 annotation方式的下载(实用版)
    Sublime Text 2
    struts2框架搭建的三个步骤
    任意角度的平行四边形的碰撞检测原理
  • 原文地址:https://www.cnblogs.com/wylwyl/p/10270803.html
Copyright © 2011-2022 走看看