准则/圆形问题:实际值可能与由于浮点数精度而没有声明的数据值略有不同。例如,如果无数据值为-9999,则可以在数据中找到-9999.00001。 多个无数据值:某些处理工具或数据集使用多个无数据值,但是在元数据中只有一个。 位深度转换:当数据在不同的位深度(例如32位至16位)之间转换时,无法稍微更改数据值。 数据压缩工件:Geotiffs中使用的压缩算法可以引入无数据值的略有变化。 不完整的元数据:处理数据后可能不正确或过时。
调查和修复:指出实际值:使用诸如GDAL之类的工具获取数据的统计数据和直方图:
gdalinfo -stats your_file.tif
检查多个无数据模式:查找可能是替代数据值的值群集。 采用基于公差的方法:处理时,将值“足够接近”的值与无数据值“无数据”:
import numpy as np
import rasterio
with rasterio.open('your_file.tif') as src: ``data = src.read(1) ``nodata = src.nodata ``mask = np.isclose(data, nodata, rtol=1e-5, atol=1e-8) ``data\[mask\] = nodata
将文件重写一个一致的没有数据值:创建一个新的Geotiff,并正确应用无数据值。 不幸的是,这种GIS数据质量问题之一需要对您的特定数据集进行动手研究才能完全解决。