将栅格单元格设置为零以在 Rasterio 中没有数据

Setting raster cells equal to zero to no data in Rasterio

给定一个随机光栅 tif 文件,我想使用 Python/rasterio 将所有值为 0 的单元格设置为 'no data'。我似乎找不到关于这个简单操作的文档。

import rasterio

src = rasterio.open('some_grid.tif')
...........

使用 R 的光栅包,我对它的了解程度更高,我会像这样执行此操作:

library(raster)

rast <- raster('some_grid.tif')
rast[rast == 0] <- NA

Python 中的语法类似,首先将 tif 文件读入一个 numpy 数组。 array==0 生成一个布尔数组,然后可以将其用作将所需值设置为 NAN 的索引掩码。

import rasterio
import numpy as np

with rasterio.open('some_grid.tif') as src:
    array = src.read(1)

array[array==0] = np.nan