# Select four surrounding grid points

5 views (last 30 days)
James on 14 Feb 2013
I have the latitude and longitude location of a certain observation and a square latitude and longitude grid of model data. I need to calculate a bilinear interpolation of the 4 model grid points surrounding this observation to the observation. However I'm stuck on how to select these surrounding 4 grid points? Any ideas as to how I could do this in Matlab would be appreciated?
I've tried calculating the actual distance from the observation location and then selecting the 4 nearest points but I realised this doesn't necessarily select the 4 surrounding points.

Matt J on 15 Feb 2013
INTERP2 or griddedInterpolant() will do the entire interpolation operation for you.
James on 17 Feb 2013
My data isn't scattered. It's a grid of data produced from a numerical weather prediction model. This produces a grid of points 45km apart placed over the pole of a polar stereographic projection of the earth.
Computations in weather prediction models are such that if you are trying to interpolate between the points you should take the surrounding 4, as these points pass information between each other and no others. I have an observation at a certain latitude and longitude so I need to interpolate information from these surrounding points to provide an estimate of what the model would predict (i.e. pressure or temperature) at the observation location. Hence bilinear interpolation.
Matt J on 17 Feb 2013
Edited: Matt J on 17 Feb 2013
There appear to be a lot of contradictions now in what you're saying. Initially, you seemed to be saying that your lat(i,j) and lon(i,j) matrices do not contain plaid sample locations, as output from ndgrid/meshgrid. If they are not plaid, how can the data not be scattered? If they are plaid, there's no need to go through meshgrid/ndgrid. You should be able to use them in interp2/griddedInterpolant as is. They're either plaid or they're not plaid. They can't be neither or both. So which is it?