1

我正在尝试从 sentinel-1 打开 SAR 图像。我可以在 QGIS 中查看 tiff 文件,所以我知道数据在那里,但是当我在 python 中打开并查看/显示它时,我可以用来打开数据的所有模块都会产生一个 NaN 区域,基本上是在暗示图像中没有数据。可视化图像会产生一个完全黑色的图像,但形状是正确的。

这是我在图像中读取的代码:

img = skimage.io.imread('NewData.tif', as_gray = True, plugin = 'tifffile')
with rio.open(r'NewData.tif') as src:
    img2 = src.read()
    imgMeta = src.profile

print(img)

skimage.io.imshow(img)

任何帮助,将不胜感激。

谢谢你

4

1 回答 1

1

问题不在途中rasterioskimage正在导入图像,而是在显示的方式上。我假设您正在使用未转换为分贝dB刻度的校准 SAR 图像。这是问题所在,数据的动态范围。

这里的问题是,默认情况下,色带不会根据光栅直方图中的值分布进行拉伸。在QGISSNAP许多其他与 EO 相关的软件中,颜色分布与直方图匹配以产生适当的可视化。

解决方案:要么在代码中实现这一点,要么只是将反向散射值转换为分贝(这是处理 SAR 数据时非常常见的过程,并且会产生几乎正常的数据分布)。转换可以在 EO 软件中完成,或者更直接在您导入的图像中完成:

srcdB = 10*np.log10(src)

完成后,您可以正确显示图像:

import rasterio
from rasterio.plot import show
import numpy as np

with rio.open(r'/.../S1B_IW_GRDH_1SDV_20190319T161451_20190319T161520_015425_01CE3C_A401_Cal.tif') as src:
    img2 = src.read()
    imgMeta = src.profile
    srcdB = 10*np.log10(src) # to decibel
    show(srcdB, cmap='gray') # show using rasterio

在此处输入图像描述

于 2019-10-25T08:35:57.663 回答