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获取脚本所在目录的正确方法
Apr 15 Python
python实现简单的计时器功能函数
Mar 14 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
Python 隐藏输入密码时屏幕回显的实例
Feb 19 Python
pyqt5 使用label控件实时显示时间的实例
Jun 14 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
Oct 06 Python
Python面向对象封装操作案例详解
Dec 31 Python
python能开发游戏吗
Jun 11 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
Jan 29 Python
Python入门之使用pandas分析excel数据
May 12 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防止SQL注入详解及防范
2013/11/12 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
PHP中foreach()用法汇总
2015/07/02 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
Vue-router中hash模式与history模式的区别详解
2020/12/15 Vue.js
分析用Python脚本关闭文件操作的机制
2015/06/28 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
利用python的socket发送http(s)请求方法示例
2018/05/07 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
python提取xml里面的链接源码详解
2019/10/15 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
学校综治宣传月活动总结
2014/07/02 职场文书
5.12护士节活动总结
2015/02/10 职场文书
三八妇女节寄语
2015/02/27 职场文书
红色经典观后感
2015/06/18 职场文书
技术入股协议书
2016/03/22 职场文书
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库