これに対する修正は比較的簡単だと思いますが、Pythonでプロットした散布図を畳み込む方法がわかりません。
銀河緯度と銀河経度の 2 つのデータ配列があり、それらをハンマー投影法でプロットして、銀河座標での星の分布を表しています。
ここで、ボックスカー スムージングを使用して、15 度のボックスでプロットを滑らかにしたいと考えています。convolve と Box2DKernel で astropy.convolution を使用しようとしましたが、うまく動作しないようです。http://docs.astropy.org/en/stable/convolution/kernels.htmlの例も見ました が、それらの例を必要なことに翻訳する方法がわかりません。彼らは2D関数をプロットしてそれを平滑化しているようです。プロットをたたみ込んで、グラフ上の位置によってポイントをビンに入れることはできませんか? 何かを表示するために得た唯一のものは直線を生成し、その理由がわかりません。私はPythonに非常に慣れていないので、これは私に多くの問題を引き起こしています。
これは私がこれまでに持っているコードです:
これは、2 つの配列をハンマー射影にプロットします。
from astropy import units as u
import astropy.coordinates as coord
glat = coord.Angle(pos_data['GLAT']*u.degree)
glon = coord.Angle(pos_data['GLON']*u.degree)
glon= glon.wrap_at(180*u.degree)
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10,12))
ax = fig.add_subplot(211, projection="hammer")
ax.scatter(glon.radian, glat.radian)
ax.grid(True)
これは、データを畳み込む私の試みです:
from astropy.convolution import convolve, Box2DKernel
data = [glon, glat]
kernel = Box2DKernel(10)
smoothed = convolve(data, kernel)
ax = fig.add_subplot(212, projection="hammer")
ax.scatter(smoothed[0]*u.radian, smoothed[1]*u.radian)
ax.grid(True)
私が言ったように、それはエラーの代わりに何かを与えることになった多くの試みの1つにすぎませんが、関数を正しく使用しているかどうかはまったくわかりません. 私が行った方法で「データ」を作成できるかどうかはわかりません(または考えられません)が、配列の他の組み合わせや、それぞれを1D配列として畳み込むこともできませんでした。
どんなアイデアでも本当に役に立ちます、ありがとう。