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 04 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
May 16 Python
python 3.6.2 安装配置方法图文教程
Sep 18 Python
详解Python传入参数的几种方法
May 16 Python
Python程序包的构建和发布过程示例详解
Jun 09 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
Aug 16 Python
如何基于Python实现数字类型转换
Feb 07 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
Feb 26 Python
python中的测试框架
Nov 13 Python
jupyter 添加不同内核的操作
Feb 06 Python
python实现MD5进行文件去重的示例代码
Jul 09 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
php学习之function的用法
2012/07/14 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
Javascript基础_简单比较undefined和null 值
2016/06/14 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
深入学习js函数的隐式参数 arguments 和 this
2019/06/24 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
python链接Oracle数据库的方法
2015/06/28 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
python 实现波浪滤镜特效
2020/12/02 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
迎新晚会邀请函
2014/02/01 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
项目投资意向书范本
2015/05/09 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle