NCL学习点滴
2014-01-18 04:05阅读:
1、数据类型转换
NCEP再分析(2.5*2,5)在读取的时候,必须要使用
load'$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl'
...
hgt = short2flt( f- >hgt(:,5,:,:) )
否则读取的值为valid_range而非actual_range(hgt本身是按短整型short存储的,要将它转换为浮点型float)
2、一些缩写的含义
res <=> resources
pm <=> plot manager(绘图管理)
wks <=> workstation (工作台,即输出的图形文件)
gsn <=> getting started with NCL (画图的命令都以gsn_开头)
gsn_csm <=> gsn_climate system model
(画图的界面为csm风格,即自动添加标签信息如下图)

csm
3、脚本文件
可以为.ncl,.txt,甚至不加后缀
4、pmTickMarkDisplayMode
坐标刻度设置,NoCreate为不创建刻度,Never创建但不显示刻度,Always总是显示,Conditional在不覆盖已有图像的坐标前提下会显示
5、NCEP再分析资料时间的提取
f1 = addfile('hgt500.nc','r')
;加载文件
time1 = f1->time
;读取时间
utc_hr = ut_calendar(time1,3)
;转换时间至小时(本身time@units已有定义)
res@gsnLeftString = '500hPa at ' + sprintf('.0f',utc_hr) + 'UTC'
;输出时要用sprintf函数,否则为指数形式输出
另:ut_calendar和cd_calendar好像没区别啊。。
6、风羽图绘制
- uv数据都要乘以2.5再画
- 保持vcRefAnnoString1与vcRefMagnitudeF之比为0.4
-
一般可以设vcRefAnnoString1=“12m/s”,vcRefMagnitudeF =
30.0
- 风羽大小可以用vcRefLengthF调节
7、读取文件时,'->'前后不要有空格,filedump命令的'>'前后必须有空格
8、新变量的维数定义
比如从文件中读取了变量u,v,求出全风速speed =
sqrt(u^2+v^2),不能直接画到图中,而要先定义各个维数,否则就会报错(有时会报错有时不会,但不报错的时候画出来的图也不对),
报错内容如下:
(0)
check_for_y_lat_coord: Warning: Data either
does not contain a valid latitude coordinate array or doesn't
contain one at all.
(0)
A valid latitude coordinate array should
have a 'units' attribute equal to one of the following values:
(0)
'degrees_north'
'degrees-north' 'degree_north' 'degrees north' 'degrees_N'
'Degrees_north' 'degree_N' 'degreeN' 'degreesN' 'deg north'
(0)
check_for_lon_coord: Warning: Data either
does not contain a valid longitude coordinate array or doesn't
contain one at all.
(0)
A valid longitude coordinate array should
have a 'units' attribute equal to one of the following values:
(0)
'degrees_east'
'degrees-east' 'degree_east' 'degrees east' 'degrees_E'
'Degrees_east' 'degree_E' 'degreeE' 'degreesE' 'deg east'
定义维数的代码如下:
speed!0 = 'lat'
;第一维的名称
speed&lat = u&lat
;第一维的值,直接从文件中的变量u中提取
speed!1 = 'lon'
;
第二维的名称
speed&lon = u&lon
;第二维的值
9、画全风速和风羽图叠加,应该把风羽图叠在全风速上而不是倒过来
10、grib文件的批处理
- grib文件有时没有后缀(.grb等),用NCL读取时不能直接写无后缀的文件名。但只要在NCL命令里加上后缀,即使文件本身在文件夹中没有后缀也是可以读取的。
11、Dash Pattern
12、读取变量时(如a=tmp)要注意左右两边维数相同,若维数不同,要先delete(a)再读取。
13、画垂直剖面图的函数:
14、逻辑判断:与fortran相同,等于
.eq. ,大于 .gt. ,不大于 .le. 等。
15、调整色标大小的resource不在lb里而在pm里,分别为pmLabelBarHeightF,pmLabelBarWidthF。