使用逻辑可视化和过滤大型 NetCDF 文件
Visualize and filter large NetCDF file using logic
我在 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。
xr.where() 将始终 return 与您提供的相同大小的数组。你试过想象它吗?它应该将条件为假的所有索引设置为 NA。您也可以手动将其设置为您想要的任何值:
RZSC.where(Treecover > 1000, Treecover, np.NaN)
我在 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。
xr.where() 将始终 return 与您提供的相同大小的数组。你试过想象它吗?它应该将条件为假的所有索引设置为 NA。您也可以手动将其设置为您想要的任何值:
RZSC.where(Treecover > 1000, Treecover, np.NaN)