首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ncl中使用循环对文件进行排序

在ncl中使用循环对文件进行排序
EN

Stack Overflow用户
提问于 2014-03-01 00:39:02
回答 1查看 1.4K关注 0票数 0

我有50个文件,我想一个接一个地运行脚本,并且每次都用唯一的名称保存生成的图形。我用来创建图形的脚本很好,但是遍历这50个文件就不行了。我遗漏了我正在使用的许多资源。我的脚本是:

代码语言:javascript
复制
    load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
    load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
    load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
    load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"

    do n=1961,2010
        begin
        fnam="/home/cohara/TempData/yearly_data/average/average_" + sprinti("0.4n",n) + ".nc"
        x=addfile(fnam,"r")
        data=x->var61(0,0,:,:)
        xwks=gsn_open_wks("ps","Average_" + sprinti("0.4n",n)
        resources=True
        resources@tiMainString="Average Annual Temperature" + sprinti("0.4n",n)
            plot=gsn_csm_contour_map(xwks,data,resources)
        end
    end do
EN

回答 1

Stack Overflow用户

发布于 2014-03-19 23:58:19

问题出在您对sprinti的调用中,您正在执行以下操作:

代码语言:javascript
复制
sprinti("0.4n",n) 

它应该在哪里:

代码语言:javascript
复制
sprinti("%0.4i",n)

其中'i‘代表整数( the NCL webpage的文档也使用'i’作为变量名,这可能会导致一些混淆……)

这应该是可行的:

代码语言:javascript
复制
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"

do n=1961,2010
    begin
    fnam="/home/cohara/TempData/yearly_data/average/average_" + sprinti("%0.4i",n) + ".nc"
    x=addfile(fnam,"r")
    data=x->var61(0,0,:,:)
    xwks=gsn_open_wks("ps","Average_" + sprinti("%0.4i",n)
    resources=True
    resources@tiMainString="Average Annual Temperature" + sprinti("%0.4i",n)
        plot=gsn_csm_contour_map(xwks,data,resources)
    end
end do
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22100791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档