我有一个 NetCDF 文件,其中包含一个具有精度/比例 == 7/2 的浮点值的变量,即可能的值从 -99999.99 到 99999.99。
当我从 NetCDF 变量中取出一部分值并在调试器中查看它们时,我发现我现在在数组中拥有的值比我在原始 NetCDF 中看到的值具有更高的精度/比例。例如,当我查看 ToosUI/ncdump 查看器中的值时,它们显示为“-99999.99”或“12.45”,但当我查看切片数组中的值时,它们看起来像“-99999.9921875”(更大的比例长度)。因此,如果我使用“-99999.99”作为预期值来指示丢失的数据点,那么我将无法与被拉入切片数组的内容匹配,因为这些值具有更大的比例长度和额外的数字scale 不仅仅是填充的零。
例如,如果我在 NetCDF 数据集中的一个点上执行 ncdump,我会看到这一点:
Variable: precipitation(0:0:1, 40:40:1, 150:150:1)
float precipitation(time=1348, lat=180, lon=360);
:units = "mm/month";
:long_name = "precipitation totals";
data:
{
{
{-99999.99}
}
}
但是,如果我从变量中获取一部分数据,如下所示:
value = precipitationVariable[0:1:1, 40:41:1, 150:151:1]
然后我在调试器(Eclipse/PyDev)中看到它是这样的:
value == ndarray: [[[-99999.9921875]]]
因此,我读入 Numpy 数组的 NetCDF 数据集值似乎没有以与 NetCDF 文件中的原始值相同的精度/比例被读取。或者也许 NetCDF 中的值实际上与我在阅读它们时看到的相同,但是由于 ncdump 程序本身的一些格式设置,通过 ncdump 向我显示的内容被截断。
任何人都可以就这里发生的事情提出建议吗?在此先感谢您的帮助。
顺便说一句,我正在 Windows XP 机器上使用 Python 2.7.3 开发此代码,并使用此处提供的 NetCDF4 API 的 Python 模块:https ://code.google.com/p/netcdf4-python/