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中的魔法方法深入理解
Jul 09 Python
python+django快速实现文件上传
Oct 24 Python
Python实现修改文件内容的方法分析
Mar 25 Python
python爬虫_实现校园网自动重连脚本的教程
Apr 22 Python
python实现批量修改图片格式和尺寸
Jun 07 Python
python单线程文件传输的实例(C/S)
Feb 13 Python
selenium+python环境配置教程详解
May 28 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
python获取系统内存占用信息的实例方法
Jul 17 Python
Python中bisect的用法及示例详解
Jul 20 Python
python利用xlsxwriter模块 操作 Excel
Oct 14 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 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
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
解决vue页面刷新或者后退参数丢失的问题
2018/03/13 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
vue 实现LED数字时钟效果(开箱即用)
2019/12/08 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
详解django三种文件下载方式
2018/04/06 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
Win10下Python3.7.3安装教程图解
2019/07/08 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
PyQt5的QWebEngineView使用示例
2020/10/20 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
Python创建自己的加密货币的示例
2021/03/01 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
市场营销专业自荐书
2014/06/10 职场文书
实习班主任自我评价
2015/03/11 职场文书
自我检讨书怎么写
2015/05/07 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书
企业版Windows 11有哪些新功能? Win11适用于企业的功能介绍
2021/11/21 数码科技
vue使用wavesurfer.js解决音频可视化播放问题
2022/04/04 Vue.js