Macos系统下用intel fortran编译安装wgrib2

Macos系统下用intel fortran编译安装wgrib2,第1张

链接  https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz

tar -zxvf wgrib2

cd grib2

分以下两种情况:

除USE_REGEX=1、MAKE_FTN_API=1外,其余均设置为0。编译后的wgrib2,只能读取grib1文件,如果读取grib2文件,会出现“packing type 40 not supported”的错误信息,即为没有安装jasper。

a、在1的基础上,设置USE_NETCDF4=1、USE_PNG=1、USE_JASPER=1。

b、由于之前已经安装了netcdf4、hdf5、libpng、jasper,需对makefile中的jlib、netcdf4lib、hdf5lib、pnglib、zlib、wLDFLAGS、wCPPFLAGS等进行修改到相应库的目录下。

c、并注释掉需在640行后的${jasperdir}、${jlib}、${pngdir}、${pnglib}、${zdir}、${zlib}、${netcdf3dir}、${netcdf3lib}、${netcdf4src}、${netcdf4dir}、${netcdf4lib}、${hdf5src}、${hdf5dir}、${hdf5lib}相关内容,这些内容均是wgrib2自行安装相应库的命令。

export COMS_SYS=intel_linux

export FC=ifort

export CC=icc

make

make lib

编译成功后,在wgrib2文件下生成,wgrib2可执行文件,使用grib2文件测试正常。

编写fortran程序,调用wgrib2,使用grib2文件测试正常。实现fortran读取grib2。

初学python,利用conda构造cfgrib_env环境后,依次安装xarray、eccodes、cfgrib,尝试读取模式预报数据,cfgrib.bindings.TGribInternalError出现错误“End of resource reached when reading message (-45)”,cfgrib.dataset.DatasetBuildError出现错误“Key present and new value is different: key='heightAbove Ground' value=Variable(dimensions=(), data=2) new _value=Variable(dimensions=(), data=10)。

问题待解决。

--------------------------------------

经过1个小时的尝试,发现cfgrib.bindings.TGribInternalError是由于grib2文件自身长度问题,更换文件该问题消失;cfgrib.dataset.DatasetBuildError不会影响数据读取,附几种读取grib2文件的方法(笔者均已实现):

1. win环境下wgrib2.exe(原文: https://www.jianshu.com/p/58981634ac17 )

2. win环境下python+cfgrib+xarray——cfgrib用关键字提取grib2变量方法(原文: https://cloud.tencent.com/developer/article/1471285 )

3. shell环境下python+pygrib(原文: https://www.cnblogs.com/jiangleads/p/9705787.html )


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7581477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存