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 31 Python
Python基本语法经典教程
Mar 11 Python
python获取文件真实链接的方法,针对于302返回码
May 14 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
Jul 26 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 Python
ubuntu16.04制作vim和python3的开发环境
Sep 23 Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
Pygame的程序开始示例代码
May 07 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
python实现三次密码验证的示例
Apr 29 Python
Python获取字典中某个key的value
Apr 13 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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
GreyBox技术总结(转)
2010/11/23 Javascript
容易被忽略的JS脚本特性
2011/09/13 Javascript
使用js完成节点的增删改复制等的操作
2014/01/02 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python实现线程池代码分享
2015/06/21 Python
详解django中使用定时任务的方法
2018/09/27 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
简单了解Python3里的一些新特性
2019/07/13 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
终于搞懂了Keras中multiloss的对应关系介绍
2020/06/22 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
医院后勤自我鉴定
2013/10/13 职场文书
大一期末自我鉴定
2013/12/13 职场文书
国培计划培训感言
2014/03/11 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书