爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: packard

[经验总结] 分享ncl 源代码的自动搜索脚本(以bash编写)

[复制链接]

新浪微博达人勋

 楼主| 发表于 2018-3-28 11:55:01 | 显示全部楼层
吵吵人 发表于 2018-3-27 15:47
请问“新建~/bin/gncl 文件”中的gncl文件后缀是什么,cygwin的新建命令是什么?(纯小白一个,跪谢赐教! ...

谢谢你对本帖的关注。这个脚本使用了很多Linux Bash的语法和命令,大概是不适用在Cygwin。
如果你非常需要这样的脚本,鼓励你试试按下面的链接安装 Win10(64位)系统下的Linux子系统的ncl。这样的话,应该就跟真正的Linux Bash没有区别了。在Linux系统下,gncl 文件可以不用后缀。
http://bbs.06climate.com/forum.p ... 1&fromuid=87401
但话又说回来,如果还是初学者的话,短期内可能还用不着搜索理解ncl的源代码吧。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-3-28 17:48:13 | 显示全部楼层
其实我是需要看其中的一个函数的实现方法,并不是要真正的使用ncl。我已经下载了源代码,还是谢谢~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-3-28 21:55:49 | 显示全部楼层
吵吵人 发表于 2018-3-28 17:48
其实我是需要看其中的一个函数的实现方法,并不是要真正的使用ncl。我已经下载了源代码,还是谢谢~

把那个函数名告诉我?我给你搜?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-2 16:32:35 | 显示全部楼层
packard 发表于 2018-3-28 21:55
把那个函数名告诉我?我给你搜?

gsn_csm_vector_scalar_map
gsn_streamline_scalar_map
gsn_streamline
这三个,下了一堆源码,没找到,如果能帮我找到,小白表示非常感谢~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-4-2 22:36:49 | 显示全部楼层
吵吵人 发表于 2018-4-2 16:32
gsn_csm_vector_scalar_map
gsn_streamline_scalar_map
gsn_streamline

你搜的这三个函数都不是在源代码实现的,而是在ncl代码实现的
下面这些地址是相对于预编译的ncl包的。我看这两个文件在 源代码包里 ni/src/examples/gsun/ 下有一样的。
/n/home05/pchan/sw/ncl-6.4.0/lib/ncarg/nclscripts/csm/gsn_csm.ncl:11385:undef("gsn_csm_vector_scalar_map")
/n/home05/pchan/sw/ncl-6.4.0/lib/ncarg/nclscripts/csm/gsn_code.ncl:11596:undef("gsn_streamline_scalar_map")
/n/home05/pchan/sw/ncl-6.4.0/lib/ncarg/nclscripts/csm/gsn_code.ncl:9805:undef("gsn_streamline")
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-3 10:27:34 | 显示全部楼层
packard 发表于 2018-4-2 22:36
你搜的这三个函数都不是在源代码实现的,而是在ncl代码实现的
下面这些地址是相对于预编译的ncl包的。我 ...

在包里找到了。另外,请问是否可以在gsn、csm库中添加自己的函数?一个新手半个月之内是否有可能?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-4-3 11:25:58 | 显示全部楼层
吵吵人 发表于 2018-4-3 10:27
在包里找到了。另外,请问是否可以在gsn、csm库中添加自己的函数?一个新手半个月之内是否有可能?

如果我要添加自己的函数的话,我会把原装的ncl 代码拷贝到当前目录(./),然后修改。那些ncl代码定义一个函数前,都会进行 undef("gsn_csm_vector_scalar_map") 的操作,于是只要 load "./gsn_csm.ncl" (load修改过的gsn_csm.ncl)放在load其他脚本之后,那就会覆盖之前的函数定义。
我觉得对新手的话,半个月应该是有可能的。
有困难随时联系~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-3 15:16:41 | 显示全部楼层
packard 发表于 2018-4-3 11:25
如果我要添加自己的函数的话,我会把原装的ncl 代码拷贝到当前目录(./),然后修改。那些ncl代码定义一个 ...

我看了NCL的用户手册,也是这样想的,复制一份,再改。目前就是很太熟悉一些函数,比如说gsnp_write_debug_info这样函数看着大致能懂,但是详细的就不知道了。而且官网上的functions那一栏也查不到,还有点不知所措...
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-4-3 23:05:06 | 显示全部楼层
吵吵人 发表于 2018-4-3 15:16
我看了NCL的用户手册,也是这样想的,复制一份,再改。目前就是很太熟悉一些函数,比如说gsnp_write_debu ...

看起来你学的蛮快的。
有一些比较底层的函数,比如gsnp_write_debug_info,没有在官网宣传,因为这些函数是做一些比较底层的操作(写报错信息),一般用户不用直接调用。
/n/home05/pchan/sw/ncl-6.4.0/lib/ncarg/nclscripts/csm/gsn_code.ncl:1711:undef("gsnp_write_debug_info")
主要还是看你要实现什么功能吧,一般来说我觉得gsn, csm这些画图的函数还都挺好的,我没想到什么东西需要修改的。
倒是一些做日期转换的函数(比如 cd_inv_string),没有支持其他日历(如,全部不闰年),这时候我会加两行修改一下。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-4 09:23:04 | 显示全部楼层
packard 发表于 2018-4-3 23:05
看起来你学的蛮快的。
有一些比较底层的函数,比如gsnp_write_debug_info,没有在官网宣传,因为这些函 ...

我也想直接调用函数,实现个什么啊,可是老师呢,希望我把函数原理弄懂,最好能够给它换个算法啥的,我也很绝望...
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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