Tiff到数组

2024-09-24 22:33:08 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我在把Tiff文件转换成numpy数组时遇到了一些问题。 我有一个16位签名的光栅文件,我想把它转换成numpy数组。 我习惯了这本gdal libarary。在

import numpy
from osgeo import gdal
ds = gdal.Open("C:/.../dem.tif")
dem = numpy.array(ds.GetRasterBand(1).ReadAsArray())

乍一看,所有的转换都很好,但我将python中的结果与GIS软件中的结果进行了比较,得到了不同的结果。在

Python结果

Python result

Arcmap结果

Arcmap result

我发现numpy数组中有许多值低于91和278(实际的最小值和最大值),它们不应该存在。在


Tags: 文件fromimportnumpy光栅ds数组open
1条回答
网友
1楼 · 发布于 2024-09-24 22:33:08

GDAL已经返回了一个Numpy数组,默认情况下,将其包装在np.array中创建该数组的副本。这是不必要的性能损失。只需使用:

dem = ds.GetRasterBand(1).ReadAsArray()

或者如果是单波段光栅,只需:

^{pr2}$

重新统计,你确定ArcMap显示绝对高/低值吗?我知道QGIS通常从数据集的样本中提取统计数据(为了性能),有时根据设置使用百分位数(例如1%,99%)。在

编辑:顺便问一下,这是一个公共数据集吗?像SRTM瓷砖?如果你列出来源可能会有帮助。在

相关问题 更多 >