请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 38764|回复: 33

[经验总结] NCL使用过程中的小技巧及命令(转载)

  [复制链接]

新浪微博达人勋

发表于 2017-5-24 17:19:22 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 vuchiyuan 于 2017-5-24 23:58 编辑

一点NCL使用过程中的小技巧及命令,mark~

1.批量
files = systemfunc ( "ls -1  /data3/users/ajuchao/fnl/200806/fnl*" )  ;是-1,不是-l
a = addfiles(files,"r")
numfiles=dimsizes(a)
ListSetType (a,"join")

addfiles返回的是一个list类型的变量,而这种变量的读取有两种方式,分别是“join”和“cat”,后者为默认,使用ListSetType进行切换。
cat方式将所有文件中变量在最左边的维上进行合并处理,join方式则在最左边额外产生一维,大小为文件数。

2.摄氏度表示方式: ~F35~J~F~C

3.逻辑操作符
                .le.         小于等于(less-than-or-equal)
                .lt.        小于(less-than)
                .ge.        大于等于(greater-than-or-equal)
                .gt.        大于(greater-than)
                .ne.        不等于(not-equal)
                .eq.        等于(equal)
                .and.        且
                .xor.        亦或(exclusive-or)
                .or.        或
                .not.        非

4.复制属性
copy_VarCoords(x,y)
将x的属性赋给y

5.排序颠倒
a=[1,2,3,4]
   b=a(::-1)
   b=[4,3,2,1]
6.调整维数顺序
ts1 = tmp1(lat|:,lon|:,time|:)

7. sprinti("%0.2i",month)

8. vmin = local_min(dist, False, 0.0)   
dist为二维数组,得到最小值以及最小值所对应x,y点
xmin=vmin@xi
ymin=vmin@yi
min_value=vmin@minval

9.查找最大最小值所在点
Example:
;---Create a dummy 2 x 2 x 4 array.
  a = (/(/(/1,2,3,4/), (/5,6,7,8/)/), (/(/9,1,9,8/),(/7,6,1,4/)/)/)

;---Convert to 1D
  a1D    = ndtooned(a)
  dsizes_a = dimsizes(a)

;---Resolve the 1D indices back to their original 3D array.
  indices  = ind_resolve(maxind(a1D),dsizes_a)
  print(indices)
返回值:(1,0,0)

9.读取文件
;-----------------------------------------------deal with WRF Output data
dir_wrf     =   "/home/jinjm1/gfs/TL/wrf/WRFV3_1/run/TL0017/"
fname_wrf  =   "wrfout_d01_2007-07-*|wrfout_d01_2007-08-01"  ; 通过设置正则表达式控制添加什么文件
fname_wrf  =   integertochar(34)+fname_wrf+integertochar(34)                      ; 添加引号,ncl中没有转义符号
fils_wrf     =   systemfunc("ls "+dir_wrf+" | egrep "+fname_wrf)  ; file paths + name
; print(fils_wrf)
f_wrf       =   addfiles(dir_wrf+fils_wrf+".nc", "r")

10. 短型转换为浮点型(具体选择看提供的算式)
Short2flt:      x_float = x_short*scale + offset
Short2flt_hdf:  x_float = scale*(x_short - offset)
offset: "add_offset", "OFFSET", "Offset", "_offset", "Intercept", "intercept"
scale: "SCALE", "Scale", "_scale", "scale_factor", "Scale_factor", "Slope" , "slope"

11. 选取某段的文件
例如:files1=systemfunc(“ls -1 wrfout_d01_2004-07-1[0-2]_* ")
则选取结果为

[ ] 内数字只能填写1-9

12. WRF 计算
   nc_file = addfile("wrfout_d01_2000-01-24_12:00:00.nc","r")
   T     = nc_file->T
   P     = nc_file->P
   PB    = nc_file->PB
   qv    = nc_file->QVAPOR
   
   T     = T + 300.        ; potential temperature in K.
   P     = P + PB          ; full pressure in Pa.   
   tk    = wrf_tk( P , T )     ; temperature in K.

   eth = wrf_eth ( qv, tk, P )

13.刻度朝内
tmXBMajorOutwardLengthF

14.查看nc变量  ncl_filedump

15.去除边框
res@mpPerimOn              = False
;res@pmTickMarkDisplayMode  = "Always"
注意结合投影方式,如兰伯特(WRF)  res@mpProjection  = "LambertConformal" 和 圆柱等面积(CESM)res@mpProjection  ="CylindricalEqualArea" 均可使用


16.调整label
   res@pmLabelBarHeightF         = 0.08     默认0.6
   res@pmLabelBarWidthF         = 0.4      默认0.15
   res@pmLabelBarOrthogonalPosF  = -0.1      默认0.02;向上移动
   res@pmLabelBarParallelPosF     = -0.1      默认0.5;向左移动

17.调整作图顺序cnFillDrawOrder
   PreDraw   在所有图之前作图,会被之后任何elements覆盖
   Draw
   PostDraw  在所有图之后作图,覆盖之前的elements

在兰溪提醒下再次编辑:
注释:本贴是转贴,非原创,是本人word保留的,但不记得原网址了...欢迎提供原网址.

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-24 17:37:09 | 显示全部楼层
总结得非常好
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-24 17:44:12 | 显示全部楼层
挺好的,赞一个
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-24 18:05:22 | 显示全部楼层
总结的好!厉害!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-5-24 18:10:57 | 显示全部楼层
注:本贴是转贴,非原创,是本人word保留的,但不记得原网址了...欢迎提供原网址.
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-24 20:10:54 | 显示全部楼层
总结的很好!感谢分享!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-24 20:30:19 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 成长值: 19710
发表于 2017-5-24 23:17:15 | 显示全部楼层
vuchiyuan 发表于 2017-5-24 18:10
注:本贴是转贴,非原创,是本人word保留的,但不记得原网址了...欢迎提供原网址.

如果转载请在标题或文中标注,以免造成误会~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-5-24 23:58:50 | 显示全部楼层
兰溪之水 发表于 2017-5-24 23:17
如果转载请在标题或文中标注,以免造成误会~

谢谢!已标注。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-25 10:11:36 | 显示全部楼层
谢谢分享!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表