Как интерполировать в круговой сетке - PullRequest
1 голос
/ 13 марта 2019

Я пытаюсь получить интерполированную «Тепловую карту» (круглые / полярные шнуры) для 5 образцов на лабораторном столе r = 85 мм. То, что я хотел получить, это интерполированная «Карта». У сэмплов разные позиции на столе, и у меня есть дБ-значение для каждого сэмпла (поэтому мы называем значение / координату 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

...