python实现3D地图可视化


Posted in Python onMarch 25, 2020

基于python代码的3D地图可视化,供大家参考,具体内容如下

介绍

使用Python对地图进行3D可视化。以地图为地图,可以在三维空间对轨迹、点进行可视化。

我们使用了多个库:

1.gdal;
主要是用于读取地图信息,这个库在GIS中很常用,使用C++代码编写的,如果安装不了需要在pypi里面找一下对应的资源。

2.opencv;
很常用的图像处理库。

3.matplotlib;
常用的可视化库

结果

废话不多说直接上结果:

python实现3D地图可视化

python实现3D地图可视化

代码

直接上代码,代码很简单。

from osgeo import gdal
import cv2
gdal.UseExceptions()

ds = gdal.Open('E:/Pythoncode/读取地理信息/无标题.tif')
bandg = ds.GetRasterBand(1)
elevationg = bandg.ReadAsArray()

bandr = ds.GetRasterBand(2)
elevationr = bandr.ReadAsArray()

bandb = ds.GetRasterBand(3)
elevationb = bandb.ReadAsArray()

import matplotlib.pyplot as plt
nrows, ncols = elevationr.shape

elevation= cv2.merge([elevationg,elevationr,elevationb])#
# I'm making the assumption that the image isn't rotated/skewed/etc. 
# This is not the correct method in general, but let's ignore that for now
# If dxdy or dydx aren't 0, then this will be incorrect
x0, dx, dxdy, y0, dydx, dy = ds.GetGeoTransform()

x1 = x0 + dx * ncols
y1 = y0 + dy * nrows

plt.imshow(elevation, cmap='gist_earth', extent=[x0, x1, y1, y0])
plt.show()

from PIL import Image
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
fig = plt.figure()
ax = Axes3D(fig)

img = Image.open('E:/Pythoncode/读取地理信息/无标题.tif')
xx=[]
yy=[]
colall=[]
x = img.size[0]
y = img.size[1]
for i in range(x):
 for j in range(y):
 
 r = hex(img.getpixel((i, j))[0])[2:]
 b = hex(img.getpixel((i, j))[1])[2:]
 g = hex(img.getpixel((i, j))[2])[2:]
 
 if len(r) == 1:
 r = '0' + r
 if len(b) == 1:
 b = '0' + b
 if len(g) == 1:
 g = '0' + g
 col = '#' + r + b + g
 colall.append(col)
 xx.append(x0 + dx * i)
 yy.append(y0 + dy * j)
 # col = '#FF00FF'
ax.scatter(xx, yy, 5, c=colall, alpha=0.5)
plt.show()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python笔记(2)
Oct 24 Python
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
Python语言实现机器学习的K-近邻算法
Jun 11 Python
Python标准库06之子进程 (subprocess包) 详解
Dec 07 Python
python 实现登录网页的操作方法
May 11 Python
使用pytorch进行图像的顺序读取方法
Jul 27 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
python中class的定义及使用教程
Sep 18 Python
python requests.get带header
May 05 Python
python实现mean-shift聚类算法
Jun 10 Python
对PyTorch中inplace字段的全面理解
May 22 Python
Python基本的内置数据类型及使用方法
Apr 13 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 #Python
python3利用Axes3D库画3D模型图
Mar 25 #Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 #Python
Django用数据库表反向生成models类知识点详解
Mar 25 #Python
Python动态强类型解释型语言原理解析
Mar 25 #Python
python应用Axes3D绘图(批量梯度下降算法)
Mar 25 #Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
Mar 24 #Python
You might like
实现“上一页”和“下一页按钮
2006/10/09 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
python解析中国天气网的天气数据
2014/03/21 Python
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
Python正则表达式学习小例子
2020/03/03 Python
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
初中生学习的自我评价
2013/11/14 职场文书
办公室内勤工作职责
2013/12/11 职场文书
企业员工集体活动方案
2014/08/17 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
高三英语复习计划
2015/01/19 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
深入理解go slice结构
2021/09/15 Golang