interpolation with non-zero data only when using griddata

11 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

KSSV
KSSV il 6 Gen 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 Commento
roudan
roudan il 6 Gen 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.

Accedi per commentare.

Più risposte (0)

Prodotti


Release

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by