我尝试通过xarray读取不同的NetCDF文件,但它只读取第一个文件。而第二个、第三个和更多的NetCDF文件被作为第一个文件读取,没有任何错误。有人知道如何解决这个问题吗?
### read files
## VI
VI_terra = xr.open_dataset(data_vi+"MOD13A1.006_500m_aid0001.nc")
VI_aqua = xr.open_dataset(data_vi+"MYD13A1.006_500m_aid0001.nc")
## LAI
LAI = xr.open_dataset(data_lai+"MCD15A2H.006_500m_aid0001.nc")
## ET
ET_terra = xr.open_dataset(data_et+"MOD16A2GF.006_500m_aid0001.nc")
ET_aqua = xr.open_dataset(data_et+"MYD16A2GF.006_500m_aid0001.nc")
## Surface temperature
Tsurf_terra = xr.open_dataset(data_tsurf+"MOD11A2.006_1km_aid0001.nc")
Tsurf_aqua = xr.open_dataset(data_tsurf+"MYD11A2.006_1km_aid0001.nc")但是LAI被误读为VI_terra:

而当我使用ncdump检查LAI时,文件本身没有问题(与VI不同):

发布于 2021-08-17 20:49:20
使用xr.open_dataset时,.nc文件在读取后仍保持打开状态。
最简单的解决方案是使用xr.load_dataset,它会在读取后自动关闭.nc文件。
如果您需要坚持使用xr.open_dataset,那么您可以将其放在with语句中,或者在完成时调用.close()。
https://stackoverflow.com/questions/61585233
复制相似问题