ArcGIS for Python学习--GDAL实践应用

GDAL入门学习

1 GDAL介绍及应用1

1.1 介绍

GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式,并且提供了一系列命令行工具来进行数据转换和处理。此外,GDAL还包括OGR,这是一个提供对矢量数据支持的分支。GDAL使用抽象数据模型来解析它所支持的数据格式,这些模型包括数据集、坐标系统、仿射地理坐标转换、大地控制点、元数据、栅格波段、颜色表、子数据集域、图像结构域和XML域等。有很多著名的GIS类产品都使用了GDAL/OGR库,例如ESRI的Arcgis。

1.2 应用

1.GDAL提供了一系列命令行工具,用于进行矢量和栅格数据转换和处理。这些工具可以方便地处理地理空间数据,如重投影、裁剪、格式转换等。
2.gdal常用于批量处理栅格和矢量数据。在科研中和生产中,有几十或者上百幅影像需要处理,比如对长时序的栅格数据进行裁剪,并计算每幅影像的均值,或者进行栅格计算。即使使用Arcgis的批处理功能进行这些操作也不太方便,但是使用gdal就很方便,只需要几行代码就可以实现。
GDAL官网地址https://gdal.org/
GDAL官网python-api文档 https://gdal.org/api/index.html#python-api

2 GDAL安装2

在这里插入图片描述

2.1 安装numpy、six、setuptools

pip install numpy six setuptools

2.2 安装GDAL

2.2.1 命令行窗口在线安装

使用pip命令进行在线安装

pip install gdal #如需要指定路径,可在库名后面加上存储路径。例如pip install gdal D:\Python\
2.2.2 离线安装

下载安装包:前往GDAL官网或其他可靠来源,下载与你的Python版本和系统类型相匹配的GDAL文件包。文件包通常是.whl格式的。

#D:\GDAL-3.8.4-cp39-cp39-win_amd64.wh为存放路径
pip install D:\GDAL-3.8.4-cp39-cp39-win_amd64.wh

gitHub地址:https://github.com/cgohlke/geospatial-wheels/releases/tag/v2024.2.18

** 百度网盘:**下载了windows64位python3.9、3.10版本的 https://pan.baidu.com/s/1n0QLw5KunDy3sOtdHg9Kxg 提取码:1apd

3 入门案例3

3.1 读取TIF影像

#导入gdal,注意导入的名称
import matplotlib
matplotlib.use('TkAgg')  # 选择合适的后端,如Agg

import matplotlib.pyplot as plt # 画图模块
from osgeo import gdal  # 或者直接用import gdal

# 启用异常处理
gdal.UseExceptions()

raster_path = r'D:\mapProjects\projects\Sentinel2landcover\49Q_20210101-20220101.tif'

# 读取影像
dataset = gdal.Open(raster_path)
# 打开波段1(注意:用索引1,而不是0,来获取第一个波段)
band = dataset.GetRasterBand(1)
elevation = band.ReadAsArray()
print(elevation.shape)  # 行列数
print(elevation)  # 行列矩阵
# cmap='gist_earth'以gist_earth色带形式展示
plt.imshow(elevation, cmap='gist_earth')
plt.show()

注:⑴如果运行程序报错AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘. Did you mean: ‘FigureCanv,可以加上以下代码:

import matplotlib
matplotlib.use('TkAgg')  # 选择合适的后端,如Agg

可参考https://blog.csdn.net/qq_44154915/article/details/135418244
⑵如果报错FutureWarning: Neither gdal.UseExceptions() nor gdal.DontUseExceptions() has been explicitly called. In GDAL 4.0, exceptions will be enabled by default,可以加上以下代码:

# 启用异常处理
gdal.UseExceptions()

  1. 引用原文地址:https://blog.csdn.net/weixin_43887139/article/details/136167981 ↩︎

  2. 引用原文地址:https://blog.51cto.com/u_16175513/9456446 ↩︎

  3. 引用原文地址:https://malagis.com/GIS%E6%95%99%E7%A8%8B-%E5%9F%BA%E4%BA%8EPython-GDAL%E7%9A%84%E5%AE%9E%E8%B7%B5%E6%80%BB%E7%BB%93.html#google_vignette ↩︎

  • 21
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值