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
Windows下python2.7.8安装图文教程
May 26 Python
python绘制双柱形图代码实例
Dec 14 Python
Python网络爬虫中的同步与异步示例详解
Feb 03 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
Dec 26 Python
python去重,一个由dict组成的list的去重示例
Jan 21 Python
python 计算数据偏差和峰度的方法
Jun 29 Python
如何用OpenCV -python3实现视频物体追踪
Dec 04 Python
PyCharm 在Windows的有用快捷键详解
Apr 07 Python
详解Python调用系统命令的六种方法
Jan 28 Python
Python机器学习之基于Pytorch实现猫狗分类
Jun 08 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自定义函数之递归删除文件及目录
2010/08/08 PHP
PHP中让curl支持sock5的代码实例
2015/01/21 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
ExtJS DOM元素操作经验分享
2013/08/28 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
vue 实现微信浮标效果
2019/09/01 Javascript
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
python模块之paramiko实例代码
2018/01/31 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
银行毕业实习自我鉴定
2013/09/19 职场文书
业务经理岗位职责
2013/11/11 职场文书
仓库理货员岗位职责
2013/12/18 职场文书
实习生自我评价
2014/01/18 职场文书
借款协议书
2014/04/12 职场文书
自查自纠整改报告
2014/11/06 职场文书
2014年工人工作总结
2014/11/25 职场文书
董事长开业致辞
2015/07/29 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
Pygame Time时间控制的具体使用详解
2021/11/17 Python