爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16128|回复: 10

[其他] 【已解决】linux敲命令太烦,想NCL编循环实现

[复制链接]
发表于 2014-1-2 16:08:16 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Jillou娄 于 2014-1-10 13:54 编辑

一直需要将Time fixed的nc文件转成Time unlimited文件,向来手动一行一行敲命令实现,最近实在觉得太机械,于是想起了ncl神器。但凭着捉襟见肘的编程能力和呼之将倾的程序基础,实在不能实现,遂提交万能的坛友,求支援。


文件名为20050102T.nc,20050304T.nc,20050506T.nc,20050708T.nc,20050910T.nc,20051112T.nc
文件命名很规律,现在就像在NCL中循环这一年的6个文件


do @@@@
system(“ncks --mk_rec_dmn time 2005@@@@T.nc 2005@@@@T_.nc”)
end do

怎么实现??谢谢。


已解决:利用ncl中的sprinti(),将整数型转化为字符型~~~~
do i=1,11
filename1=("2004"+sprinti("%0.2i",i)+sprinti("%0.2i",i+1)+"T.nc")
filename2=(sprinti("%0.2i",i)+"_"+sprinti("%0.2i",i+1)+"_T.nc")
nco="ncks --mk_rec_dmn time "+ filename1 +" "+ filename2
print("nco="+ nco)
system(nco)
i=i+1
end do




密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-1-2 16:17:55 | 显示全部楼层
do i=1,12
if(i<10) then
system("ncks --mk_rec_dmn time 20050(i)0(i+1)T.nc 0(i)_0(i+1)T_.nc”)
else
system("ncks --mk_rec_dmn time 2005(i)(i+1)T.nc (i)_(i+1)T_.nc”)
i=i+2
end do
思路是这样的,但不太清楚上面加括号的文件名怎么处理,请帮忙~
密码修改失败请联系微信:mofangbao
发表于 2014-1-2 17:58:38 | 显示全部楼层
看看这个网址吧,官网上关于字符串数据的处理很多的string处理ncl中functions
实在不行可以使用bash shell。当然我看着应该还是比较简单的

点评

哈哈,谢谢你,非常很有用,已解决  发表于 2014-1-10 13:46
密码修改失败请联系微信:mofangbao
发表于 2014-1-2 20:52:40 | 显示全部楼层
"string 1"+"string 2"+"string 3"
P.S.
ncl 中数组下标从0开始
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-1-2 21:07:46 | 显示全部楼层

我觉得我这里更多的是Fortran里的命名规则,ncl函数不知能不能用上,但是谢谢你
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-1-2 21:08:25 | 显示全部楼层
易小凯 发表于 2014-1-2 20:52
"string 1"+"string 2"+"string 3"
P.S.
ncl 中数组下标从0开始

求明晰
密码修改失败请联系微信:mofangbao
发表于 2014-1-3 08:39:37 | 显示全部楼层

就是用+把多个字符串连接起来
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-1-3 09:14:08 | 显示全部楼层
易小凯 发表于 2014-1-3 08:39
就是用+把多个字符串连接起来

3Q,我试试~
密码修改失败请联系微信:mofangbao
发表于 2014-2-25 21:11:57 | 显示全部楼层
{:5_213:}{:5_213:}楼主大神啊~~~
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-2-26 09:55:03 | 显示全部楼层

这个方法很蠢yeah
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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