我正在尝试从哨兵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)
任何帮助将不胜感激。
谢谢
rasterio
或skimage
导入图像的方式上,而是在显示图像的方式上。我想您正在使用未转换为分贝dB
标度的校准SAR图像。这就是问题,您的数据的动态范围。 这里的问题是,默认情况下,根据光栅直方图中的值分布,色带不会处于拉伸状态。在QGIS
,SNAP
或许多其他与EO相关的软件中,颜色分布与直方图匹配以产生适当的可视化效果。
Solution:您可以在代码中做到这一点,或者只是将反向散射值转换为分贝(这是处理SAR数据时非常常见的过程)。可以在EO软件中完成转换,也可以直接在导入的图像中执行以下转换:
srcdB = 10*np.log10(src)
完成后,您可以正确显示图像:
import rasterio from rasterio.plot import show 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