爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5239|回复: 8

NCL文件循环读取问题求助

[复制链接]

新浪微博达人勋

发表于 2021-11-29 22:20:10 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 一大碗年糕 于 2021-11-30 12:48 编辑

代码如下
begin
;---文件读取循环-------------------------
mon = (/"01","02","03","04","05","06","07","08","09","10","11","12"/)
diri = "/home/huangwenshuo/work_radar/data/radar/2019/2019cgz/"
list_of_files = systemfunc("ls "+diri+"*.txt")
print(list_of_files)
do a = 0, dimsizes(list_of_files)-1
data = asciiread(list_of_files(a), -1, "string")
delim1 = " "
delim2 = "/"
delim3 = ":"
row = dimsizes(data)
;------数据读取------------------
date = str_get_field(data, 1, delim1)
time = str_get_field(data, 2, delim1)
height = str_get_field(data, 3, delim1)
;---------------------------------
year = toint(str_get_field(date,1,delim2))
month = toint(str_get_field(date,2,delim2))
day = toint(str_get_field(date,3,delim2))
hour = toint(str_get_field(time,1,delim3))
z = tofloat(height)
;------数据预处理-------------------
;------小时平均-------------------
d = days_in_month(year(0), month(0))
hour_mean = new((/d,24/),float)
do i = 1, d
    do j = 0, 23
hour_mean(i-1,j) = avg(z(ind(day.eq.i.and.hour.eq.j)))
    end do
end do
;------日平均----------------------
day_mean = dim_avg_n_Wrap(hour_mean, 1)
;print(day_mean)
;------定义变量---------------
hour_mean!0 = "Day"
hour_mean!1 = "Hour"
hour_mean&Day = ispan(0, d-1, 1)
hour_mean&Hour = ispan(0, 23, 1)
hour_mean@long_name = "average PBL height of every hour"
day_mean!0 = "Day"
day_mean&Day = ispan(0, d-1, 1)
day_mean@long_name = "average PBL height of every day"
;------输出文件--------------
fout = addfile("2019_cgz_"+mon(a)+".nc", "c")
fout->h_mean = hour_mean
fout->d_mean = day_mean
end do
delete(data)
end
报错
fatal:Dimension sizes of left hand side and right hand side of assignment do not match
fatal:["Execute.c":8637]:Execute: Error occurred at or near line 8 in file test.ncl即加粗行报错了,我感觉不是应该可以循环读入吗?况且还加了delete(data),晚上就卡这了半天了愣奇怪原因在哪求助大佬们!



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

新浪微博达人勋

发表于 2021-11-30 09:32:13 | 显示全部楼层

回帖奖励 +5 金钱

改成 “:=” 试一试? 有可能每次读取的大小不一样,需要重赋值
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-11-30 09:35:02 | 显示全部楼层
或者delete(data) 放到第一个do循环里面
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-11-30 11:15:25 | 显示全部楼层

回帖奖励 +5 金钱

是不是循环到2月就执行出错了,每月日数都不一样,你的date/time/day 之类的数据是不是大小会不同,不好找的话都delete掉试试
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-11-30 12:46:45 | 显示全部楼层
mushroom111 发表于 2021-11-30 09:35
或者delete(data) 放到第一个do循环里面

恩确实是delete的问题忘了所有变量都delete了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-11-30 12:47:37 | 显示全部楼层
t_imba 发表于 2021-11-30 11:15
是不是循环到2月就执行出错了,每月日数都不一样,你的date/time/day 之类的数据是不是大小会不同,不好找 ...

感谢!之前就delete个data,想当然以为全消除了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-8-16 11:08:03 | 显示全部楼层
请问楼主后来是怎么解决的呀,如何delete全部变量呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-8-16 14:12:24 | 显示全部楼层
本帖最后由 一大碗年糕 于 2023-8-16 16:16 编辑
nightelfxu 发表于 2023-8-16 11:08
请问楼主后来是怎么解决的呀,如何delete全部变量呢

有点忘了也,如果是delete删除多变量的话NCL可以支持list删除,https://www.ncl.ucar.edu/Document/Functions/Built-in/delete.shtml
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-8-16 14:35:44 | 显示全部楼层
一大碗年糕 发表于 2023-8-16 14:12
有点忘了也,如果是delete删除多变量的话NCL可以支付list删除,https://www.ncl.ucar.edu/Document/Funct ...

谢谢楼主,解决啦!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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