我有一个标量Q(r, theta)
我想在极坐标中插值。问题是θ从0到2π运行。因此,在0和2π接口处存在不连续性,这就产生了问题。
我的原始数据位于非结构化网格上,因此我在MATLAB中使用griddata。
答案 0 :(得分:1)
使用0到2π之间的数据。我将它们从-π扩展到3π,其中包含[0,2π]的部分,因此数据变得连续。然后,我使用扩展的数据对位于[0,2π]的网格进行插值。有一个假设是周期为2π。
您必须知道不连续现象是因为插值函数认为0和2π是数据的边,但实际上它们不是极坐标的。
[newele,newazi,newmp1]=expandData(ele,azi,mp1);
elegrid = linspace(0,90,20); % Elevation of gridPoints
azigrid = linspace(0,360,30); % Azimuth of gridPoints
[X,Y] = meshgrid(elegrid,azigrid);
Z = griddata(newele,newazi,newmp1,X,Y,'nearest');
答案 1 :(得分:0)
我会对域进行三角测量,主要是转换为笛卡尔坐标。三角测量当然会包装,因为它不再关心不连续性。现在,三角测量中的插值将是微不足道的,并且它将使用位于该周期边界上的正确信息。一旦转换为笛卡尔坐标,(TriScatteredInterp
就足以解决这个问题了。)