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


Posted in Python onJuly 23, 2019

相关的依赖库在我的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数据的阴影生成的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用多线程不断刷新网页的方法
Mar 31 Python
python用Pygal如何生成漂亮的SVG图像详解
Feb 10 Python
教你用一行Python代码实现并行任务(附代码)
Feb 02 Python
详解python3中zipfile模块用法
Jun 18 Python
python 读取文件并替换字段的实例
Jul 12 Python
使用Flask集成bootstrap的方法
Jul 24 Python
在Python中调用Ping命令,批量IP的方法
Jan 26 Python
Python创建或生成列表的操作方法
Jun 19 Python
python getpass模块用法及实例详解
Oct 07 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
深入理解Python变量的数据类型和存储
Feb 01 Python
如何通过一篇文章了解Python中的生成器
Apr 02 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 #Python
详解pandas中MultiIndex和对象实际索引不一致问题
Jul 23 #Python
python视频按帧截取图片工具
Jul 23 #Python
python如何实现从视频中提取每秒图片
Oct 22 #Python
详解Django 时间与时区设置问题
Jul 23 #Python
利用python-pypcap抓取带VLAN标签的数据包方法
Jul 23 #Python
python 抓包保存为pcap文件并解析的实例
Jul 23 #Python
You might like
动态调用css文件——jquery的应用
2007/02/20 Javascript
javascript 控制弹出窗口
2007/04/10 Javascript
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
jquery对表单操作2
2011/04/06 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
js+html5实现的自由落体运动效果代码
2016/01/28 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
2016/02/16 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
Vue.js划分组件的方法
2017/10/29 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
JS中的事件委托实例浅析
2018/03/22 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
HTML5之SVG 2D入门5—颜色的表示及定义方式
2013/01/30 HTML / CSS
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
客服服务心得体会
2013/12/30 职场文书
乔迁之喜主持词
2014/03/27 职场文书
生态养殖创业计划书
2014/05/06 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP
Redis RDB技术底层原理详解
2021/09/04 Redis