[python]gdal安装后测试代码

代码:

# -*- coding: utf-8 -*-

import matplotlib.pylab as plt  # 画图模块
import numpy as np
from matplotlib import cm
from matplotlib.colors import LightSource
from osgeo import gdal

raster_path = r'AP_05726_FBS_F0680_RT1.dem.tif'
dataset = gdal.Open(raster_path)
adfGeoTransform = dataset.GetGeoTransform()  # 获取投影信息
band = dataset.GetRasterBand(1)  # 用gdal去读写你的数据,当然dem只有一个波段

nrows = dataset.RasterXSize
ncols = dataset.RasterYSize  # 这两个行就是读取数据的行列数

# 数据的平面四至
lonmin = adfGeoTransform[0]
latmin = adfGeoTransform[3]
lonmax = adfGeoTransform[0] + nrows * adfGeoTransform[1] + ncols * adfGeoTransform[2]
latmax = adfGeoTransform[3] + nrows * adfGeoTransform[4] + ncols * adfGeoTransform[5]

x = np.linspace(lonmin, lonmax, ncols)
y = np.linspace(latmin, latmax, nrows)

# 将数据的x,y,z化作numpy矩阵
lon, lat = np.meshgrid(x, y)
elevation = band.ReadAsArray(0, 0, nrows, ncols)
# 限定一个范围
region = np.s_[10:400, 10:400]
lon, lat, elevation = lon[region], lat[region], elevation[region]

fig, ax = plt.subplots(subplot_kw=dict(projection='3d'), figsize=(12, 10))
ls = LightSource(270, 60)  # 设置你可视化数据的色带
rgb = ls.shade(elevation,
               cmap=cm.gist_earth,  # 设置颜色映射
               vert_exag=0.1,
               blend_mode='soft')
surf = ax.plot_surface(lon, lat, elevation,
                       rstride=1,  # 指定行的跨度
                       cstride=1,  # 指定列的跨度
                       facecolors=rgb,
                       linewidth=0,
                       antialiased=False, shade=False)
# 设置标题
plt.title("Python-gdal DEM show ", fontsize='large', fontweight='bold', color='#6666FF')
# fig.colorbar(surf, shrink=0.5, aspect=5)  # shrink越小,表示colorbar越小
plt.show()  # 最后渲染出2.5维图

测试结果:

更多测试代码:https://gitee.com/fungiser/python-gdal-test

相关推荐

  1. 代码审计中的安全测试方法

    2024-07-21 03:52:04       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 03:52:04       64 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 03:52:04       67 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 03:52:04       54 阅读
  4. Python语言-面向对象

    2024-07-21 03:52:04       66 阅读

热门阅读

  1. 【C++】位运算与相关算法问题

    2024-07-21 03:52:04       24 阅读
  2. Vue Router的路由正则表达式

    2024-07-21 03:52:04       21 阅读
  3. C++编程:实现一个跨平台安全的定时器Timer模块

    2024-07-21 03:52:04       22 阅读
  4. CSS中object-fit: cover;

    2024-07-21 03:52:04       22 阅读
  5. Git使用

    2024-07-21 03:52:04       21 阅读
  6. 推荐收藏!Python Flask 项目生产环境部署指南

    2024-07-21 03:52:04       24 阅读
  7. 对androidTestDebug 产物进行重新签名

    2024-07-21 03:52:04       21 阅读
  8. Hi6278

    Hi6278

    2024-07-21 03:52:04      23 阅读
  9. 安装archlinux

    2024-07-21 03:52:04       20 阅读
  10. 如何通过结构体来观察内存对齐和填充

    2024-07-21 03:52:04       21 阅读