爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: 风子

[经验总结] 10分钟入门NCL

  [复制链接]

新浪微博达人勋

 楼主| 发表于 2016-3-22 15:01:32 | 显示全部楼层
王磊 发表于 2016-3-22 14:59
强哥最后整一个pdf的版本就更好了。

恩,最后肯定整一份发给你

评分

参与人数 1金钱 +5 收起 理由
婧观气变 + 5

查看全部评分

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

新浪微博达人勋

发表于 2016-3-22 15:00:35 | 显示全部楼层
新学NCL的福音,跟着楼主学
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-22 15:00:23 | 显示全部楼层
太详细了,赞!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-22 14:59:37 | 显示全部楼层
强哥最后整一个pdf的版本就更好了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-22 14:59:04 | 显示全部楼层
强哥出品,比属精品
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-22 14:56:48 | 显示全部楼层
好帖子,楼主有心了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-22 11:12:06 | 显示全部楼层
风子 发表于 2016-3-22 10:08
哇,你这学习态度,我给一百分!

谢谢老师,板书有个别地方写错了,我标红了,你要改过来哦~~
还有,拜托你啦,早日写完哦,人家还要好好学习呢。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-22 10:40:52 | 显示全部楼层
本帖最后由 xuebiz 于 2016-3-22 14:17 编辑

#第三部分

ncl 24> arr2 = (/(/1, 2, 3, 4/), (/5, 6, 7, 8/)/)
ncl 25> arr3 = transpose(arr2)
ncl 26> print(arr2)



Variable: arr2
Type: integer
Total Size: 32 bytes
            8 values
Number of Dimensions: 2
Dimensions and sizes:        [dim0 | 2] x [dim1 | 4]
Coordinates:
(0,0)        1
(0,1)        2
(0,2)        3
(0,3)        4
(1,0)        5
(1,1)        6
(1,2)        7
(1,3)        8
ncl 27> print(arr3)


Variable: arr3
Type: integer
Total Size: 32 bytes
            8 values
Number of Dimensions: 2
Dimensions and sizes:        [dim1 | 4] x [dim0 | 2]
Coordinates:
(0,0)        1
(0,1)        5
(1,0)        2
(1,1)        6
(2,0)        3
(2,1)        7
(3,0)        4
(3,1)        8
ncl 28> arr1 := array_append_record(arr1, (/11, 12/), 0)
ncl 29> print(arr1)



Variable: arr1
Type: integer
Total Size: 48 bytes
            12 values
Number of Dimensions: 1
Dimensions and sizes:        [dim0 | 12]
Coordinates:
(0)        1
(1)        2
(2)        3
(3)        4
(4)        5
(5)        6
(6)        7
(7)        8
(8)        9
(9)        10
(10)        11
(11)        12
ncl 30> x1 = (/(/-3.71, -3.70, -3.03/),\
ncl 30>        (/-1.72, -3.70, -3.64/),\
ncl 30>        (/-1.91, -4.92, -4.85/),\
ncl 30>        (/-4.17, -4.68, -4.41/)/)
ncl 31> x2 = (/(/14.31, 15.95, 19.75/),\
ncl 31>        (/14.00, 10.11, 12.65/)/)

ncl 32> a = table_attach_row (x1, x2, 0)
fatal:Undefined identifier: (table_attach_row) is undefined, can't continue
fatal:["Execute.c":8565]:Execute: Error occurred at or near line 32

#3.2将第二个数组与第一个数组按行连结,这里出错了,应该是
a = table_attach_rows (x1, x2, 0)
------------row后面少了个“s”

后面有输出的,俺就pass了

#3.2将包含12个元素的一维数组arr1扩展到多维(4行12列)
,这里出错了,应该是
    write_matrix (arr4, "12I3", False)
------------应该是arr4不是arr2哦~~


#3.5
  • arr6 = where(arr.lt.0, arr+256, arr)  ; 将小于0的值加上256
  • arr6_inv = 1. / where(arr6.ne.0, arr6, arr6@_FillValue)  ; 禁用0除

  • ; 将数组某块方形区域以外置为缺测
  • hgt_mask = where((hgt@lat.ge.20 .and. hgt@lat.le.25  .and. \
  •                   hgt@lon.ge.110 .and. hgt@lon.le.120), hgt, hgt@_FillValue)
其中第一行应为:arr6 = where(arr6.lt.0, arr6+256, arr6) ,即后面的3个arr改为arr6
第二行和第六行,arr6@_FillValue和hgt@_FillValue没有定义


评分

参与人数 1金钱 +10 收起 理由
风子 + 10 已改正

查看全部评分

密码修改失败请联系微信:mofangbao
回复 支持 4 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2016-3-22 10:08:25 | 显示全部楼层

哇,你这学习态度,我给一百分!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-22 09:48:16 | 显示全部楼层
本帖最后由 xuebiz 于 2016-3-22 11:14 编辑

