介绍
NCL是一款气象专用软件,在windows中无法运行,需要在linux系统中运行,本次程序是通过wsl安装Ubuntu来运行NCL的,,在本文中,通过NCL对采集的数据进行处理,这些数据都是三层矩阵,如经度纬度时间,共同构成一个三维矩阵,如对2016年1月到2016年12月的366天,全球的海洋slp数据均以nc文件的形式存储,数据结构是按lon,lat一一对应的形式描述印度洋的风向,即slp。
安装
NCL安装略有繁琐,win10先开启虚拟化,可以通过按ctrl+shift+esc调出任务管理器在cpu那里看是否支持虚拟化,然后在Windows功能中勾选适用于Linux的Windows子系统即可。

然后打开微软商店下载Ubuntu,创建用户名和密码,输入
sudo apt-get update
sudo apt-get upgrade
sudo apt install ncl-ncarg
常用快捷键
# 常用指令
cd /mnt/文件路径/
ls查看文件名下面的内容
ncl_filedump nc文件名,记得加后缀。查看该nc文件内容。
ncl 程序名,打开ncl程序
cd 文件名/当前文件下查看下一层指定的文件夹
cd ../返回上一级文件夹
换源
乌班图换源,毕竟GitHub的部分源不稳定,更换到国内的清华源。
sudo vim /etc/apt/sources.list
按一下esc
输入gg
d
G
i
粘贴清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
再按一下esc
输入:wq
按下enter
程序运行
运行Ubuntu后,进入对应文件夹。

打开nc文件
输入ncl_filedump slp.mon.mean.nc,查看nc文件内容,如图三我们要用到的是slp,查询slp的详细参数,输入
f = addfile("slp.mon.mean.nc","r" ) ;
slp = f->slp ;
printVarSummary(slp)
exit

输入ncl xx.ncl,得到下图

可以看到slp对应的矩阵是848*73*144的一个三维矩阵,在实际应用中,我们一般将time视为一层,而lat和lon视为一个二维矩阵。
绘图
删掉上面的exit后,再输入
avg_slp_dim = dim_avg_n_Wrap(slp,0)
;printVarSummary(avg_slp_dim)
; plotting
wks = gsn_open_wks("png","slp_simple_plot")
res = True
res@cnFillOn = True
res@cnFillPalette = "matlab_jet"
res@cnLinesOn = False
res@cnFillMode = "RasterFill"
res@cnRasterSmoothingOn = True
plot = gsn_csm_contour_map(wks,avg_slp_dim,res)
再在Ubuntu中输入monthly_regional_plot.ncl,可以看到本来没有图的class3文件夹出现了slp的绘图图像,运行后的图如图五,跑出来的12个图如图六。其中res@cnFillOn=True是给地图上色,res@cnFillPalette= “matlab_jet”是选择地图种类,res@cnLinesOn=False是不开启网格线,ncl作为专用气象绘图软件还是很不错的,简单的几行代码就可以轻松实现绘图。






