NCAR command language (NCL)

# 关于

NCAR 命令语言(NCL)是美国国家大气研究中心(NCAR)计算与信息系统实验室的产品,是一种专门为科学数据处理和可视化设计的解释语言。学习使用 NCL 主要是为了处理 NetCDF 格式。

# 参考网站

  • 官网
  • 安装指导
  • 用户指导手册
  • 手册的数据文件
  • pyngl
  • ncl2py Guide

# 安装

NCL 适用于 MacOS,Linux 和运行 Windows 10 Linux 子系统的 Windows 系统。换新笔记本后我安装了 WSL,所以这里在 WSL 中安装。
首先要安装 conda,这里按提示安装了 miniconda。(难怪我在超算的 .bashrc 里只看到了 miniconda,没找到 NCL,但找到了 NCO……
然后按照建议在 conda 环境下安装 NCL,新环境为 ncl_stable。

conda create -n ncl_stable -c conda-forge ncl

每次进入该环境,执行

source activate ncl_stable

要显示图形化界面,首先启动 Xming 开启 X11 转接…… 然后执行下面的命令检测

ncl -V
ncl $NCARG_ROOT/lib/ncarg/nclex/gsun/gsun02n.ncl
ncl $NCARG_ROOT/lib/ncarg/nclex/nug/NUG_multi_timeseries.ncl

就可以看到很漂亮的图啦!

于是又登上超算找 conda ,结果不能直接用。在 .conda 文件夹里有个 environment.txt 里明明看到了有 anaconda 和 ncl_stable 环境。翻 bashrc 发现有句

alias wanwb='source /home/export/online3/cesm06/wanwb/.bashrc'

果断执行 wanwb ,可以用 conda 了!可以用 ncl!

回到 WSL,执行 ng4ex gsun01n 提示 /bin/csh: bad interpreter: No such file or directory 查一下需要安装 C-shell。再次执行,可以看到一些折线图,且工作路径下多了一个 gsun01n.ncl 文件。

# 配置环境

由于使用了 ncl_stable 环境,就不用再设置变量 NCARG_ROOT 和路径 $NCARG_ROOT/bin 了。
在家目录下放置 .hluresfile 文件来个性化设置 NCL 图形环境。
关于代码编辑的高亮,我用了 vscode 连接 WSL,打开 ncl 文件后安装 NCL 扩展即可。不得不说这真的好用。

# 准备学习

把手册下载下来进行学习!有些大的数据文件在官网上,参考中已经列出来了。

加载公用函数库: load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
运行样例: ng4ex file.ncl
样例数据: $NCARG_ROOT/lib/ncarg/data/nug/

# 几天后

把手册大致过了一遍,对某些语法感到不适外,在手册最后看到了一章 PyNGL 和 PyNIO 的。于是很疑惑地到官网再一看……
好家伙,NCAR 已经不更新 NCL 了,官方都转 python 了

(3.22:问了师姐,他们那篇论文用的代码基本是 matlab…… 而我没能找到机器上有没有 matlab……)
(续:matlab 在另一个账号下…… 代码放机器上被清了…… )

# PyNGL & PyNIO

conda create --name pyn_env --channel conda-forge pynio pyngl
source activate pyn_env

报错了,可能版本不兼容。删除环境重建

conda env remove --name pyn_env
conda create --name pyn_env --channel conda-forge/label/cf201901 xarray netcdf4 scipy pyngl pynio
source activate pyn_env

最后清理下安装的包

conda clean -a
conda clean -p
conda clean -t
更新于 阅读次数