python 天文座標系轉換

2021-09-16 12:20:33 字數 2902 閱讀 6787

# ga&ra2az.py

# 2021.01.07 by ***

from astropy import units as u #單位

from astropy.time import time

from astropy.coordinates import skycoord

from astropy.coordinates import earthlocation

from astropy.coordinates import altaz

import numpy as np

import matplotlib.pyplot as plt

#赤道轉銀道

c=skycoord('20:12:06.542 38:21:17.78', unit=(u.hourangle, u.deg))

print(c.galactic)

#銀道轉赤道

gc=skycoord(l=229.5*u.degree, b=-0.5*u.degree, frame='galactic') #1235+340 123.5 34.0

print(gc.icrs.to_string('hmsdms'))

#某一utc時刻、某地理緯度、某天體座標對應的望遠鏡方位、俯仰

c=skycoord('12:50:56 41:08:08',unit=(u.hourangle,u.deg))

observing_time = time('2020-01-05 20:50:00') #utc時間,not北京時

dlh=earthlocation(lon=97.369751 * u.deg, lat=37.377139 * u.deg, height=3000 * u.m)

aa=altaz(location=dlh, obstime=observing_time)

print(c.transform_to(aa)) #方位俯仰與時間對應13.7m觀測記錄稍有差別,是因為本地時和北京時的差(+7.*小時)

#俯仰隨utc變化

c=skycoord('05:06:52 42:21:16', unit=(u.hourangle, u.deg))

dlh = earthlocation(lon='97d43m46s', lat='37d22m40s', height=3171.1*u.m)

observing_time = time('2020-01-05 00:00:00') #utc

delta_hours = np.linspace(0, 24, 480)*u.hour

full_night_times = observing_time + delta_hours

full_night_aa_frames = altaz(location=dlh, obstime=full_night_times)

full_night_aa_coos = c.transform_to(full_night_aa_frames)

plt.plot(delta_hours, full_night_aa_coos.alt)

plt.xlabel('utc time(hours)')

plt.ylabel('el(deg)')

plt.locator_params(nbins=24)

plt.title('el variety with utc')

plt.grid()

plt.tight_layout()

plt.show()

參考:

關於天文座標系的介紹

x射線脈衝星導航可見性分析(毛悅等)

赤道 銀道 座標系轉換 

赤道座標轉銀道座標的python程式 

嘗試**,error

# 可能有錯!!!

import math

from math import pi

from math import sin

from math import cos

i0=62.6

i=i0*pi/180 #角度轉弧度

omega0=282.25

omega=omega0*pi/180

lomega0=33.345

lomega=lomega0*pi/180

l0=float(raw_input('l0 = '))

b0=float(raw_input('b0 = '))

l=l0*pi/180

b=b0*pi/180

sin_delta=sin(b)*cos(i)+cos(b)*sin(i)*sin((l0-lomega0)*pi/180)

print 'sin_delta=', sin_delta

delta=math.asin(sin_delta)

print 'delta 弧度=', delta

delta=delta*180/pi

#delta=180+delta

print 'delta 角度=', delta

cos_alpha_cut_omega=(cos(b)*cos(l-lomega))/cos(delta)

print 'cos_alpha_cut_omega=', cos_alpha_cut_omega

alpha_cut_omega=math.acos(cos_alpha_cut_omega)

print 'cos_alpha_cut_omega 弧度=', alpha_cut_omega

alpha_cut_omega=alpha_cut_omega*180/pi

print 'cos_alpha_cut_omega 角度=', alpha_cut_omega

alpha=alpha_cut_omega+omega0

print 'alpha=', alpha

天文座標系

座標系統 中心點 起點 基面 lat 0 極座標 主要方向 primary direction 0 longitude 緯度 latitude 經度 longitude 地平座標系 horizaonal,alt az 觀測者地平面 天頂 zenith 天底 nadir 赤緯或者高度 altitude...

Python地理座標系和投影座標系轉換

地心地固座標系 earth centered,earth fixed,ecef 簡稱地心座標系。地理座標系統 geographic coordinate system,gcs 1 座標系是地心座標系,用經緯度表示球面上的點。世界大地測量系統 world geodetic system,wgs 比如w...

座標系轉換

根據halcon的演算法,設座標系1 影象 的點 px,py 座標系2 世界 的點為 qx,qy 則 qx px qy hommat2d py 1 1 其中 hommat2d為乙個3乘3的矩陣,且第三行為 0,0,1 1 0 tx cos phi sin phi 0 1 sin theta 0 sx...