使用gd更新tif

2024-04-19 23:53:18 发布

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

我有一个geotif,想更新一个像素/单元格的值。保存此更改的最佳方法(资源安全)是什么? 我必须使用WriteArray()函数还是有更好的方法来更新相同的tif?在

ds = gdal.Open("test.tif")
data = ds.ReadAsArray()

data[0][0] = 1

Tags: 方法函数testdatads像素资源open
1条回答
网友
1楼 · 发布于 2024-04-19 23:53:18

如果使用选项GA_Update打开数据集,而不是使用GA_ReadOnly,则可以直接更新它。还要记住,ReadAsArray()返回一个numpy ndarray,必须用data[0, 0]代替data[0][0]来处理。在

ds = gdal.Open("test.tif", GA_Update)
data = ds.ReadAsArray()

data[0, 0] = 1

ds.GetRasterBand(1).WriteArray(data)

# close the dataset to flush it to disk
ds = None

如果你的图像有一个波段,这个代码可以工作。如果它有多个波段,比如说5,ReadAsArray()将返回一个三维数组,您必须遍历这些带区来编写它们。在

^{pr2}$

相关问题 更多 >