#第二部分

ncl 6> arr1 = ispan(1,10,1)
ncl 7> print(arr1(4))



Variable: arr1 (subsection)
Type: integer
Total Size: 4 bytes
            1 values
Number of Dimensions: 1
Dimensions and sizes:        [1]
Coordinates:
(0)        5
ncl 8> print(hgt(0,4,1,10))


Variable: hgt (subsection)
Type: float
Total Size: 4 bytes
            1 values
Number of Dimensions: 1
Dimensions and sizes:        [1]
Coordinates:
Number Of Attributes: 24
  lon :        25
  lat :        87.5
  level :        600
  time :        1832064
  missing_value :        -32767
  valid_range :        ( -1500, 35799 )
  missing_value_original :        32766
  _FillValue :        -32767
  _FillValue_original :        -32767
  long_name :        Monthly Geopotential Heights on Pressure Levels
  unpacked_valid_range :        ( -1500, 35800 )
  actual_range :        ( -209, 32301 )
  units :        m
  precision :        0
  least_significant_digit :        0
  GRIB_id :        7
  GRIB_name :        HGT
  var_desc :        Geopotential height
  dataset :        NCEP/DOE AMIP-II Reanalysis (Reanalysis-2) Monthly Averages
  level_desc :        Pressure Levels
  statistic :        Individual Obs
  parent_stat :        Other
  standard_name :        geopotential_height
  cell_methods :        time: mean (montly from 6-hourly values)
(0)        3751
ncl 9> print(arr1(2:4))


Variable: arr1 (subsection)
Type: integer
Total Size: 12 bytes
            3 values
Number of Dimensions: 1
Dimensions and sizes:        [3]
Coordinates:
(0)        3
(1)        4
(2)        5
ncl 10> print(arr1(1::2))


Variable: arr1 (subsection)
Type: integer
Total Size: 20 bytes
            5 values
Number of Dimensions: 1
Dimensions and sizes:        [5]
Coordinates:
(0)        2
(1)        4
(2)        6
(3)        8
(4)        10
ncl 11> print(hgt(:15:2,0,15,29))


Variable: hgt (subsection)
Type: float
Total Size: 32 bytes
            8 values
Number of Dimensions: 1
Dimensions and sizes:        [time | 8]
Coordinates:
            time: [1832064..1842240]
Number Of Attributes: 23
  lon :        72.5
  lat :        52.5
  level :        1000
  missing_value :        -32767
  valid_range :        ( -1500, 35799 )
  missing_value_original :        32766
  _FillValue :        -32767
  _FillValue_original :        -32767
  long_name :        Monthly Geopotential Heights on Pressure Levels
  unpacked_valid_range :        ( -1500, 35800 )
  actual_range :        ( -209, 32301 )
  units :        m
  precision :        0
  least_significant_digit :        0
  GRIB_id :        7
  GRIB_name :        HGT
  var_desc :        Geopotential height
  dataset :        NCEP/DOE AMIP-II Reanalysis (Reanalysis-2) Monthly Averages
  level_desc :        Pressure Levels
  statistic :        Individual Obs
  parent_stat :        Other
  standard_name :        geopotential_height
  cell_methods :        time: mean (montly from 6-hourly values)
(0)        220
(1)        189
(2)        120
(3)        46
(4)        151
(5)        228
(6)        253
(7)        177
-----------太激动,中间手误敲错2次,强迫症患者们,行号不连续请无视啊。。。
ncl 14> hgt_500 = hgt(0, {500}, :, :)
ncl 15> hgt_500_0 = hgt(time| 0, {level| 500:700}, {lon| 90:120}, lat| :)
ncl 16> idx = (/1,3,4,5,7,8/)
ncl 17> print(arr1(idx))



Variable: arr1 (subsection)
Type: integer
Total Size: 24 bytes
            6 values
Number of Dimensions: 1
Dimensions and sizes:        [6]
Coordinates:
(0)        2
(1)        4
(2)        5
(3)        6
(4)        8
(5)        9
ncl 18> a = (/1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5/)
ncl 19> a@_FillValue = 5
ncl 20> valid = ind(ismissing(a))
ncl 21> a(valid) = 0
ncl 22> a(ind(a.ne.0)) = -a(ind(a.ne.0)) * 2 + 1
ncl 23> print(a)


Variable: a
Type: integer
Total Size: 60 bytes
            15 values
Number of Dimensions: 1
Dimensions and sizes:        [15]
Coordinates:
Number Of Attributes: 1
  _FillValue :        5
(0)        -1
(1)        -3
(2)        -5
(3)        -7
(4)        0
(5)        0
(6)        -7
(7)        -5
(8)        -3
(9)        -1
(10)        -1
(11)        -3
(12)        -5
(13)        -7
(14)        0
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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