NCL绘图

目录

NCL绘图步骤

系统调用

自定义函数和程序

程序

函数

处理跨平台的换行问题

Python绘图

包含在NCL软件包中的其他shell命令

三维图形绘制软件


NCL绘图步骤

  1. 加载图形库文件
  2. 设置输出图形的名称和央视
  3. 定义色板
  4. 修改绘图参数
  5. 调用绘图函数

具体画图操作和详细设置参见官网http://www.ncl.ucar.edu/


系统调用

systemfunc函数和system函数区别:
system是传递指令到操作系统中,不作返回;

systemfunc将值返回至NCL中

其他系统调用指令有:status_exit, getenv, sleep和get_cpu_time

;---执行一个shell命令
system("rm -f tmp.asc")

;---执行一个shell命令,并返回结果
file_list = systemfunc("ls t2m_*.nc")
datestring = systemfunc("date") ; 返回当前日期至字符串变量datestring

自定义函数和程序

自定义的函数或程序即可以直接放在脚本开始处以直接调用,也可单独存储为一个外部文件,通过"load"或者"loadscript"命令加载该外部文件以调用

程序

undef("procedure_name")  ;optional
procedure procedure_name(declaration_list)
local local_variables
begin
        (statements)
end

例如:
 

;--convK2C:将开尔文温度转换为摄氏温度
undef("convK2C")
procedure convK2C(var)
begin
  var = var-273.15
  var@units = "C"
end

将该代码段保存为my_library.ncl

之后再调用的时候,直接:

load "my_library.ncl"
begin
     var1 = 274.15
     convK2C(var1)
end

函数

函数的结构规则如下:

undef("function_name")  ;optional
procedure function_name(declaration_list)
local local_variables
begin
      statements
      return(return_value)
end

下面的例子是计算Π的自定义函数

undef("my_pi")
function my_pi()
local lpi
begin
   lpi = 4*arctan(1);
   return (lpi)
end

假设上面的代码段被保存为my_library.ncl,若要使用函数my_pi,则:

load"my_library.ncl"
begin
   x = my_pi()
   print(x)
end

如果一个函数需要返回多个不同类型的变量,则利用[/.../]将多个变量构建为一个列表变量返回,例如:

begin
   ...
   return([/ni, nj, nk/]
end

则在主脚本中:

comp = ret_mulvar(5,2)
var1 = comp[0]
var2 = comp[1]
var3 = comp[2]

处理跨平台的换行问题

在Vim编辑器中,采用命令w: setl ff=unix

另一种方法是使用dos2unix工具,具体命令是:dos2unix FILENAME

Python绘图

Basemap是在Matplotlib基础上开发的专门绘制带有地理坐标和各种地理投影的图形,目前已经停止了开发,逐渐被IRIS和Cartopy替代

还有地理信息系统常用数据处理的GDAL、专用于地图投影处理的pyproj、用于netCDF数据处理的netCDF4程序包

UV-CDAT可以作为一个单独的软件安装,用于高级三维图形绘制

Python中的UTF-8编码下,使用中文只需要在中文的字符串前面加上u即可

如:plt.title(u'地表风速 Surface Winds')

包含在NCL软件包中的其他shell命令

(1)ncl_filedump和ncdump -h类似,输出文件的基本信息。区别是:ncl_filedump除了支持netCDF文件之外,还支持NCL支持的其他格式文件,如:HDF, GRIB1, GRIB2, shapefile等

(2)ncl_convert2nc

(3)ng4ex是一个脚本文件,旨在展示NCL软件包中的一系列示例,可以通过在命令行输入ng4ex查看其用法。例如:查看所有矢量图的NCL例子,运行ng4ex -NCL -vectorplot

(4)WRAPIT是使用Fortran调用NCL的运行方式,使用这个命令可以很方便地在Fortran代码中调用NCL

三维图形绘制软件

VAPOR(https://www.vapor.ucar.edu/

UV-CDAT (https://uvcdat.llnl.gov/

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值