如何使用 python 比较两个 netcdf 文件中缺失的数据?

How to compare missing data in two netcdf files using python?

我有两个 netcdf 文件:file1 (cru pre) 和 file2 (chirps precip)。两个文件都已重新映射到同一网格,包含月度数据并涵盖同一时间段 (1981-2017)。

如何使用python循环遍历文件并实现以下逻辑: 对于 file1 中的每个数据点 如果该值不丢失且相应的file2值不丢失 然后保留 file1 值和 file2 值 否则视为缺失

我基本上想要得到一个 output_file1,它只包含 file2 不丢失的点的 file1 数据和一个 output_file2,它只包含 file1 不丢失的点的 file2 数据。在这两个文件中,我都将 missing_values 设置为 999。

我是 python 的新手,正在处理 NetCDF 文件,非常感谢任何指导。

您可以使用我的 nctoolkit 包 (https://nctoolkit.readthedocs.io/en/latest/) 通过几行代码解决这个问题。

要执行第一个文件,请尝试以下操作。

import nctoolkit as nc
# read in the data
ds1 = nc.open_data("file1.nc")
ds2 = nc.open_data("file2.nc")

# create a mask, where 1 is non-missing data, missing is missing
# change var to whatever the variable is named
ds2.assign(mask = lambda x: x.var == x.var, drop = True)
# multiply the first file by the masked file
ds1.multiply(ds2)
# save the output file
ds1.to_nc("file1_fixed.nc)

这将在每个时间步进行掩蔽。