gpt4 book ai didi

python - 数据值超出使用 cdo daysum 的有效范围

转载 作者:行者123 更新时间:2023-12-04 18:42:35 27 4
gpt4 key购买 nike

我有一个 ERA5 nc 文件,记录了从 3 月到 10 月的每小时降水量,时间跨度为 30 年。数据是从本地时间午夜到中午(所以 UTC 时区的凌晨 4 点到下午 4 点)。我需要找到每个像素直到中午的每日降水量。我以前用过python

daily_precipitation = ERA5.tp.resample(time='24H').sum('time')*1000
但是十月和三月之间的日子也被总结出来了,我不需要那个。
当我使用 cdo daysum
cdo daysum precip_hourly.nc precip_sum.nc
我收到一个错误:
Warning: Some data values (min=-32766 max=52989) are outside the valid range (-32768 - 32767) of the used output precision!
Use the CDO option -b F32 or -b F64 to increase the output precision.
cdf_put_vara_double: name=tp type=NC_SHORT minval=-32766.000000 maxval=52989.000000
我该如何克服这个错误,实际上出了什么问题?

最佳答案

答案在错误消息中(CDO 试图提供帮助),您需要将文件从 2 字节压缩整数转换为浮点数

 cdo -b f32 daysum in.nc out.nc
许多像 ecmwf 这样的中心会打包他们的数据。这意味着字段存储为整数(2 字节),然后对其进行缩放并添加偏移量以获得原始字段。如果您尝试查看元数据
 ncdump -h file.nc 
您将在元数据中看到这些偏移和比例因子。问题是当您组合具有不同打包因素的文件时,cdo 不知道该怎么做。它不是自动解包,而是强制您手动指定它,因为您必须选择是单精度还是 double (4 或 8 个字节)。显然,文件大小将因此增加一倍或四倍。

关于python - 数据值超出使用 cdo daysum 的有效范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70989227/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com