【发布时间】:2020-06-09 16:59:43
【问题描述】:
我正在使用 xarray 包来加载和访问大型 GeoTIFF 文件 (>50GB) 的数据,它运行良好。
import xarray as xr
img = xr.open_rasterio("path/to/large_geo_tiff.tif")
pixel_value = img[0,1225, 4321]
print("The pixel value is: ", pixel_value.values.item())
但是,我想知道 xarray 是如何实际加载大型 GeoTIFF 文件的。显然它不会将整个文件加载到内存中,因为它不适合但会执行某种延迟加载。我只习惯 dask 和 Dask Arrays 将数据拆分成块,并通过将相应的块加载到内存中来轻松进行像素访问。 但是函数 open_rasterio 的签名如下所示
xarray.open_rasterio(filename, parse_coordinates=None, chunks=None, cache=None, lock=None)
由于我没有定义 chunks,所以 img 不应该被分块。所以我的问题是调用pixel_value = img[0,1225, 4321] 时会发生什么,xarray 怎么能这么快地访问给定位置的像素值?
我期待任何反馈。
【问题讨论】:
标签: python-xarray