- 积分
- 3918
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2015-10-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
各位大神,我现在有一些包含全国站点的地面风场资料,是按月分的。
格式为:
50136 5329 12221 102796 1968 8 1 18
我需要找出特定的一些站点数据,站点名放在了BB.TXT里。
现在为了找到所需站点的所有数据并将它们放在一个NC文件里,我做了以下处理
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"
begin
fname = "/public/wa/1967--/sta/BB.txt"
stan = asciiread(fname,-1,"float")
d= dimsizes(stan)
;print(d)
diri = "/public/wa/1967--/win/"
files = systemfunc ("ls "+ diri + "SURF_CLI_CHN_MUL_DAY-WIN*.txt")
f = addfiles(files,"r")
ndim = dimsizes(files)
nndim= ndim*31
; print(ndim)
id = new((/nndim/),"float")
lat = new((/nndim/),"float")
lon = new((/nndim/),"float")
win = new((/nndim/),"float")
yr = new((/nndim/),"float")
mon = new((/nndim/),"float")
day = new((/nndim/),"float")
mm=0
do i =0,ndim-1
t = asciiread( files(i),-1,"string")
nrows = dimsizes(t)
iid = new((/nrows/),"float")
iid = stringtofloat(str_get_field(t, 1, " "))
dd = dimsizes(iid)
do j=0,dd-1
do k=0,d-1
if(iid(j) .eq. stan(k)) then
id(mm) = stringtofloat(str_get_field(t, 1, " "))
lat(mm) = stringtofloat(str_get_field(t, 2, " "))*0.01
lon(mm) = stringtofloat(str_get_field(t, 3, " "))*0.01
yr = stringtofloat(str_get_field(t, 5, " "))
mon = stringtofloat(str_get_field(t, 6, " "))
day = stringtofloat(str_get_field(t, 7, " "))
win(mm) = stringtofloat(str_get_field(t, 8, " "))*0.1
mm=mm+1
print(mm)
end if
end do
end do
delete(t)
delete(iid)
end do
data2 = new((/mm,6/),"float")
data2!0 = "id"
data2!1 = "yr"
data2!2 = "mon"
data2!3 = "day"
data2&id = id(0:mm-1)
data2&id@lat = lat(0:mm-1)
data2&id@lon = lon(0:mm-1)
data2 = (/win(0:mm-1)/)
printVarSummary(data2)
print(data2)
但是提示红色部分有错,fatal:Dimension sizes on right hand side of assignment do not match dimension sizes of left hand side
fatal:["Execute.c":8575]:Execute: Error occurred at or near line 43 in file select.ncl
请问这个是什么问题?另外我的这个循环可以得到我要的结果么?服务器运行太慢,我根本等不到输出,麻烦大家帮我看看了!感谢!
|
|