在 Jupyter Notebook 中使用 rioXarray 时出错

问题描述

我正在尝试学习地球实验室地球分析 Python 课程。最近从使用 Rasterio 到 RioXArray 的变化。 我正在使用与 Rasterio 完美配合的教程提供的完全相同的数据,但是当尝试使用教程中指示的确切方法打开相同的数据时,它失败并给出与设置错误变量相关的错误

rioxarray.open_Rasterio(datapath)

链接tutorial

---------------------------------------------------------------------------

AttributeError Traceback(最近一次调用最后一次) ~/anaconda3/envs/myenv/lib/python3.8/site-packages/xarray/core/common.py in setattr(self,name,value) 267尝试: --> 268 object.setattr(self,value) 269 除了 AttributeError 为 e:

AttributeError: 'DataArray' 对象没有属性 '_file_obj'

上述异常是以下异常的直接原因:

AttributeError Traceback(最近一次调用最后一次) 在 ----> 1 rxr.open_Rasterio(数据路径)

~/anaconda3/envs/myenv/lib/python3.8/site-packages/rioxarray/_io.py in open_Rasterio(filename,parse_coordinates,chunks,cache,lock,masked,mask_and_scale,variable,group,default_name,* *open_kwargs) 866 867 #使文件关闭 --> 868 结果._file_obj = 经理 869 870返回结果

~/anaconda3/envs/myenv/lib/python3.8/site-packages/xarray/core/common.py in setattr(self,value) 第274话 275 加薪 --> 276 引发 AttributeError( 277“无法在 %r 对象上设置属性 %r。使用 setitem 样式” 278“赋值(例如,ds['name'] = ...)而不是赋值变量。”

AttributeError: 无法在“DataArray”对象上设置属性“_file_obj”。使用 setitem 样式分配(例如,ds['name'] = ...)而不是分配变量。

enter image description here

解决方法

此错误是由于 xarray 0.17 中的更改造成的。 rioxarray 0.3.1 已更新以解决此问题。请参阅:https://github.com/corteva/rioxarray/releases/tag/0.3.1