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的ORM框架SQLObject入门实例
Apr 28 Python
Python获取SQLite查询结果表列名的方法
Jun 21 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
Sep 30 Python
python实现感知器
Dec 19 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
Jul 20 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
Feb 12 Python
对Python中画图时候的线类型详解
Jul 07 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
Python如何用filter函数筛选数据
Mar 05 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
Jul 15 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
神盾加密解密教程(三)PHP 神盾解密工具
2014/06/08 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
php操作mongoDB实例分析
2014/12/29 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
基于javascript实现的快速排序
2016/12/02 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
python生成lmdb格式的文件实例
2018/11/08 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
视光学专业自荐信
2014/06/24 职场文书
上课不认真检讨书
2014/09/17 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
php实现自动生成验证码的实例讲解
2021/11/17 PHP