如何在圆形网格中进行插值

时间:2019-03-13 08:44:39

标签: python matplotlib interpolation

我正在尝试在r = 85 mm的实验室工作台上获取5个样品的插值“热图”(圆形/极线)。我想得到的是一个插值的“地图”。样本在表上的位置不同,并且每个样本都有一个dB值(因此称为z值/坐标)。是否可以在整个圆形网格上进行插值,以便获得整个表的热图?

我目前对此一无所知,不知道如何进行。

这是我到目前为止编写的代码,但是看起来不像我期望的那样。

from pylab import *
import numpy as np
from scipy.interpolate import griddata

# Points within the circle (radius 85mm) corresponding to the sample 
position on a circ. measuring table of r=85mm
max_r = 85
max_theta = 2*np.pi
number_points = 5
points = np.array([[64,(-6/8)*np.pi], [64,(6/8)*np.pi], [0, 0],[60, 
(-2/8)*np.pi],[60, (2/8)*np.pi]])  # [r,theta] of the specific Sample 
position

# The Measured Values in dB-Scale ("z"-Values) for the five Samples
values = [-38.469016,-38.159216 ,-36.763974,-36.208431 ,-36.004596]

# create grid
theta = np.linspace(0.0, 2*np.pi, 50)
r = np.linspace(0, max_r, 50)
grid_r, grid_theta = np.meshgrid(r, theta)
data = griddata(points, values, (grid_r, grid_theta), method='cubic', 
fill_value=0)


# Create a polar projection
ax1 = plt.subplot(projection="polar")
ax1.pcolormesh(theta, r, data.T)
ax1.set_rmax(85)
plt.show()

非常感谢您提供的所有帮助。 最好的祝福 巴斯蒂安

这是两个图,一个在网格上的样本位置正确,一个在上面的代码中。

Position of Samples

Plot from the Code above

0 个答案:

没有答案