重新网格化nc文件:Nctoolkit to_latlon错误

问题描述

我很抱歉,因为这个问题已经被问过了,而且因为这是我第一次在这里发帖,所以我只是从netCDF4开始,这个问题对你们中的许多人来说可能很简单。我想从0.25到0.125度重新定义nc文件。 nc文件中的纬度为51.3至53.8,经度为6.69至11.44。我知道如何将CDO用作外部程序,但我想从Python中退出(我在Windows 10上使用Anaconda)。

我尝试如下使用Robert Wilson的nctoolkit:

import nctoolkit as nc
data=nc.open_data('my_data.nc')
data.to_latlon(lon=[6.69,11.44],lat=[51.3,51.8],res=[0.125,0.125])

但是,出现以下错误

runfile('C:/Users/sand_jv/Desktop/NetCDF4/nctoolkit_test.py',wdir ='C:/ Users / sand_jv / Desktop / NetCDF4')

回溯(最近通话最近):

中的文件“ C:\ Users \ sand_jv \ Desktop \ NetCDF4 \ nctoolkit_test.py”,第17行

data.to_latlon(lon = [6.69,11.44],lat = [51.3,53.8],res = [0.25,0.25])

to_latlon中的文件“ C:\ Users \ sand_jv \ Anaconda3 \ lib \ site-packages \ nctoolkit \ to_lonlat.py”,第102行

self.regrid(grid = grid_file,method = method)

文件“ C:\ Users \ sand_jv \ Anaconda3 \ lib \ site-packages \ nctoolkit \ regrid.py”,第108行,处于重新注册状态

weights_nc = run_cdo(cdo_command,target = weights_nc)

run_cdo中的文件“ C:\ Users \ sand_jv \ Anaconda3 \ lib \ site-packages \ nctoolkit \ runthis.py”,第319行

提高ValueError(f“ {命令}失败。检查输出”)

ValueError:cdo -L -genbil,C:\ Users \ sand_jv \ AppData \ Local \ Temp \ tmpdeeh8vl my_data.nc

C:\ Users \ sand_jv \ AppData \ Local \ Temp \ tmpfjklhejm.nc不成功。检查输出

非常感谢您使用nctoolkit或您可以提供的任何其他替代解决方案来解决此问题。预先感谢。

解决方法

很遗憾,如软件包网站上所述,此软件包在Windows上不起作用,因为需要从Windows上的cygwin调用CDO。由于相同的原因,CDO的python绑定软件包(在pypi上为cdo)也无法在Windows上运行,并且基于他们的推理,没有希望很快在Windows上运行它。所以我只能建议尝试使用Linux或xarray等进行重新网格化。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...