我正在尝试在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()
非常感谢您提供的所有帮助。 最好的祝福 巴斯蒂安
这是两个图,一个在网格上的样本位置正确,一个在上面的代码中。