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
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
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 个评论
Anne
Anne 2018-9-22
Hey Yoichi, thank you for your suggestion. This post is already very old, and I learned CDO and NCO to handle netcdf data in a more efficient way. I can recommend them to anyone that has to analyze/regrid/handle a lot of netcdf files:)
xinyu dong
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!

Translated by