有没有办法使用文件对象(二进制流)或从netCDF4数据集对象创建(打开/加载)鸢尾花立方体?具体来说,我有一个通过URL提供的文件,但不是由OpenDAP服务器提供的;iris.load_cube()&friends失败了。我意识到Iris更喜欢延迟加载,因此使用URI而不是内存中的数据,但这并不总是可行的。对于普通的netCDF4Dataset对象,我可以执行以下操作:fromurllib.requestimporturlopenimportnetCDF4asncurl='https://crudata.uea.ac.uk/cru/data/temperature/HadCRUT.
我正在尝试处理来自非常大的netCDF文件(每个约400Gb)的数据。每个文件都有一些变量,都比系统内存大得多(例如180Gb与32GbRAM)。我正在尝试使用numpy和netCDF4-python通过一次复制一个切片并对该切片进行操作来对这些变量执行一些操作。不幸的是,读取每个切片需要很长时间,这会降低性能。例如,其中一个变量是形状为(500,500,450,300)的数组。我想对切片[:,:,0]进行操作,所以我执行以下操作:importnetCDF4asncf=nc.Dataset('myfile.ncdf','r+')myvar=f.variables['myvar']mys
我正在使用pupynere界面(linux)读取一堆netcdf文件。以下代码会导致mmap错误:importnumpyasnpimportos,globfrompupynereimportNetCDFFileasncalts=[]vals=[]path='coll_mip'filter='*.nc'forinfileinglob.glob(os.path.join(path,filter)):curData=nc(infile,'r')vals.append(curData.variables['O3.MIXING.RATIO'][:])alts.append(curData.var
我正在使用pupynere界面(linux)读取一堆netcdf文件。以下代码会导致mmap错误:importnumpyasnpimportos,globfrompupynereimportNetCDFFileasncalts=[]vals=[]path='coll_mip'filter='*.nc'forinfileinglob.glob(os.path.join(path,filter)):curData=nc(infile,'r')vals.append(curData.variables['O3.MIXING.RATIO'][:])alts.append(curData.var
如何确定我的系统中安装了哪个版本的netcdf库?有命令行吗?我尝试搜索“netcdf”,找到了一堆文件,但无法确定版本号。是否有命令来检查已安装的任何内容的版本?我在ubuntu上 最佳答案 netCDF为此提供了nc-config命令行工具。打印版本。nc-config--version要打印有关您拥有的netCDF构建的更多信息:nc-config--all 关于linux-检查库版本netcdflinux,我们在StackOverflow上找到一个类似的问题:
如何确定我的系统中安装了哪个版本的netcdf库?有命令行吗?我尝试搜索“netcdf”,找到了一堆文件,但无法确定版本号。是否有命令来检查已安装的任何内容的版本?我在ubuntu上 最佳答案 netCDF为此提供了nc-config命令行工具。打印版本。nc-config--version要打印有关您拥有的netCDF构建的更多信息:nc-config--all 关于linux-检查库版本netcdflinux,我们在StackOverflow上找到一个类似的问题:
假设您有一个文件example.nc,其中定义了90N、90S、180E、180W区域的风数据。无论如何我可以在linux中使用一个简单的nc类型命令(无需在matlab/python中提取数据进行重写),裁剪该文件以包含一个较小的区域,即上述区域的子集。例如,30N、10S、60E和30W。 最佳答案 是的,使用NCO包中的ncks:http://nco.sourceforge.net/nco.html如果您知道对应于您想要的纬度/经度范围的索引,假设它们的纬度为30-40,经度为25-50,那么您可以使用以下命令裁剪netCDF
假设您有一个文件example.nc,其中定义了90N、90S、180E、180W区域的风数据。无论如何我可以在linux中使用一个简单的nc类型命令(无需在matlab/python中提取数据进行重写),裁剪该文件以包含一个较小的区域,即上述区域的子集。例如,30N、10S、60E和30W。 最佳答案 是的,使用NCO包中的ncks:http://nco.sourceforge.net/nco.html如果您知道对应于您想要的纬度/经度范围的索引,假设它们的纬度为30-40,经度为25-50,那么您可以使用以下命令裁剪netCDF
我每天下载具有以下结构的600MBnetcdf-4文件:netcdfmyfile{dimensions:time_counter=18;depth=50;latitude=361;longitude=601;variables:salinitytemp,etc我正在寻找一种更好的方法将time_counter维度从固定大小(18)转换为无限维度。我找到了一种使用netcdf命令和sed来完成它的方法。像这样:ncdumpmyfile.nc|sed-e"s#^.time_counter=18;#time_counter=UNLIMITED;//(currently18)#"|ncgen-
我每天下载具有以下结构的600MBnetcdf-4文件:netcdfmyfile{dimensions:time_counter=18;depth=50;latitude=361;longitude=601;variables:salinitytemp,etc我正在寻找一种更好的方法将time_counter维度从固定大小(18)转换为无限维度。我找到了一种使用netcdf命令和sed来完成它的方法。像这样:ncdumpmyfile.nc|sed-e"s#^.time_counter=18;#time_counter=UNLIMITED;//(currently18)#"|ncgen-