我正在尝试在存储为 tif 的卫星衍生栅格上运行阈值算法。算法中正在考虑出现在场景边界上的无数据值 (-3.40282306e+38) 并导致不良行为。我正在寻找一种在运行阈值算法之前删除所有没有数据值的行/列的方法。
我试图将所有没有数据值的单元格设置为 np.nan 然后删除它们,但我没有得到我正在寻找的结果。
我的代码:
import numpy as np
from skimage import filters
from skimage import exposure
from skimage.io import imread, show
from skimage.filters import try_all_threshold
no_data_value = -3.40282306e+38
ndwi = imread(<'my.tif'>)
ndwi[ndwi == no_data_value] = np.nan
ndwi = ndwi[~np.isnan(ndwi).any(axis=1)]
val = filters.threshold_otsu(ndwi)