Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用质量守恒重新填充netcdf文件_Python_Numpy_Netcdf_Python Xarray - Fatal编程技术网

Python 使用质量守恒重新填充netcdf文件

Python 使用质量守恒重新填充netcdf文件,python,numpy,netcdf,python-xarray,Python,Numpy,Netcdf,Python Xarray,我试图用二氧化碳排放数据将一个netcdf文件重新划分为一个更粗的网格,覆盖相同的区域和12个月的月平均值。数据有3个维度(时间、纬度、经度)。 为了检查质量守恒是否实现,我尝试简单地将新旧netcdf文件的变量汇总如下: import xarray as xr import numpy as np ds_original = xr.open_dataset('original.nc') ds_regrid = xr.open_dataset('regrid.nc') #selecti

我试图用二氧化碳排放数据将一个netcdf文件重新划分为一个更粗的网格,覆盖相同的区域和12个月的月平均值。数据有3个维度(时间、纬度、经度)。 为了检查质量守恒是否实现,我尝试简单地将新旧netcdf文件的变量汇总如下:

import xarray as xr
import numpy as np


ds_original = xr.open_dataset('original.nc')

ds_regrid = xr.open_dataset('regrid.nc')


#selecting emissions from first month of ncfiles
ds_original = ds_original[dict(time=slice(0, 1))]
emis_original = ds_original.variables['CO2'][0]

ds_regrid = ds_regrid[dict(time=slice(0, 1))]
emis_regrid = ds_regrid.variables['CO2'][0]

print(np.nansum(emis_original.variables))
print(np.nansum(emis_regrid.variables))
输出值非常不同,32表示重新归档,3300表示原始文件。
有人知道我哪里出错了吗?我很感激每一个暗示

您需要提供更多详细信息。单位是什么?你是怎么后悔的?您似乎在说代码出错了,但没有显示代码谢谢您的回复,我使用cdo进行重新填充,这是我直接从终端运行的。命令是“cdo remapcon,new_grid original.nc reglid.nc”,应该提供质量守恒,但我想检查一下。单位为g CO2/m²。我认为代码很好,但是我总结排放量的方法“np.nansum(emis.variables)”可能是错误的。看起来你需要乘以面积