scipy插值griddata极坐标的问题

时间:2018-06-14 20:31:22

标签: python matplotlib interpolation polar-coordinates

我使用scipy griddata来插入极坐标数据。我有一个方位角,高度和值的文件。

首先,我将方位角和高度转换为笛卡尔坐标以与griddata一起使用。然后我创建从0到90的高度和0到360的方位角的步数。

alt = np.array(alt)
x,y = alt * np.cos(az), alt*np.sin(az)
xi = np.linspace(0, 90, 100)
yi = np.linspace(np.radians(10.), np.radians(350.), 100)
zi = griddata((x, y), value, (xi[None,:], yi[:,None]), method='cubic')
ax = plt.subplot(111, projection='polar')
cm = plt.cm.get_cmap('jet_r')
levels = np.linspace(min(value),max(value), 100)
cf = plt.contourf(yi,90-xi,zi.T,levels=levels,cmap=cm)

cbar = plt.colorbar()
cbar.set_ticks(np.arange(15.5,22, .5))
cbar.set_label(r'mag/arcsec$^2$')
ax.set_theta_zero_location('N')
ax.set_theta_direction(-1)
ax.yaxis.grid(False)
#ax.set_rticks([])
ax.scatter(az,90-alt, marker='.', edgecolors='k', facecolors='none')
ax.xaxis.grid(False)
plt.ylim(0,90)

plt.show()

我不同意为griddata返回的内容。例如,225处最低海拔处的数据点(黑点)是16.5 mags / arcsec ^ 2。 Griddata为该区域返回了大约18.5 mag / arcsec ^ 2的值。我的另一个问题是方位角350-10处的插值有多糟糕。它不能很好地融合。见下文:

enter image description here

我将范围从10更改为350以获得:

enter image description here

我很高兴,但我想填写情节中的钥匙孔。

非常感谢任何填充钥匙孔的帮助。以及如何改善griddata结果。

我也不同意极坐标图旋转和数据映射。我相信那里有一些错误,但这是另一篇文章。

0 个答案:

没有答案