interpolation with non-zero data only when using griddata

3 Ansichten (letzte 30 Tage)
roudan
roudan am 6 Jan. 2020
Kommentiert: roudan am 6 Jan. 2020
Hi
Happy New Year!
Could anyone here help me with below issue?
I am trying to show the contour of Well Injection Pressure on well trajectory. So I have well trajectory defined by coordinates of x and y using WellCoordinate(:,1),WellCoordinate(:,2), respectively. And I have also well injection pressure along well trajectory using WellInjPres. Now I am using griddata to plot contour of well injection pressure in xg,yg grid.
zg_wellinjpres=griddata(double(WellCoordinate(:,1)),double(WellCoordinate(:,2)),double(WellInjPres),double(xg),double(yg),'natural');
Now the result is: it also interpolates outside the well trajectory, please see picture. My question is how to remove the interpolation outside the well trajectory?
I like the interpolation is done only within well trajectory.
or could I just project data into the grid without interpolation?
Thank you so much for your help. I appreciate it.

Akzeptierte Antwort

KSSV
KSSV am 6 Jan. 2020
  1. Get the boundary of your required region
  2. use inpolygon to get the points lying inside and outside the boundary
  3. Make the data for the points lying outside NaN.
  1 Kommentar
roudan
roudan am 6 Jan. 2020
Awesome KSSV, that is Perfect! It works!
Here are the codes it worked!
% find the boundary of well trajectories
k = boundary(WellCoordinate(:,1),WellCoordinate(:,2));
% check if point inside the grids of xg,yg inside the above well trajectory
% boundary lines
inside_welltrajectory = inpolygon(xg,yg,WellCoordinate(k,1),WellCoordinate(k,2));
zg_wellinjpres(~inside_welltrajectory)=NaN;
I appreciate it, KSSV.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Produkte


Version

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by