本文所用代码基于Linux系统
用ChatGPT写了一个范本然后自己改吧了一下,感觉ChatGPT写的代码还是只有框架,里面的细节十分差劲,不知道是我的指令不行还是我们冷门学科给的训练量不够
begin
fpath = "/ncep_6h/"
com = (/"uwnd","vwnd"/)
lat_min = -31.0 ; Minimum latitude
lat_max = 31.0 ; Maximum latitude
lon_min = 122.0 ; Minimum longitude
lon_max = 284.0 ; Maximum longitude
do t=2010,2010
do c=0,1
fname := fpath+com(c)+".10m.gauss."+t+".nc"
f=addfile(fname,"r")
lat := f->lat
lon := f->lon
lat_indices = lat({lat_min:lat_max})
lon_indices = lon({lon_min:lon_max})
ti := f->time
print("interpolation begion")
tmp = f->$com(c)$(:,{lat_min:lat_max}, {lon_min:lon_max})
tl := dimsizes(ti)
latl := dimsizes(lat_indices)
lonl := dimsizes(lon_indices)
data1 := tofloat(tmp)
data_out := reshape(data1,(/tl, 1, latl, lonl/))
data_out!0="time"
data_out!1="level"
data_out!2="lat"
data_out!3="lon"
copy_VarAtts(tmp,data_out)
print("interpolation end")
f_out = addfile(com(c)+".10m.gauss.test."+t+".nc","c")
f_out->$com(c)$ = data_out(:,:,:,:)
f_out->lat = lat_indices
f_out->lon = lon_indices
end do
end do
end