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开发常用的一些开源Package分享
Feb 14 Python
python中随机函数random用法实例
Apr 30 Python
讲解Python中if语句的嵌套用法
May 14 Python
Python检测字符串中是否包含某字符集合中的字符
May 21 Python
Python中基本的日期时间处理的学习教程
Oct 16 Python
Python学习思维导图(必看篇)
Jun 26 Python
Python3 XML 获取雅虎天气的实现方法
Feb 01 Python
详解Python 函数如何重载?
Apr 23 Python
python自动发邮件总结及实例说明【推荐】
May 31 Python
如何理解Python中的变量
Jun 01 Python
python获取整个网页源码的方法
Aug 03 Python
OpenCV+python实现膨胀和腐蚀的示例
Dec 21 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
PHP获取Exif缩略图的方法
2015/07/13 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
js实现class样式的修改、添加及删除的方法
2015/01/20 Javascript
easyui Droppable组件实现放置特效
2015/08/19 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
vue实现顶部菜单栏
2020/11/08 Javascript
Python实现KNN邻近算法
2021/01/28 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
详解Python中的type和object
2018/08/15 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
python可视化text()函数使用详解
2020/02/11 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
保护动物倡议书
2014/04/15 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
领导干部廉政自律承诺书
2014/05/26 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
关于环保的宣传稿
2015/07/23 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
Python词云的正确实现方法实例
2021/05/08 Python
Django实现drf搜索过滤和排序过滤
2021/06/21 Python
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS
Mysql事务索引知识汇总
2022/03/17 MySQL