首页 > 解决方案 > 在 Rasterio 中将栅格像元设置为零或无数据

问题描述

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

import rasterio

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

使用 R 的 raster 包,我的文化程度更高,我会像这样执行这个操作:

library(raster)

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

标签: pythonrasterio

解决方案


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

推荐阅读