- 积分
- 680
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-9-29
- 最后登录
- 1970-1-1

|
NCL
系统平台: |
|
问题截图: |
|
问题概况: |
批量处理HDF5格式的数据,出现变量维数错误,但数据的确是两维的。还有就是怎么读取文件的文件名? |
我看过提问的智慧: |
看过 |
自己思考时长(天): |
2 |
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
处理GPM卫星的数据,要筛选出中国地区有数据的文件,没有数据的文件就删除。我的脚本如下:
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
dir="/home/weilei/"
dirp="/home/weilei/"
filenames=systemfunc("cd /home/weilei ; ls *.HDF5")
files = systemfunc("ls /home/weilei/2A.GPM.DPR.V8-*.HDF5")
h5_file= addfiles(files,"r")
lat1 = 3.86
lat2 = 53.55
lon1 = 73.66
lon2 = 135.03
data_raw = h5_file[:]->/NS/SLV/zFactorCorrectedESurface
data_raw@_FillValue = data_raw@CodeMissingvalue
data_raw@_FillValue = -2.147484e+09
printVarSummary(data_raw)
printMinMax(data_raw,0)
longitude=h5_file[:]->/NS/Longitude
latitude=h5_file[:]->/NS/Latitude
longitude@units = "degrees_east"
latitude@units = "degrees_north"
nsizescan=dimsizes(data_raw(:,0))
nsizeray=dimsizes(data_raw(0,:))
print(nsizescan)
print(nsizeray)
sumdata=0.0
do ns=0,nsizescan-1
do nr=0,nsizeray-1
if (latitude(ns,nr).ge.lat1.and.latitude(ns,nr).le.lat2) then
if (longitude(ns,nr).ge.lon1.and.longitude(ns,nr).le.lon2) then
sumdata=sumdata+data_raw(ns,nr)
end if
end if
end do
end do
print(sumdata)
if (ismissing(sumdata).or.sumdata.eq.0.0) then
system("rm -rf "+filenames)
end if
end
运行后的问题如图,第40行是:system("rm -rf "+filenames),filenames在前面定义了,是想读取所有文件的文件名,但好像行不通。
还请大佬们指教!
|
|