[ncl-talk] fatal:Dimension sizes of left hand side and right hand side of assignment do not match . Finding a better way to read csv data in different files for further calculation.
Yuqiang Zhang
yuqiangzhang.thu at gmail.com
Mon Oct 31 21:17:08 MDT 2016
Try this "lines := asciiread(filename1(i),-1,"string")' "
That happens when you read different files, and they have different length
for each file.
From: ncl-talk-bounces at ucar.edu [mailto:ncl-talk-bounces at ucar.edu] On Behalf
Of grace
Sent: Monday, October 31, 2016 11:06 PM
To: ncl-talk <ncl-talk at ucar.edu>
Subject: [ncl-talk] fatal:Dimension sizes of left hand side and right hand
side of assignment do not match . Finding a better way to read csv data in
different files for further calculation.
Hi:
All,I have write a script to read and calculate .csv data according to the
"Reading csv"example on the NCL website,but it appears fatal :
fatal:Dimension sizes of left hand side and right hand side of assignment do
not match
fatal:["Execute.c":8567]:Execute: Error occurred at or near line 45 in file
csv_read.ncl
The line 45 is ' lines = asciiread(filename1(i),-1,"string")' ........
.........
........
But when I try to read only one csv data,the script can work out.
I don't know how to fix this,can you guys help me?
My csv date stored like this:
Each file include some same named csv data:
Can you help me or give me some good idea?
This is my script:
;
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
begin
filename1=systemfunc("ls /public/home/huanglei/cmaqdata/2016*/Zhouzhi.csv")
; fin1=addfiles(filename1,"r")
; printVarSummary(filename1)
print(filename1)
; exit
filenumber =38
time_al= new((/filenumber/),string,"No_FillValue")
oth_al = new((/filenumber/),float,"No_FillValue")
xa_al = new((/filenumber/),float,"No_FillValue")
tc_al = new((/filenumber/),float,"No_FillValue")
bj_al = new((/filenumber/),float,"No_FillValue")
xy_al = new((/filenumber/),float,"No_FillValue")
wn_al = new((/filenumber/),float,"No_FillValue")
ya_al = new((/filenumber/),float,"No_FillValue")
hz_al = new((/filenumber/),float,"No_FillValue")
yl_al = new((/filenumber/),float,"No_FillValue")
ak_al = new((/filenumber/),float,"No_FillValue")
sl_al = new((/filenumber/),float,"No_FillValue")
do i=0,filenumber-1
;---Read in file as array of strings so we can parse each line.
; printVarSummary(filename1(2))
lines = asciiread(filename1(i),-1,"string")
nlines = dimsizes(lines)-1 ; First line is a header
;
; Start reading in the fields we care about:
; The first line is a header, so skip this.
;
delim = ","
time = str_get_field(lines(13:36),1,delim)
oth = str_get_field(lines(13:36),2,delim)
xa = str_get_field(lines(13:36),3,delim)
tc = str_get_field(lines(13:36),4,delim)
bj = str_get_field(lines(13:36),5,delim)
xy = str_get_field(lines(13:36),6,delim)
wn = str_get_field(lines(13:36),7,delim)
ya = str_get_field(lines(13:36),8,delim)
hz = str_get_field(lines(13:36),9,delim)
yl = str_get_field(lines(13:36),10,delim)
ak = str_get_field(lines(13:36),11,delim)
sl = str_get_field(lines(13:36),12,delim)
; print(time)
; exit
; time_al(i,:)= time
; print(time_al(i,:))
oth_al(i) =sum(stringtofloat(oth))
xa_al(i) = sum(stringtofloat(xa))
tc_al(i) = sum(stringtofloat(tc))
bj_al(i) = sum(stringtofloat(bj))
xy_al(i) = sum(stringtofloat(xy))
wn_al(i) = sum(stringtofloat(wn))
ya_al(i) = sum(stringtofloat(ya))
hz_al(i) = sum(stringtofloat(hz))
yl_al(i) = sum(stringtofloat(yl))
ak_al(i) = sum(stringtofloat(ak))
sl_al(i) = sum(stringtofloat(sl))
; print(oth_al(i))
;exit
end do
; time_all=ndtooned(time_al)
oth_all=ndtooned(oth_al)
xa_all=ndtooned(xa_al)
tc_all=ndtooned(tc_al)
bj_all=ndtooned(bj_al)
xy_all=ndtooned(xy_al)
wn_all=ndtooned(wn_al)
ya_all=ndtooned(ya_al)
hz_all=ndtooned(hz_al)
yl_all=ndtooned(yl_al)
ak_all=ndtooned(ak_al)
sl_all=ndtooned(sl_al)
print(oth_all)
; exit
; calculate the avg
oth_avg=avg(oth_all)
xa_avg=avg(xa_all)
tc_avg=avg(tc_all)
bj_avg=avg(bj_all)
xy_avg=avg(xy_all)
wn_avg=avg(wn_all)
ya_avg=avg(ya_all)
hz_avg=avg(hz_all)
yl_avg=avg(yl_all)
ak_avg=avg(ak_all)
sl_avg=avg(sl_all)
ssx = hz_avg + ak_avg + sl_avg
nsx = ya_avg + yl_avg
print("oth="+oth_avg)
print("xa="+xa_avg)
print("tc="+tc_avg)
print("bj="+bj_avg)
print("xy="+xy_avg)
print("wn="+wn_avg)
print("ssx="+ssx)
print("nsx="+nsx)
title = new((/8/),string,"No_FillValue")
title =(/"xa","xy","wn","bj","tc","nsx","ssx","oth"/)
data = new((/8/),float,"No_FillValue")
data
=(/xa_avg,xy_avg,wn_avg,bj_avg,tc_avg,nsx,ssx,oth_avg/)
print(data)
;staname="changan"
output_file="/public/home/huanglei/cmaqdata/final_data/zhouzhi.txt"
write_table(output_file,"w",[/title,data/],"%s%9.5f")
end
My NCL version is 6.2.0.
How can I slove the problem?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20161031/470e9880/attachment.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 13876 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20161031/470e9880/attachment.png
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 14372 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20161031/470e9880/attachment-0001.png
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 14613 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20161031/470e9880/attachment-0002.png
More information about the ncl-talk
mailing list