Ubuntu 20.04 系统如何优雅地安装NCL?

一、什么是NCL?

NCAR Command Language(NCL)是由美国大气研究中心(NCAR)推出的一款用于科学数据计算和可视化的免费软件。

它有着非常强大的文件输入和输出功能,可读写netCDF-3、netCDF-4 classic、HDF4、binary、ASCII数据,支持对HDF-EOS2、HDF-EOS5、GRIB1、GRIB2和OGR数据(Shapefile, MapInfo, GMT, TIGER)的读入操作,基本实现了无缝对接各类气象数据和模式数据。

在数据计算上,大气科学研究中几乎所有的常用计算方法都已被NCL集成至其内置的函数和程序中,比如经验正交函数分解(EOF)、奇异值分解(SVD)、功率谱分析,1维、2维、3维数据的插值,等等。

NCL是一种高级语言,但是在2020年NCL维护团队宣布转向Python,彻底作为放弃语言的身份,成为python的一个包,即地球科学社区分析工具包(GeoCAT),包括PyNGL、PyNIO、wrf-python 和 GeoCAT-Comp。

NCL目前已经停止更新,最后版本为6.6.2。因此,我们选择安装NCL6.6.2版本。

二、从预编译的二进制文件安装NCL(X)

从预编译的二进制文件安装NCL,也就是tar.gz文件,但是作者倒在了下载这一步,下载地址极其不稳定,多次尝试仍无法下载,即使使用魔法,也毫无作用。所以,直接推,放弃安装。

三、使用conda下载NCL(✓)

(一)安装conda

Conda 是一个包管理系统,使您能够通过"conda"命令轻松地从 UNIX 命令行安装软件:

首先通过minicondaAnaconda下载并安装 conda 。如果磁盘空间是一个问题(Anaconda 相当大),建议使用 miniconda,因为这是一个更小的系统,需要更少的磁盘空间。

bash 复制代码
# 更新系统包
sudo apt update
sudo apt upgrade
# 下载miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

安装过程中可以自定义安装路径,这里选择安装在 /home/ubuntu(用户名)/miniconda3。

得到:

为了能让所有用户都能使用Mniconda,要修改.bashrc 文件

bash 复制代码
# 打开.bashrc文件
vi ~/.bashrc
# 添加以下代码
export PATH=/home/ubuntu(用户名)/miniconda3/bin:$PATH
# 启动环境
source ~/.bashrc
bash 复制代码
# 查找conda
which conda
# 查看conda版本
conda --version

得到

(二)安装NCL

bash 复制代码
# 更新conda包
conda update -n root --all
# 创建名为:ncl_stable 环境 并安装ncl
conda create -n ncl_stable -c conda-forge ncl
# 激活环境
source activate ncl_stable   
bash 复制代码
#测试NCL.1
ncl -V

得到:

bash 复制代码
# 测试NCL.2
ncl $NCARG_ROOT/lib/ncarg/nclex/gsun/gsun02n.ncl
bash 复制代码
# 测试NCL.3
ncl $NCARG_ROOT/lib/ncarg/nclex/nug/NUG_multi_timeseries.ncl

得到:


当使用NCL时,则需要激活ncl_stable环境

python 复制代码
#激活环境
source activate ncl_stable   
#退出环境
conda deactivate

到这里,NCL的安装就结束了,祝大家使用愉快!

参考资料

1.使用conda安装NCL官方教程How to install NCL using condahttps://www.ncl.ucar.edu/Download/conda.shtml

相关推荐
xu_yule16 小时前
Linux_12(进程信号)内核态和用户态+处理信号+不可重入函数+volatile
linux·运维·服务器
虾..16 小时前
Linux 环境变量&&进程优先级
linux·运维·服务器
i***t91916 小时前
Linux下MySQL的简单使用
linux·mysql·adb
偶像你挑的噻16 小时前
11-Linux驱动开发-I2C子系统–mpu6050简单数据透传驱动
linux·驱动开发·stm32·嵌入式硬件
稚辉君.MCA_P8_Java17 小时前
DeepSeek 插入排序
linux·后端·算法·架构·排序算法
郝学胜-神的一滴19 小时前
Linux命名管道:创建与原理详解
linux·运维·服务器·开发语言·c++·程序人生·个人开发
宾有为19 小时前
【Linux】Linux 常用指令
linux·服务器·ssh
wdfk_prog19 小时前
[Linux]学习笔记系列 -- [block]bio
linux·笔记·学习
ajassi200019 小时前
开源 Linux 服务器与中间件(十三)FRP服务器、客户端安装和测试
linux·服务器·开源
XH-hui20 小时前
【打靶日记】群内靶机vm1
linux·网络安全