我的问题如下:
对于我的工作,我需要将扫描的摄影板的图像与板块所覆盖的天空的一般区域内的已知恒星样本的目录进行比较(我将其称为主目录).为此,我提取图像中对象的信息,如图像上的亮度和天空中的位置,并将其保存在表格中.然后我使用python创建一个多项式拟合,用于校准图像中恒星的大小.这很好地达到了一定的准确度,但遗憾的是还不够好,因为物体在摄影板和主目录中的坐标之间存在小的偏移.
这里绿色圆圈表示主目录中对象的位置(圆心).如您所见,实际的恒星总是位于主目录中对象的左上角.
我在图像的比较中看了一下(例如,如何检测图像之间的转换),但我现在有点不知所措,因为我实际上并不比较图像而是数组与对象的坐标.这里的另一个问题是(正如您在图像中看到的),主目录中的对象在板上不可见,并且并非所有板都具有相同的深度(意味着一些显示比其他板更多的星).
我想知道的是一种查找和纠正python中不同坐标大小的2个数组之间线性移位的方法.不应该有任何旋转,所以它只是x和y方向的变化.阵列是正常的numpy重组.
我想在一个子图中绘制阻尼随机游走的时间序列,然后在第二个子图中放大它。我mark_inset
从 matplotlib知道,它工作正常。我到目前为止的代码是:
from mpl_toolkits.axes_grid1.inset_locator import mark_inset
from astroML.time_series import generate_damped_RW
fig = plt.figure()
ax = fig.add_subplot(111)
ax0 = fig.add_subplot(211)
ax1 = fig.add_subplot(212)
ax.set_ylabel('Brightness[mag]')
ax.yaxis.labelpad=30
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_color('none')
ax.spines['left'].set_color('none')
ax.spines['right'].set_color('none')
ax.tick_params(labelcolor='w', top='off', bottom='off', left='off',
right='off')
t = np.linspace(0, 5000, 100000)
data = generate_damped_RW(t, tau=100, xmean=20, z=0, SFinf=0.3,
random_state=1)
ax0.scatter(t, data, s=0.5)
ax0.text(1, 1, r'$E(m) = %.2f, \sigma(m) = %.2f$'%(np.mean(data),
np.std(data)),
verticalalignment='top', horizontalalignment='right',
transform=ax0.transAxes, fontsize=23)
mask = (t > 370) & (t < 470)
ax1.set_xlabel('Time[years]')
ax1.scatter(t[mask], data[mask], s=0.5)
mark_inset(ax0, ax1, loc1=2, …
Run Code Online (Sandbox Code Playgroud)