【问题标题】:How to plot geotiff files with xarray?如何用 xarray 绘制 geotiff 文件?
【发布时间】:2021-02-03 18:41:06
【问题描述】:
我从 Google 地球引擎下载了一些数据。数据如下所示:
import xarray as xr
da = xr.open_rasterio('myFile.tiff')
da
我可以显示图像,但我想避免考虑等于零的值。
f,ax = plt.subplots()
da.plot(ax=ax, cmap='hot_r')
【问题讨论】:
标签:
python
python-xarray
geotiff
【解决方案1】:
xarray 有一个相当广泛的matplotlib 后端,请查看不同绘图选项上的documentation。
要回答您的问题,您可以使用 DataArray 的 plot.imshow 方法来可视化您的栅格(您还可以在此处传递颜色图、范围、颜色条等的关键字......)。
要排除等于(或等于及以下)0 的值,只需在绘图前运行 where,将所有不符合指定条件的值设置为 Nan,从而排除绘图。请注意,这会改变数据类型。
最后一件事,plot.imshow 需要一个 2d 数组,而您的数据集似乎有一个只有一个“层”的第三维 band。您可以在where 或plot.imshow 之前使用squeeze 轻松删除它。
这是一个例子:
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")