爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 14210|回复: 11

[其他] ncl做批量画图时改进问题

[复制链接]

新浪微博达人勋

发表于 2012-10-22 09:21:28 | 显示全部楼层 |阅读模式

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

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

x
do while(date_start .lt. "20101231 23" )
year=systemfunc("date +%Y  -d '"+date_start+"'")
month=systemfunc("date +%m -d '"+date_start+"'")
day=systemfunc("date +%d   -d '"+date_start+"'")
hour=systemfunc("date +%H  -d '"+date_start+"'")
  precip=cbinread("FY2E_FDI_ALL_NOM_"+year+""+month+""+day+"_"+hour+"00.rad",(/601,1001/),"double")
res@tiMainString = "GuangXi Radiation 1km Data"
res@gsnLeftString=date_start
res@gsnRightString="W/m~S~2~N~"
plot=gsn_csm_contour_map(wks,precip,res)   
draw(plot)
system("rm -f 1km_gx*.png")
frame(wks)
system("mv 1km_gx*.png "+year+month+day+hour+".png")
date_start=systemfunc("date +%Y%m%d' '%H -d ' "+date_start+" 1 hour'")
print(date_start+"")
end do
这个已经可以画图,但是因为有的数据没有,中间就会停止画图,还得人工改时间才能进行画图。有没有一个更好的方法来进行批量画图,希望大神能知道一下,谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-26 11:20:19 | 显示全部楼层
FILES = systemfunc (" ls -1 "+"*.nc ")        ;从这里开始到下面都是读取文件的命令
  numFILES = dimsizes(FILES)
  print("numFILES = " + numFILES)
  print(FILES)
  print (" ")
do i = 0,numFILES-1            
    a = addfile(FILES(i),"r")                
.......................后面的都一样
        print(FILES(i))                               
    tos=a->tos(:,:,:)   
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2012-10-24 10:26:09 | 显示全部楼层
我也遇到了同样的问题,能否留下联系方式qq125165813
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-26 21:20:58 | 显示全部楼层
我批量画图的脚本,不知道能不能给你帮助。我也是才学,菜鸟级,大家一起讨论。

createCam2_V5.ncl

15.68 KB, 下载次数: 108, 下载积分: 金钱 -5

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

新浪微博达人勋

发表于 2014-2-20 08:46:31 | 显示全部楼层
正想做批量画图这件事,学习一下!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-2-20 09:39:30 | 显示全部楼层
推荐likailing2008的方法,我一直在用,感觉还行,顺求lz的完整脚本绘制风云卫星
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-2-28 19:20:04 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-1 22:42:09 | 显示全部楼层
andrewsoong 发表于 2014-2-28 19:20
求完整的脚本啊~~~

begin

  FILES = systemfunc (" ls -1 "+"*.nc ")        ;从这里开始到下面都是读取文件的命令
  numFILES = dimsizes(FILES)
  print("numFILES = " + numFILES)
  print(FILES)
  print (" ")


  type = "pdf"     ;开始指定文件输出的类型

  wks = gsn_open_wks(type,"sst_100year_avg")  ;指定文件输出的类型和名称
  gsn_define_colormap(wks,"gui_default")
  plot = new(24,graphic)                                    ;括号中的24表示要画24张图片

        res=True
       
     这里就是res设置
       
;=====================================================================================
    do i = 0,numFILES-1            ; TIME LOOP这个是最重要的,开始循环读入文件,ncl是从0开始,到文件夹所在文件数数量减一结束   
    a = addfile(FILES(i),"r")         ;把所有读入的文件写入一个叫做a的文件中       
        print(FILES(i))                                ;把读入的文件打印出来       
       
        tos=a->tos(:,:,:)
        tos_ave=dim_avg_Wrap( tos(lat|:, lon|:, time|:) )
         plot(i)= gsn_csm_contour_map_ce(wks,tos1(:,:),res)  
  end do      
这个是求海温平均的程序,循环结构就是这样,然后中间的自己设置
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-1 22:46:10 | 显示全部楼层
likailing2008 发表于 2014-3-1 22:42
begin

  FILES = systemfunc (" ls -1 "+"*.nc ")        ;从这里开始到下面都是读取文件的命令

非常感谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-3-24 16:26:32 | 显示全部楼层
你好,请问批量读取数据再批量画图(daily资料txt文件),一张图放几张图片,如何出图
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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