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的垃圾回收机制
Dec 17 Python
详解Python安装scrapy的正确姿势
Jun 26 Python
Python unittest 简单实现参数化的方法
Nov 30 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
使用django实现一个代码发布系统
Jul 18 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
Aug 30 Python
浅谈Django2.0 加xadmin踩的坑
Nov 15 Python
解决django model修改添加字段报错的问题
Nov 18 Python
python实现画出e指数函数的图像
Nov 21 Python
在win64上使用bypy进行百度网盘文件上传功能
Jan 02 Python
Django修改app名称和数据表迁移方案实现
Sep 17 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中实现简单的ACL 完结篇
2011/09/07 PHP
destoon常用的安全设置概述
2014/06/21 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
在JavaScript中使用timer示例
2014/05/08 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
[02:35]DOTA2英雄基础教程 狙击手
2014/01/14 DOTA
Python中的变量和作用域详解
2016/07/13 Python
Python常用库推荐
2016/12/04 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
Django 多环境配置详解
2019/05/14 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
Python命令行click参数用法解析
2019/12/19 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
给同学的道歉信
2014/01/16 职场文书
蛋糕店的商业计划书范文
2014/01/27 职场文书
残疾人小组计划书
2014/04/27 职场文书
五一口号
2014/06/19 职场文书
怎样写离婚协议书
2014/09/10 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书