我有一个带有标准浮点字段的大型 netcdf 文件,该字段仅包含 0.0 或 1.0。我想从命令行将它转换为字节类型以节省一些空间,并且也更容易在数组中读取到 fortran 中的字节类型。
我尝试使用 ncap
ncap -s 'fire=byte(fire)' CAMS_2003-2017_frp_mask2_africa_zip.nc test.nc
但它似乎只是将所有字段归零。我在源文件上使用 zip_6 netcdf4 压缩,我不确定这是否会使事情复杂化?
更新:我发现 ncap2 适用于字节
ncap2 -s 'fire=byte(fire)' CAMS_2003-2017_frp_mask2_africa_zip.nc test.nc
但我不明白为什么两者不同?这可能是内存问题,因为在尝试转换为“int”而不是“byte”时,ncap 和 ncap2 都因内存分配失败。