阅读建议:电脑端/iPad端阅读,按照文章左边栏三级标题来捋思路,安装过程输出可忽略。实际操作报错了,再按图索骥看细节!
本文简版同步发布于公众号『气象学家』传送门。从页面“Software for Manipulating or Displaying NetCDF Data”能找到几十种语言或者工具软件可以处理NetCDF(Network Common Data Form)的数据,有些软件是可以跨平台的,强烈推荐>>免费软件Panoply<<,对于NetCDF文件的可视化和简单的数据导出非常的优秀,Mac、Linux、Windows都能使用。当然,现在对于不同的处理要求和速度完全可以选择不同的工具方法处理NetCDF,Python/ncl对于NetCDF的读取和创建也已经非常得方便了。但是,目前就使用Fortran去调用NetCDF的Fortran API,处理速度上还是有很大的优势,所以,简单以MacOS为例,就Fortran处理NetCDF相关的库的安装和环境变量设置来做个简单的介绍,并用实例来加深理解,但是并不做深度解读,抛砖引玉而已。后面另开一篇文章就grib数据的处理做介绍(Python、NCL、wgrib2)。
配料:
1
2
3
4
5
6
7 1. NetCDF-C
2. NetCDF-Fortran
3. szip (Installing dependencies for netcdf: szip and hdf5)
4. hdf5 (Installing dependencies for netcdf: szip and hdf5)
5. gcc
6. gfortran
7. Homebrew
安装
系统版本:macOS Mojave version 10.14.5
1
2
3
4
5
6
7 对于macOS完全可以很大程度的依赖Homebrew来进行很多包的安装。
因为有人已经造好了轮子,依赖关系都已经完美处理好了,对于野生气象码农简直是太有好了。
当然,让我强行一波手动安装也是不在话下,对于初学者还是建议手动安装感受一下。
而"熟练工"节省时间成本完全可以一键式骚操作!
本安装为了更省事可以说是一站式气象科学依赖库全家桶(安装cdo
/nco)都给安好了!
废话不多说,上干货。
安装Homebrew
homebrew can be downloaded and installed in one step:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
or
If this doesn’t work do
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install > brew_install_script
ruby brew_install_script
rehash
在此,Homebrew安装结束!
编译工具安装 gcc/g++ 、 gfortran、make、cmake
首先在终端查看诸工具是否已经安装:比如gcc –version,如果没有安装或者不够新,下面是自动安装命令
gcc/g++: brew install gcc, brew install g++
gfortran: brew install gfortran
make: brew install make
cmake: brew install cmake
或者在cmake官网下载二进制安装文件(带GUI界面),双击安装即可!
安装 cdo、netcdf、nco
$brew tap homebrew/science
$brew install cdo
$brew install netcdf
$brew install nco
nco安装时候,可能报错,需要安装[Java SE](https://github.com/frekele/oracle-java/releases). https://github.com/frekele/oracle-java/releases
安装结束!
具体的安装过程:
1 | ✘ ⚙ ~ brew tap homebrew/science |
环境变量的设置
不难发现,ncdump的命令是有效的,可以用于NetCDF文件的信息查看。
而其安装的位置其实是软连接过来的。
1 | ~/Dropbox/Code_Fortress/02.My_Fortran_Library which ncdump |
这对后续的调用netcdf的库,指定路径是很有帮助的。
NetCDF Programs实例
选取f、f90结尾的文件即可!!!
1 | Below we provide links to some sample netCDF programs. |
gfortran读写NetCDF测试
最最最重要的一点就是使用gfortran的时候,一定要指定具体依赖库的路径
在使用gfortran时候,命令如下:
> gfortran test.f90 -L/usr/local/Cellar/netcdf/4.6.3_1/lib -I/usr/local/Cellar/netcdf/4.6.3_1/include -lnetcdff -o testf
在使用intel fortran时候,命令形式如下:
> ifort -I/home/xxx/local/include read_netcdf.f90 -o a.exe -L/home/xxx/local/lib -lnetcdf
Linux中操作方法类似!
至于,用shell脚本或者Makefile来简化手动输入参数之苦,这也是更加实用的技能,再次不做介绍,感兴趣的可以自行
Google百度/Bing!
Homebrew一键式安装netcdf的原理揭示
基于Ruby语言!!![参考链接](https://github.com/Homebrew/homebrew-core/blob/master/Formula/netcdf.rb)
1 | class Netcdf < Formula |
手动安装netcdf参考方法:
参考链接:install-netcdf-fortran/install_netcdf.sh
1 | !/bin/sh |
参考:
链接.1
链接.2
链接.3
链接.4
链接.5
链接.6
链接.7
链接.8
链接.9
链接.10
链接.11
有任何问题都欢迎交流探讨,共同学习进步!