python - 如何反转 r 以将天文学高度与极坐标图相匹配
问题描述
我有一个包含这些位置的方位角、高度和测量值的文件。
示例:Az Alt 值
0 10 5
0 45 7
0 80 10
10 10 4
10 45 7
10 80 11
…………
这些点并没有映射整个天空,而且情节非常空旷。我使用 scipy griddata 在点之间进行插值以填充绘图。我转换为笛卡尔坐标以使用 griddata。
#x = azimuth
#y = altitude
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()
在上图中,您可以看到 r 在中心为 0,边缘为 90。我想我可以通过从 90 中减去我的高度来解决这个问题,但是,数据似乎与绘图上的数据不匹配。
我怎样才能通过反转 r 轴以使外部为 0,在中心为 90,就像天文学一样?
其次,我在顶部有 0,就像在顶部的 North 并反转旋转以匹配 N、E、S、W 方位角。
但是,该图没有意义,因为在方位角 225 度处,15 度高度处的值是 16.5。该图显示该点的测量值为 18.5。这让我相信我自己或 matplotlib 错误地应用了一些缩放。
非常感谢任何解决此问题的帮助。
解决方案
推荐阅读
- javascript - 我正在尝试使用 jimp 在我的 dicrod bo 上放置一个经过处理的图像来欢迎人们
- git - 来自 git diff --word-diff 的意外输出。它是一个错误吗?
- python - 元组到 Pandas 数据框
- python - 如何在 Python 中的 Log X 轴上绘制 2 条线?
- css - 需要一个标识符,但看到的是“<”。React.js 项目
- microsoft-teams - Microsoft Teams 连接器无法保存配置
- python - 使用 Tweepy 阻止多个用户?
- javascript - 动态计算 .slice() 的公式 - Javascript
- javascript - Postman 不向服务器发送数据并返回空响应正文
- r - 如何在 R 的 levelplot 中将 x 和 y 刻度标签打印为地理坐标?