如何r语言生成netcdf格式文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何r语言生成netcdf格式文件相关的知识,希望对你有一定的参考价值。
参考技术A 我是经常读netcdf文件,在matlab里面你可以看看netcdf帮助,其实很详细的
%An
example
to
generate
an
nc
file
%
----------------------------
DEFINE
THE
FILE
---------------------------
%
ncquiet
%
No
NetCDF
warnings.
nc
=
netcdf('ncexample.nc',
'clobber');
%
Create
NetCDF
file,输入文件名.
nc.description
=
'NetCDF
Example';
%
Global
attributes,基本信息.
nc.author
=
'Dr.
Charles
R.
Denham';
nc.date
=
'June
9,
1997';
nc('latitude')
=
10;
%
Define
dimensions,数组维数.
nc('longitude')
=
10;
nc'latitude'
=
'latitude';
%
Define
variables,定义变量.
nc'longitude'
=
'longitude';
nc'depth'
=
'latitude',
'longitude';
nc'latitude'.units
=
'degrees';
%
Attributes,单位信息.
nc'longitude'.units
=
'degrees';
nc'depth'.units
=
'meters';
%
----------------------------
STORE
THE
DATA
----------------------------
%
latitude
=
;
%
Matlab
data,变量数值.
longitude
=
;
depth
=
rand(length(latitude),
length(longitude));
nc'latitude'(:)
=
latitude;
%
Put
all
the
data,对nc文件赋各变量的值.
nc'longitude'(:)
=
longitude;
nc'depth'(:)
=
depth;
nc
=
close(nc);
%
Close
the
file,关闭文件.
%
----------------------------
RECALL
THE
DATA
---------------------------%读文件
nc
=
netcdf('ncexample.nc',
'nowrite');
%
Open
NetCDF
file.
description
=
nc.description(:)
%
Global
attribute.
variables
=
var(nc);
%
Get
variable
data.
for
i
=
1:length(variables)
disp(),
disp('
')
disp(variablesi(:))
end
nc
=
close(nc);
%
Close
the
file.
%
---------------------------------
DONE
---------------------------------
%
将 grib 文件转换为 netcdf(jpeg 格式)
【中文标题】将 grib 文件转换为 netcdf(jpeg 格式)【英文标题】:Convert grib file to netcdf (jpeg format) 【发布时间】:2021-12-18 14:55:55 【问题描述】:从ARPEGE [我已下载的天气预报文件到达的文件格式类似这样的“GRIBHS020 + 0000:00.jpeg”。按照谁管理的数据的人,但它仍然是一个已经改变了这个功能“grib_set -r -s‘packingType = grid_jpeg’$ F $ F .jpeg等。我需要这个文件的NetCDF转换GRIB文件,但数据管理者不知道如何做到这一点我已经试过几乎所有(CDO:CDO -f NC复制,Eccodes:grib_to_netcdf,NCL ncl_convert2nc),但没有任何作品。例如,这是grib_to_netcdf输出
grib_to_netcdf -o test.nc grid.arpege-forecast.hs020 + 0024:00.grib grib_to_netcdf:版本2.12.3 grib_to_netcdf:处理输入文件 'grid.arpege-forecast.hs020 + 0024:00.grib'。 grib_to_netcdf:在1个文件实测值1018个GRIB字段。 grib_to_netcdf:忽略键(一个或多个):方法,类型,流,refdate,hdate grib_to_netcdf:创建netCDF文件 'test.nc' grib_to_netcdf:创建NetCDF库版本:12月17日的2018 4.6.2 $ 19时36分03秒 grib_to_netcdf:创建大(64位)文件格式。 ECCODES错误:无法处理为不同levtypes字段 P>
ECCODES错误:请分割输入数据转换成不同的文件。离开! P>
下面是下载文件,我试图转换的链接。 P>
https://drive.google.com/file/d/178BZkmvsTZTYVBRL5TY5E15zQXxOGSzJ/view?usp=sharing
任何建议都非常欢迎! P>
【问题讨论】:
【参考方案1】:您可以使用 netcdf-java 进行转换:
java -cp toolsUI-5.4.2.jar ucar.nc2.write.Nccopy -i GRIBHS020+0114_00.jpeg -o GRIBHS020+0114_00.nc -st standard -sh -f netcdf4_classic
netcdf-java 可以从以下位置下载: https://www.unidata.ucar.edu/downloads/netcdf-java/
您需要使用 nccopy 功能设置 netcdf-c 库以写入为 netCDF4: https://docs.unidata.ucar.edu/netcdf-java/current/userguide/cdm_utility_programs.html#nccopy
【讨论】:
以上是关于如何r语言生成netcdf格式文件的主要内容,如果未能解决你的问题,请参考以下文章
访问 netcdf 文件中嵌套组中的变量(文件格式 HDF5)