【问题标题】:Visualising geospatial .tiff images with Rasterio使用 Rasterio 可视化地理空间 .tiff 图像
【发布时间】:2020-09-13 16:35:45
【问题描述】:

我正在尝试使用 Rasterio 在 Jupiter Notebook 中可视化 .tiff 图像。我是一家农业科技公司的初级数据科学家,我们刚刚获得了 .tiff 格式的两个农场的 8 个数据层(NDVI 等)的访问权限。

这是一张图片的元数据:

{'driver': 'GTiff', 'dtype': 'float32', 'nodata': -125125.0, 'width': 72, 'height': 87, 'count': 1, 'crs': CRS.from_epsg(32734), 'transform': Affine(20.0, 0.0, 364480.0,
       0.0, -20.0, 6292100.0), 'blockxsize': 256, 'blockysize': 256, 'tiled': True, 'compress': 'lzw', 'interleave': 'band'}

当我运行以下命令时:

ax = plt.figure(figsize=(15,10))

pic = rasterio.open('/content20180109_biow_Meerlust.tif','r',driver='GTiff',width=72,
      height=87,count=1, nodata=-125125.0)

show(pic,with_bounds=False)

我得到一个非常像素化的图像:

如何在不像素化的情况下可视化图像?由于我刚开始涉足农艺领域,因此我对这些 .tiff 图像背后的阵列调整的了解有限。接受任何建议。

我的目标是使用 Streamlit 创建一个 Web 应用程序,我可以在其中叠加这些图像并创建一个关于图层如何随时间变化的短视频。

【问题讨论】:

    标签: python jupyter-notebook visualization geospatial rasterio


    【解决方案1】:

    这里有几个解决方案可能有助于清晰地显示多波段栅格。在这两个示例中,raster 是具有多个频段的 rasterio.DatasetReader (indexed at 1)。

    1.单张图片

    要在单个 2D 平面中查看所有图层,必须将波段连接起来:

    import numpy as np
    import matplotlib.pyplot as plt
    
    bands = []
    for i in range(raster.count):
        bands.append(raster.read(i+1, out_dtype=np.intc))
    
    plt.title("Full Color Raster")
    plt.imshow(np.array(bands))
    plt.show()
    

    不幸的是,由于 pyplot 的 imshow() 函数的限制,此方法仅适用于几层(传统上为 RGB)。随意使用np.intc以外的数据类型。


    2.分别可视化图层

    earthpy.plot 模块有几个用于可视化栅格图层的简​​洁选项,包括方便的plot_bands()

    import numpy as np
    import earthpy.plot as ep
    
    bands = []
    
    # Read the raster's bands to an array
    for i in range(raster.count):
        bands.append(raster.read((i+1), out_dtype=raster.dtypes[i]))
    
    # Convert to an iterable np.ndarray and plot in a 3-column grid
    ep.plot_bands(np.array(bands), cols=3) 
    


    真的希望这会有所帮助! 这是我的第一个 Stack Overflow 回复,如果有什么重要的地方我遗漏了,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多