- 积分
- 42
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-1-15
- 最后登录
- 1970-1-1
|
发表于 2018-10-4 16:13:05
|
显示全部楼层
本帖最后由 haysen 于 2018-10-4 16:14 编辑
这个是我之前写的,前提上中间不却天
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"
begin
ymdStrt = 19520101 ; start yyyymmdd
ymdLast = 20121231 ; last
yrStrt = ymdStrt/10000
yrLast = ymdLast/10000
obj_name = "SM1"
value_name = "sm1"
fdir = "/home/water/"+obj_name+"/"
fname = "VIC_Output_China_"+value_name+"_"+yrStrt+".nc"
f = addfile(fdir+fname,"r")
value_temp = f->$value_name$
printVarSummary(value_temp)
dims = dimsizes(value_temp)
values = new((/366*(yrLast-yrStrt+1),dims(1),dims(2)/),typeof(value_temp))
delete(value_temp)
delete(f)
day_nums =0
do i = yrStrt,yrLast
print(i+" ")
fname = "VIC_Output_China_"+value_name+"_"+i+".nc"
f = addfile(fdir+fname,"r")
value_temp = f->$value_name$
dims = dimsizes(value_temp)
values(day_nums:day_nums + dims(0)-1,:,:) = value_temp
day_nums = day_nums + dims(0)
delete(value_temp)
end do
print("read year ok")
value_temp = values(0:day_nums-1,:,:)
delete(values)
time = ispan(0,day_nums-1,1)
time@units = "days since "+yrStrt+"-01-01"
time@calendar = "standard"
lat = f->lat
lon = f->lon
outputFileName = "../../output/daily_"+value_name+"_"+yrStrt+"_"+yrLast+".nc"
sysString = "/bin/rm -f "+outputFileName;
system(sysString)
ncdf = addfile(outputFileName,"c") ;//打开文件
filedimdef(ncdf,"time",-1,True) ;//设置时间维度
temp = value_temp
temp!0 = "time" ;//第一维名字设置成time
temp!1 = "lat" ;//第二维名字设置成Lat
temp!2 = "lon" ;//第三维名字设置成lon
temp&time = time ;//保存time
temp&lat = lat ;//保存lat
temp&lon = lon ;//保存lon
temp@short_field_name = value_temp@short_field_name
temp@long_field_name = value_temp@long_field_name
temp@units = value_temp@units ;//设置单位
temp@_FillValue = value_temp@_FillValue
ncdf->$value_name$ = temp ;//将prcp保存到nc文件
printVarSummary(temp)
print("save Nc success")
end
|
|