首页 > 星座 > 狮子座

使用50镜头的APS-C照相机如何靠用走的方法拍全狮子座

时间:2023-06-25 来源:m.86027.cn

目录: 小行星带 | 标签: 模拟 , python | 发表时间: Mar 9, 2013

网上有个段子:某兄在摄影群里说“50头没法拍下一个完整的狮子座” 然后一个人告诉他说“年轻人,用定焦的话要靠走的……你拍不下你往后走走啊……”

如果这个方案可行的话,我们来看一下需要后退远才能实现这个想法。

首先段子的作者使用的的APS-C尺寸的数码相机,50mm焦距的镜头。从网上的全幅相机焦距——视场对照表得到,50的头对应视场为46度,可以装下整个狮子座,而使用APS-C的佳能相机时,需要乘以1.6,得到等效焦距80mm,对应视场为30度左右。

如图,我们常说的狮子座主要是指这九颗星,红框是佳能450D配50mm镜头在Stellarium中的模拟结果

(注:本文原文写于2013年,现在的话使用python的astroquery库进行坐标查询,astropy库的coordinates包进行坐标转化,ffmpeg进行视频合成会更加优雅。以下code均视作作者自爆的黑历史)

# 从HIP星表中查得数据,导入程序ninitAlphas_time = np.array([[11,49,44],n [11,14,56],n [11,14,48],n [10, 9, 4], n [10, 8, 3], n [10,20,42],n [10,17,25],n [ 9,53,31],n [ 9,46,36]])ninitDeltas_dec2 = np.array([[14,29,56],n [15,21,27],n [20,27, 7], n [11,54,10],n [16,41,53],n [19,46,29],n [23,21, 5], n [25,56,41],n [23,42,47]])ninitDistances = np.array([36.18,177.65,57.71,77.49,2131.74,125.64,259.68,133.02,250.7]) #单位为光年n# 转为直角坐标ninitAlphas = time2Dec(initAlphas_time)ninitDeltas = dec22Dec(initDeltas_dec2)ninitPosX, initPosY, initPosZ = sphere2Rect(initDistances, initAlphas, initDeltas)ninitPosA = np.array([initPosX, initPosY, initPosZ])ninitPosM = np.mat(np.array([initPosX, initPosY, initPosZ]))n# 我们后退的策略是面朝狮子的肚子——赤经赤纬大致如下的方向退行nshiftAlpha_time = np.array([10,43,14])nshiftDelta_dec2 = np.array([18,9,3])nsx = 40nStep = 0.2ndiss = range(0,np.fix(Max/Step))nfig = plt.figure()n nfor i in diss:n dDis = i*Stepn deltaA = np.array([deltaX[0], deltaY[0], deltaZ[0]]) * (dDis)n deltaAA = np.kron(np.ones((9,1)),deltaA).Tn afterPosA = initPosA + deltaAAn afterPosM = np.mat(afterPosA)n afterXY = StereographicProjection(time2Dec(np.array([12,00,0])),dec22Dec(np.array([0,0,0])),8,"rect",afterPosA)n angularText = xyzAngularDistance(afterPosA.T[0,:],afterPosA.T[8,:])n n ax = fig.add_subplot(111)n ax.scatter(afterXY[0],afterXY[1],s=markScales)n ax.scatter(fixXY[0],fixXY[1],c='r',s=20)n ax.set_xlim(0,3)n ax.set_ylim(0,3)n ax.set_title('Distance= '+str(dDis)+' LightYearn'+ 'Angular Distance= '+str(angularText)+'Degrees')n ax.set_xticklabels([],visible=False)n ax.set_yticklabels([],visible=False)n plt.savefig('fig'+str(i),format='png')n fig.delaxes(ax)hiftAlpha = time2Dec(shiftAlpha_time)nshiftDelta = dec22Dec(shiftDelta_dec2)ndeltaX, deltaY, deltaZ = sphere2Rect(np.array([1]),shiftAlpha, shiftDelta)n# 进行球极投影,制作退行动画帧nMax = 40nStep = 0.2ndiss = range(0,np.fix(Max/Step))nfig = plt.figure()n nfor i in diss:n dDis = i*Stepn deltaA = np.array([deltaX[0], deltaY[0], deltaZ[0]]) * (dDis)n deltaAA = np.kron(np.ones((9,1)),deltaA).Tn afterPosA = initPosA + deltaAAn afterPosM = np.mat(afterPosA)n afterXY = StereographicProjection(time2Dec(np.array([12,00,0])),dec22Dec(np.array([0,0,0])),8,"rect",afterPosA)n angularText = xyzAngularDistance(afterPosA.T[0,:],afterPosA.T[8,:])n n ax = fig.add_subplot(111)n ax.scatter(afterXY[0],afterXY[1],s=markScales)n ax.scatter(fixXY[0],fixXY[1],c='r',s=20)n ax.set_xlim(0,3)n ax.set_ylim(0,3)n ax.set_title('Distance= '+str(dDis)+' LightYearn'+ 'Angular Distance= '+str(angularText)+'Degrees')n ax.set_xticklabels([],visible=False)n ax.set_yticklabels([],visible=False)n plt.savefig('fig'+str(i),format='png')n fig.delaxes(ax)

其中天球坐标转换子函数源于(2012年)上学期处理实测数据时自己编写的pyAstroCords包(编者注:自己写一个天球坐标转换的库是每个天文程序员的梦想?就像CS的同学们都想自己写一个OS?)

使用GIMP合成退行图像,如图

图示:蓝色点表示狮子座中的9课亮星,九个红点为从左到右赤经12h,11h,10h、从上到下赤纬30°,20°,10°的整数格点,作为参照。投影方式为球极投影(Stereographic Projection),投影中心为(12h,0°),Angular Distance指1号星和9号星在天球上的角距

可以看出,退行4.4个光年左右,狮子座整体就在30度的视场中了

不如去买个全幅相机….

上一篇:金牛座爱情之狮子座篇

下一篇:狮子座暗恋一个人的表现