兰溪市论坛

首页 » 问答 » 介绍 » 教程合集NCL数据处理基础
TUhjnbcbe - 2021/4/25 19:31:00
儿童白癜风应吃什么         https://m-mip.39.net/disease/mip_6216796.html

与Fortran、C、Matlab、IDL等编程语言类似,NCL具有很多现代编程语言的特点,如具有变量、数据类型、常数、函数、程序、运算符(代数运算和逻辑运算)、表达式、条件语句、循环等。其脱胎于Python的编程习惯,使得一些小细节与Python语言十分相似。一起来学习吧!

1.数据类型

NCL支持的三种数据类型:

(1)数值型

包括double(双精度型)、float(浮点型)、long(长整型)、integer(整型)、byte(字节型)。

(2)Enumeric型

包括int64、unit64、uint(32位)、ulong、ushort、ubyte类型,在平时的编程中不太常用。

(3)非数值型

包括string(字符串型)、character(字符型)、graphic(图形)、file(文件)、logical(逻辑型)和list(列表型)。

2.数据类型转换

同时,NCL提供一系列的库函数进行数据类型之间的转化,常用的库函数如下:

数据类型转化函数:

命令

描述

tofloat(array)

转化为浮点型

toint(array)

转化为整型

tolong(array)

转化为长整型

toshort(array)

转化为短整型

tostring(array)

转化为字符串

tochar(array)

转化为字符

todouble(array)

转化为双精度型

使用方法形如:

arr=tofloat(array)

除此之外,NCL内置了类型判断函数:

命令

描述

isdouble(var)

是否为双精度型

isstring(var)

是否为字符串

isinteger(var)

是否为整形

islogical(var)

是否为逻辑变量

islong(var)

是否为长整形

isnumeric(var)

是否为数值型

使用方法形如:

a=1.34b=isstring(a)print(b)

得到结果如下:

3.常用的语法字符

在计算过程中,可能用到的语法有:

符号

含义

:=

重新赋值

;

注释

$……$

封装字符串变量

{……}

坐标截取数组

[……]

截取列表变量

(/……/)

创建数组

[/……/]

创建列表变量

:

数组下标分隔符

命名维的分隔符

创建或引用变量的一个属性

创建或引用变量的一个命名维

创建或引用变量的一个坐标变量

值得注意的是,与Python的逻辑相同,NCL的1是从0开始数的,即:

a=(/0,1,2,3,4/)b=a(1)

得到a中位置2的变量为1:

:属性可通过“

”来读取、赋值或修改,典型的变量属性包括“_FillValue”、“missing_value”、“units”、“long_name”、“standard_name”、“coordinates”、“axis”等。

!:维的命名或名称通过“!”来读取、赋值或修改,数组的维数大小和各维的大小均为整数,NCL变量数组从左往右分别为第0维至第n-1维,n是数组变量的维数大小。

test!0=“time”,test!1=“height”

:坐标变量通过“”来读取、赋值或修改,可通过printVarSummary(test)来查看其坐标变量。

4.运算符

常用的运算符包括算术运算符和逻辑运算符,数学运算符也可适用于数组。

加减乘除即为+、-、*、/,其他的算术运算符有:

符号

说明

%

取余数

返回较大值

返回较小值

^

幂运算

#

矩阵乘

值得注意的是:

1、使用括号可以修改计算优先级

2、“+”具有两重含义,即有两种不同的应用:加法;连接字符串

3、“-”具有两重含义:负号,具有最高优先级;减法

4、“/”用于整数时,返回值也为整数值

逻辑运算符从左向右执行,直至返回值为否

符号

符号

.lt.

小于

.le.

小于等于

.eq.

等于

.ne.

不等于

.gt.

大于

.ge.

大于等于

.and.

并且

.or.

.not.

.xor.

异或

5.常见计算函数

1)数组的平均值

函数dim_avg_n_Wrap可计算变量在指定维上的平均值,并保留元数据。

xout_wrap=dim_avg_n_Wrap(x,dims)

2)数组的标准差

函数dim_stddev_n_Wrap可计算数组在指定维上的标准差,并保留元数据。

ret_var_Wrap=dim_stddev_n_Wrap(var,dims)

3)加权面积平均

函数wgt_areaave_Wrap可计算数组的加权面积平均,并保留元数据。

Qave_Wrap=wgt_areaave_Wrap(q,wgty,wgtx,opt)

4)滑动平均

函数runace_n_Wrap可计算数组的等权重滑动平均,并保留元数据。

Xave_Wrap=runave_n_Wrap(x,nave,opt,dim)

5)线性回归

函数regline可计算出两个一维变量间的回归系数(趋势或斜率)、t值统计量和y截断等信息:

rc=regline(x,y)。;若需计算多维数组的回归系数,可以用函数regCoef。;返回变量有以下属性值:xave:x的平均值;yave:y的平均值;tval:t值统计量;rstd:估算回归系数的标准差;yintercept:x=0时的y值;nptxy:样本个数。

6)月平均资料计算年平均

函数month_to_annual可计算月平均变量的年平均值:

array_annual=month_to_annual(array_mon,option);array_annual是月平均数组变量,其时间维的大小应为12的倍数.;option为计算参数,option=0为计算12个月的算术和,option=1则将12个月的算术和除以12,即得年平均值。

本期到此结束!练手材料在下方~

1
查看完整版本: 教程合集NCL数据处理基础