APS-C使用50的镜头如何靠用走的方法拍全狮子座
网上有个段子:某兄在摄影群里说“50头没法拍下一个完整的狮子座” 然后一个人告诉他说“年轻人,用定焦的话要靠走的……你拍不下你往后走走啊……”
如果这个方案可行的话,我们来看一下需要后退远才能实现这个想法。
首先段子的作者使用的的APS-C尺寸的数码相机,50mm焦距的镜头。从网上的全幅相机焦距——视场对照表得到,50的头对应视场为46度,可以装下整个狮子座,而使用APS-C的佳能相机时,需要乘以1.6,得到等效焦距80mm,对应视场为30度左右。
如图,我们常说的狮子座主要是指这九颗星

从HIP星表中查得数据,导入程序
initAlphas_time = np.array([[11,49,44],
[11,14,56],
[11,14,48],
[10, 9, 4],
[10, 8, 3],
[10,20,42],
[10,17,25],
[ 9,53,31],
[ 9,46,36]])
initDeltas_dec2 = np.array([[14,29,56],
[15,21,27],
[20,27, 7],
[11,54,10],
[16,41,53],
[19,46,29],
[23,21, 5],
[25,56,41],
[23,42,47]])
initDistances = np.array([36.18,177.65,57.71,77.49,2131.74,125.64,259.68,133.02,250.7]) #单位为光年
转为直角坐标
initAlphas = time2Dec(initAlphas_time) initDeltas = dec22Dec(initDeltas_dec2) initPosX, initPosY, initPosZ = sphere2Rect(initDistances, initAlphas, initDeltas) initPosA = np.array([initPosX, initPosY, initPosZ]) initPosM = np.mat(np.array([initPosX, initPosY, initPosZ]))
我们后退的策略是面朝狮子的肚子——赤经赤纬大致如下的方向退行
shiftAlpha_time = np.array([10,43,14])
shiftDelta_dec2 = np.array([18,9,3])
sx = 40
Step = 0.2
diss = range(0,np.fix(Max/Step))
fig = plt.figure()
for i in diss:
dDis = i*Step
deltaA = np.array([deltaX[0], deltaY[0], deltaZ[0]]) * (dDis)
deltaAA = np.kron(np.ones((9,1)),deltaA).T
afterPosA = initPosA + deltaAA
afterPosM = np.mat(afterPosA)
afterXY = StereographicProjection(time2Dec(np.array([12,00,0])),dec22Dec(np.array([0,0,0])),8,"rect",afterPosA)
angularText = xyzAngularDistance(afterPosA.T[0,:],afterPosA.T[8,:])
ax = fig.add_subplot(111)
ax.scatter(afterXY[0],afterXY[1],s=markScales)
ax.scatter(fixXY[0],fixXY[1],c='r',s=20)
ax.set_xlim(0,3)
ax.set_ylim(0,3)
ax.set_title('Distance= '+str(dDis)+' LightYear\n'+ 'Angular Distance= '+str(angularText)+'Degrees')
ax.set_xticklabels([],visible=False)
ax.set_yticklabels([],visible=False)
plt.savefig('fig'+str(i),format='png')
fig.delaxes(ax)hiftAlpha = time2Dec(shiftAlpha_time)
shiftDelta = dec22Dec(shiftDelta_dec2)
deltaX, deltaY, deltaZ = sphere2Rect(np.array([1]),shiftAlpha, shiftDelta)
进行球极投影,制作退行动画帧
Max = 40
Step = 0.2
diss = range(0,np.fix(Max/Step))
fig = plt.figure()
for i in diss:
dDis = i*Step
deltaA = np.array([deltaX[0], deltaY[0], deltaZ[0]]) * (dDis)
deltaAA = np.kron(np.ones((9,1)),deltaA).T
afterPosA = initPosA + deltaAA
afterPosM = np.mat(afterPosA)
afterXY = StereographicProjection(time2Dec(np.array([12,00,0])),dec22Dec(np.array([0,0,0])),8,"rect",afterPosA)
angularText = xyzAngularDistance(afterPosA.T[0,:],afterPosA.T[8,:])
ax = fig.add_subplot(111)
ax.scatter(afterXY[0],afterXY[1],s=markScales)
ax.scatter(fixXY[0],fixXY[1],c='r',s=20)
ax.set_xlim(0,3)
ax.set_ylim(0,3)
ax.set_title('Distance= '+str(dDis)+' LightYear\n'+ 'Angular Distance= '+str(angularText)+'Degrees')
ax.set_xticklabels([],visible=False)
ax.set_yticklabels([],visible=False)
plt.savefig('fig'+str(i),format='png')
fig.delaxes(ax)
其中天球坐标转换子函数源于上学期处理实测数据时自己编的pyAstroCords包
使用GIMP合成退行图像,如图(请耐心等待GIF加载)

图示:蓝色点表示狮子座中的9课亮星,九个红点为从左到右赤经12h,11h,10h、从上倒下赤纬30°,20°,10°的整数格点,作为参照。投影方式为球极投影(Stereographic Projection),投影中心为(12h,0°),Angular Distance指1号星和9号星在天球上的角距
可以看出,退行4.4个光年左右,狮子座整体就在30度的视场中了
真还不如去买个全幅相机….
