How to do matrix regridding in matlab
18 次查看(过去 30 天)
显示 更早的评论
Hello, I am trying to use matlab to regrid a dataset. The original dataset is 128x193x12 (longitude x latitude x time) and I want to regrid it to a 180x193x12 matrix. I have the latitude of the original dataset as a 64x1 single (Dust_Data_lat), the longitude as a 128x1 single (Dust_Data_lon). For the 'final' grid (180x193x12), I have a latitude matrix 180x193 (constant columns, DUST_IN_lat) and a longitude matrix 180x193 (constant rows, DUST_IN_lon). I think the function griddata is best for this as the grid is irregular. If I try however, it complains about 'Z', which I don't know, see here for the first time dimension of the data:
a=Dust_LGM(:,:,1);
data_regridded = griddata(Dust_Data_lon,Dust_Data_lat,a,DUST_IN_lon,DUST_IN_lat);
The error I get is:
Error using griddata (line 109)
The lengths of X and Y must match the size of Z.
Would you know where the mistake is?
2 个评论
Matt J
2018-4-4
You should close your previous question by accept-clicking Jos' answer, since it appears you were happy with that answer. This will increase the likelihood of responses to future questions.
回答(1 个)
Matt J
2018-4-6
编辑:Matt J
2018-4-6
In griddata(x,y,z,xq,yq) the input arrays x,y,z must have the same number of elements. You have 128*193=24704 elements in a. You must therefore have 24704 corresponding elements in both Dust_Data_lon and Dust_Data_lat.
15 个评论
xinyu dong
2019-7-19
Hey Anne. I am struggling how to regrid with lon and lat right now. Do you have any recommandation? Thank you very much!
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!