首页 > 解决方案 > 如何使用 xarray 绘制 geotiff 文件?

问题描述

我从谷歌地球引擎下载了一些数据。数据如下所示:

import xarray as xr
da = xr.open_rasterio('myFile.tiff')

da

在此处输入图像描述

我可以显示图像,但我想避免考虑等于零的值。

f,ax = plt.subplots()
da.plot(ax=ax, cmap='hot_r')

在此处输入图像描述

标签: pythonpython-xarraygeotiff

解决方案


xarray具有相当广泛的matplotlib后端,请查看有关不同绘图选项的文档。

要回答您的问题,您可以使用您的plot.imshow方法DataArray来可视化您的栅格(在那里您还可以传递颜色图、范围、颜色条等的关键字......)。

要排除等于(或等于及以下)的值0,只需where在绘图之前运行,将所有不符合指定条件的值设置为Nan并因此排除用于绘图。请注意,这将更改数据类型。

最后一件事,plot.imshow需要一个2d数组,并且您的数据集似乎有一个band只有一个“层”的第三维。squeeze您可以在之前where或之前轻松删除它plot.imshow

这是一个例子:

import xarray as xr

# test data
ds = xr.tutorial.load_dataset("rasm")

# replicate 3d data array
da = ds.isel(time=0).Tair.expand_dims({"band":1})

# exclude vals below or equal to 0, squeeze to 2d and plot
da.where(da>=0).squeeze().plot.imshow(cmap="hot_r")

在此处输入图像描述


推荐阅读