【616】安装 GDAL(rasterio)
参考:
Windows 电脑很容易,但是 Mac 很不好装(目前还没装上,可能是系统版本,可能是 python 版本)
Windows 版:
-
首先获取 python 版本
-
直接 cmd 上面输入 python,就会显示版本号,我的是 python 3.6
-
-
获取对应的 .whl 文件,http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal
- 选择对应的 python 版本以及电脑 64 位对应的版本,进行下载
-
-
最后只需要 cd 到对应的文件夹,进行安装即可
-
pip install GDAL‑3.1.4‑cp36‑cp36m‑win_amd64.whl
-
MacOS 版:
未完待续
虽然没装上 GDAL,不过找到了替代方案 rasterio,安装超级简单,直接通过 pip install rasterio 即可
相关功能说明:
-
数据读取:ds = rasterio.open
-
波段数目:ds.count
-
影像宽度:ds.width
-
影像高度:ds.height
-
地理范围:ds.bounds,可以获取四个顶点的经纬度
-
BoundingBox(left=121.5971892, bottom=31.2733359001, right=121.5989442, top=31.2750909001)
- ds.bounds.left
-
-
获取波段:band1 = ds.read(1), band2 = ds.read(2), band3 = ds.read(3), 获取第 一/二/三 个波段数据,跟GDAL一样索引从1开始,直接获得 numpy.ndarray 类型的二维数组表示,如果 read() 函数不加参数,则得到所有波段(第一个维度是波段,直接输入神经网络会有问题,一般是波段放在第三维)
-
ds.transform:返回一个 6 个值的 tuple。
-
Affine(2.7000000000043656e-06, 0.0, 121.5971892, 0.0, -2.6999999999988997e-06, 31.2750909001)
-
# transform[0]: 影像宽度方向上的分辨率(经度范围/像素个数),经度往右/东 变大,因此是正
-
# transform[1]: 旋转,0 表示上面为北方
-
# transform[2]: 左上角像素经度
-
# transform[3]: 旋转,0 表示上面为北方
-
# transform[4]: 影像高度方向上的分辨率(纬度范围/像素个数),纬度往下/南 变小,因此是负
-
# transform[5]: 左上角像素纬度
-
1234567
# 从左边的经度值推导出右边的经度值
ds.transform[
2
]
+
ds.transform[
0
]
*
ds.width
=
=
ds.bounds.right
# True
# 从上面的纬度值推导出下面的纬度值
ds.transform[
5
]
+
ds.transform[
4
]
*
ds.height
=
=
ds.bounds.bottom
# True
-
-
通过放射计算,可以直接计算指定像素对的经纬度信息,与下面的操作正好相反
-
123456789
# 左上角的经纬度
ds.transform
*
(
0
,
0
)
# (121.5971892, 31.2750909001)
# 右下角的经纬度
ds.transform
*
(ds.width, ds.height)
# (121.5989442, 31.2733359001)
-
-
ds.index(121.5989442, 31.2733359001):获取输入经纬度对应的图像像素对,可以用于矢量转栅格的相应计算
-
图像显示:
-
12345
# 可以直接显示 uint16 的图像(很多数据点超过255,不能直接显示)
# 其他正常的显示需要 uint8 的图像
from
rasterio.plot
import
show
show(ds)
-
posted on 2021-07-20 11:09 McDelfino 阅读(1220) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)