MATLAB Answers

Interpolating scattered data within a shapefile/worldmap

4 views (last 30 days)
SChow
SChow on 30 Mar 2020
Commented: SChow on 31 Mar 2020
Hi I have x,y,zi scattered data, where x is lon, y is lat and zi is the data, I want to interpolate and extrapolate the data within the land boundaries, I used
vq = griddata(x,y,zi,xi,yi);
However, the interpolation and extrapolation was not made as desired.

  2 Comments

Behzad Navidi
Behzad Navidi on 30 Mar 2020
Use scatteredInterpolant (https://www.mathworks.com/help/matlab/ref/scatteredinterpolant.html). It is very similar to griddata but I guess it inter polate across all area that you want.
SChow
SChow on 30 Mar 2020
I have tried using scatteredinterpolant, it does not work. Please find the attached file of scattered data.
clc
clear
[LAT LON]=cdtgrid(1.875);%%making meshgrid for desired data
obs_data=xlsread('Z:\CP_c.csv');
loni = obs_data(:,2) ;
lati = obs_data(:,1) ;
% zi = interp2(LONi,LATi,xi,loni,lati) ;
F=scatteredInterpolant(loni,lati,obs_data(:,5),'linear','linear');
F.Method = 'linear';
vq1 = F(LAT,LON);
imagesc(vq1)

Sign in to comment.

Answers (1)

darova
darova on 30 Mar 2020
Here is my effort. Am i succeeded?
S = importdata('CP_c.csv');
A = S.data;
x = A(:,1);
y = A(:,2);
z = A(:,3);
xx = linspace(min(x),max(x),20);
yy = linspace(min(y),max(y),20);
[X,Y] = meshgrid(xx,yy);
Z = griddata(x,y,z,X,Y);
surf(X,Y,Z)

  8 Comments

Show 5 older comments
SChow
SChow on 30 Mar 2020
I could plot similar scatter plot with fastscatter.
I need to interpolate the data from these points to the extent of the world
SChow
SChow on 31 Mar 2020
Yes, that is why I want to interpolate the data to Mexico and Russia.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by