微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 xarray 绘制 geotiff 文件?

如何解决如何使用 xarray 绘制 geotiff 文件?

我从 Google Earth Engine 下载了一些数据。数据如下所示:

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

da

enter image description here

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

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

enter image description here

解决方法

xarray 有一个相当广泛的 matplotlib 后端,检查不同绘图选项的 documentation

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

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

最后一件事,plot.imshow 需要一个 2d 数组,而您的数据集似乎有一个只有一个“层”的第三维 band。您可以在 squeezewhere 之前使用 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")

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。