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运算符重载用法实例
May 28 Python
python3实现磁盘空间监控
Jun 21 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
Python基本类型的连接组合和互相转换方式(13种)
Dec 16 Python
python opencv实现信用卡的数字识别
Jan 12 Python
对python中 math模块下 atan 和 atan2的区别详解
Jan 17 Python
Python 爬取必应壁纸的实例讲解
Feb 24 Python
最小二乘法及其python实现详解
Feb 24 Python
python爬虫数据保存到mongoDB的实例方法
Jul 28 Python
python 匿名函数与三元运算学习笔记
Oct 23 Python
python中用ctypes模拟点击的实例讲解
Nov 26 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 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的FTP学习(一)
2006/10/09 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
2020/01/04 PHP
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
js中开关变量使用实例
2017/02/24 Javascript
Angularjs实现页面模板清除的方法
2018/07/20 Javascript
Python格式化css文件的方法
2015/03/10 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
利用PyQt中的QThread类实现多线程
2020/02/18 Python
python中元组的用法整理
2020/06/15 Python
python中tab键是什么意思
2020/06/18 Python
python unichr函数知识点总结
2020/12/16 Python
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
事业单位绩效考核实施方案
2014/03/27 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
党的群众路线对照检查材料思想汇报(学校)
2014/10/04 职场文书
求职自我评价怎么写
2015/03/09 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
道歉短信大全
2015/05/12 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
个人业务学习心得体会
2016/01/25 职场文书
php解析非标准json、非规范json的方式实例
2022/05/10 PHP