溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python實現(xiàn)DEM數(shù)據(jù)的陰影生成的方法

發(fā)布時間:2020-09-04 17:27:59 來源:腳本之家 閱讀:254 作者:林木聲 欄目:開發(fā)技術(shù)

相關(guān)的依賴庫在我的github網(wǎng)站上

首先貼出代碼:

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__':

  
  '''
  # 另一種從網(wǎng)上直接下載DEM數(shù)據(jù)
  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()

生成的結(jié)果如下:左邊是DEM數(shù)據(jù),右邊是shadow

python實現(xiàn)DEM數(shù)據(jù)的陰影生成的方法

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI