我想从86年的全球数据选取出中国数据,采用了循环,其中pr是三维数据(time,lat,lon)
mask_in=new((/86,180,360/),float)
do i=0,85
mask_in(i,:,:) = shapefile_mask_data(pr(i,:,:),shp_filename,True)
mask_io = where(ismissing(mask_in), 0, 1)
erai_mask(i,:,:) = pr(i,:,:)
end do
erai_mask = mask (erai_mask, conform(erai_mask, mask_io, (/0,1,2/)), 1)
copy_VarCoords(p,erai_mask)
采用循环时mask_in(i,:,:) = shapefile_mask_data(pr(i,:,:),shp_filename,True)这一行报错,报错原因是:
fatal:Dimension size mismatch on subscript #1, left-hand and right-hand side dimensions do not match
fatal:["Execute.c":8637]:Execute: Error occurred at or near line 37 in file china.ncl
之前只选取一年的代码如下,可以成功选取
mask_in = shapefile_mask_data(pr(0,:,:),shp_filename,True)
mask_io = where(ismissing(mask_in), 0, 1)
erai_mask = pr(0,:,:)
erai_mask = mask (erai_mask, conform(erai_mask, mask_io, (/0,1/)), 1)
copy_VarCoords(pr(0,:,:),erai_mask)
大家遇到过类似问题吗,我该怎么改循环