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下的XSLT API进行web开发的简单教程
Apr 15 Python
Python的多态性实例分析
Jul 07 Python
python 截取 取出一部分的字符串方法
Mar 01 Python
SVM基本概念及Python实现代码
Dec 27 Python
Python实现打砖块小游戏代码实例
May 18 Python
django的model操作汇整详解
Jul 26 Python
python实现车牌识别的示例代码
Aug 05 Python
keras实现基于孪生网络的图片相似度计算方式
Jun 11 Python
python 基于PYMYSQL使用MYSQL数据库
Dec 24 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
Feb 24 Python
python3实现无权最短路径的方法
May 12 Python
pytorch中的 .view()函数的用法介绍
Mar 17 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实现ping
2006/10/09 PHP
用定制的PHP应用程序来获取Web服务器的状态信息
2006/10/09 PHP
PHP自动重命名文件实现方法
2014/11/04 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
javascript 节点遍历函数
2010/03/28 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
python实现巡检系统(solaris)示例
2014/04/02 Python
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
基于keras中的回调函数用法说明
2020/06/17 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
联谊活动策划书
2014/01/26 职场文书
北京大学自荐信范文
2014/01/28 职场文书
实习老师离校感言
2014/02/03 职场文书
目标管理责任书
2014/04/15 职场文书
小学生校园广播稿
2014/09/28 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书