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端口扫描系统实现方法
Nov 19 Python
Django中URL视图函数的一些高级概念介绍
Jul 20 Python
在windows系统中实现python3安装lxml
Mar 23 Python
python多进程共享变量
Apr 06 Python
Python编程argparse入门浅析
Feb 07 Python
python 文件查找及内容匹配方法
Oct 25 Python
python集合是否可变总结
Jun 20 Python
python数据预处理之数据标准化的几种处理方式
Jul 17 Python
python实现最大优先队列
Aug 29 Python
TensorFlow中如何确定张量的形状实例
Jun 23 Python
如何教少儿学习Python编程
Jul 10 Python
Django model重写save方法及update踩坑详解
Jul 27 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下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
关于尾递归的使用详解
2013/05/02 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
layui问题之模拟select点击事件的实例讲解
2018/08/15 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
js实现简单音乐播放器
2020/06/30 Javascript
python的id()函数解密过程
2012/12/25 Python
python中mechanize库的简单使用示例
2014/01/10 Python
python读取浮点数和读取文本文件示例
2014/05/06 Python
在Python中使用异步Socket编程性能测试
2014/06/25 Python
浅谈django orm 优化
2018/08/18 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
python调用webservice接口的实现
2019/07/12 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
Python调用JavaScript代码的方法
2020/10/27 Python
关于探究python中sys.argv时遇到的问题详解
2021/02/23 Python
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
运动会闭幕式主持词
2015/07/01 职场文书