interpolation with non-zero data only when using griddata

10 views (last 30 days)
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.

Accepted Answer

KSSV
KSSV on 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 Comment
roudan
roudan on 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.

Sign in to comment.

More Answers (0)

Products


Release

R2017a

Community Treasure Hunt

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

Start Hunting!