我在NetCDF文件中有一个非常大的数据集。
RZSC = xr.open_dataset('/home/chandra/data/RZSC_250m_SA.nc')
RZSC = RZSC.Band1
RZSC
[Output]:
<xarray.DataArray 'Band1' (lat: 32093, lon: 20818)>
[668112074 values with dtype=float32]
Coordinates:
* lat (lat) float64 -58.36 -58.36 -58.35 -58.35 ... 13.71 13.71 13.71
* lon (lon) float64 -81.38 -81.37 -81.37 -81.37 ... -34.63 -34.63 -34.62
Attributes:
long_name: GDAL Band Number 1
grid_mapping: crs
########################
Treecover = xr.open_dataset('/home/chandra/data/Treecover_MOD44B_2000_250m_AMAZON.nc')
Treecover = Treecover.Band1
Treecover
[Output]:
<xarray.DataArray 'Band1' (lat: 32093, lon: 20818)>
[668112074 values with dtype=float64]
Coordinates:
* lat (lat) float64 -58.36 -58.36 -58.35 -58.35 ... 13.71 13.71 13.71
* lon (lon) float64 -81.38 -81.37 -81.37 -81.37 ... -34.63 -34.63 -34.62
Attributes:
long_name: GDAL Band Number 1
grid_mapping: crs
####
np.nanmax(Treecover[:,:])
[Output]: 85.0625
np.nanmin(Treecover[:,:])
[Output]: 0.0
我无法使用RZSC[:,:].where(Treecover[:,:] > 1000).shape
之类的任何命令来可视化数据集或过滤数据集,因为这很令人沮丧(因为输出为(32093, 20818)
,与原始数组大小相同)。
有人对此有任何建议吗? 我无法共享数据,因为netcdf文件的大小大于6 GB。
答案 0 :(得分:1)
xr.where()将始终返回您提供它的相同大小的数组。您是否尝试将其可视化?它应将条件为假的所有索引设置为NA。您也可以将其手动设置为所需的任何内容:
RZSC.where(Treecover > 1000, Treecover, np.NaN)