1
我有一个带有标准浮点字段的大型netcdf文件,它只包含0.0或1.0。我想从命令行将其转换为字节类型以节省一些空间,并且还可以使数组更容易在Fortran中读取字节类型。将netcdf文件中的浮点数转换为字节
我试图用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
但我不明白为什么这两个有什么区别?这可能是一个内存问题,因为ncap和ncap2在尝试转换为“int”而不是“byte”时会失败并返回内存分配。
你得到所有零,如果你投以'int'取代'byte'? – jhamman
有趣的是,使用int而不是字节会导致内存故障。但我发现这个字节与ncap2一起工作......不知道为什么行为不同,可能ncap也会遇到字节的内存问题? –
ncap2!= ncap。始终使用ncap2。 ncap已弃用。无法重现当前NCO在〜1度全局数据集中提到的内存故障。 –