使用50鏡頭的APS-C照相機如何靠用走的方法拍全獅子座

目錄: 小行星帶 | 標籤: 模擬 , 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)n

其中天球坐標轉換子函數源於(2012年)上學期處理實測數據時自己編寫的pyAstroCords包(編者註:自己寫一個天球坐標轉換的庫是每個天文程序員的夢想?就像CS的同學們都想自己寫一個OS?)

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

圖示:藍色點表示獅子座中的9課亮星,九個紅點為從左到右赤經12h,11h,10h、從上到下赤緯30°,20°,10°的整數格點,作為參照。投影方式為球極投影(Stereographic Projection),投影中心為(12h,0°),Angular Distance指1號星和9號星在天球上的角距

可以看出,退行4.4個光年左右,獅子座整體就在30度的視場中了

不如去買個全幅相機….

推薦閱讀:

大叔評圖|好照片,要麼讓人哭,要麼讓人笑(2017.12.04)
逐層布光 鍍金手鐲拍攝
你是溫暖,逆光而來|逆光攝影
攝影入門之感光度
一篇看起來不怎麼正經的攝影教程

TAG:狮子座 | 摄影技巧 | 天文摄影 |