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压缩解压缩zip文件及破解zip文件密码的方法
Nov 04 Python
python抓取网页中链接的静态图片
Jan 29 Python
简单实现python聊天程序
Apr 01 Python
python 中文件输入输出及os模块对文件系统的操作方法
Aug 27 Python
python下载微信公众号相关文章
Feb 26 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
Oct 12 Python
python matplotlib折线图样式实现过程
Nov 04 Python
python3中rank函数的用法
Nov 27 Python
python设置代理和添加镜像源的方法
Feb 14 Python
一文读懂Python 枚举
Aug 25 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 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框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
2019/12/11 PHP
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
jquery 学习之二 属性(类)
2010/11/25 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
浅谈Javascript 执行顺序
2013/12/18 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
jquery选择器使用详解
2014/04/08 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
vue中监听返回键问题
2019/08/28 Javascript
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
python使用Image处理图片常用技巧分析
2015/06/01 Python
Python 3中的yield from语法详解
2017/01/18 Python
pandas 选择某几列的方法
2018/07/03 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
Python笔记之工厂模式
2019/11/20 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
Python定时器线程池原理详解
2020/02/26 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
毕业生个人求职信范例分享
2013/12/17 职场文书
专职安全员岗位职责
2015/04/11 职场文书
结婚典礼主持词
2015/06/29 职场文书
初中生物教学反思
2016/02/20 职场文书
2019求职信大礼包
2019/05/15 职场文书
Python实现byte转integer
2021/06/03 Python
详细聊聊vue中组件的props属性
2021/11/02 Vue.js