Commit a626ceb8 authored by xin's avatar xin
Browse files

fix PA bug

parent 8709ad0d
...@@ -4,6 +4,33 @@ from pylab import * ...@@ -4,6 +4,33 @@ from pylab import *
import numpy as np import numpy as np
import math as m import math as m
# test # test
def transRaDec2D(ra, dec):
x1 = np.cos(dec / 57.2957795) * np.cos(ra / 57.2957795);
y1 = np.cos(dec / 57.2957795) * np.sin(ra / 57.2957795);
z1 = np.sin(dec / 57.2957795);
return np.array([x1, y1, z1])
def getobsPA(ra, dec):
l1 = np.array([0,0,1])
l2 = transRaDec2D(ra, dec)
polar_ec = coord.SkyCoord(0*u.degree, 90*u.degree,frame='barycentrictrueecliptic')
polar_eq = polar_ec.transform_to('icrs')
# print(polar_eq.ra.value,polar_eq.dec.value)
polar_d = transRaDec2D(polar_eq.ra.value, polar_eq.dec.value)
l1l2cross = np.cross(l2,l1)
pdl2cross = np.cross(l2,polar_d)
angle = math.acos(np.dot(l1l2cross,pdl2cross)/(np.linalg.norm(l1l2cross)*np.linalg.norm(pdl2cross)))
angle = (angle)/math.pi*180
# if (ra>90 and ra< 270):
# angle=-angle
return angle
def loadSatOrbitDat(datDir='',fileNum=50): def loadSatOrbitDat(datDir='',fileNum=50):
oData = loadtxt(datDir+'1.txt') oData = loadtxt(datDir+'1.txt')
...@@ -81,10 +108,11 @@ def producePointingList(out = '' , center = [60,-40], radius = 5): ...@@ -81,10 +108,11 @@ def producePointingList(out = '' , center = [60,-40], radius = 5):
for p,p_ in zip(points[ids1][ids2][ids3][ids4],c_equtor[ids1][ids2][ids3][ids4]): for p,p_ in zip(points[ids1][ids2][ids3][ids4],c_equtor[ids1][ids2][ids3][ids4]):
ra = (p_.ra*u.degree).value ra = (p_.ra*u.degree).value
dec = (p_.dec*u.degree).value dec = (p_.dec*u.degree).value
pa = getobsPA(ra, dec) + 90
# print(ra, dec) # print(ra, dec)
lon = p[2] lon = p[2]
lat = p[1] lat = p[1]
elip_txt = elip_txt + str(round(ra,6)) + ' ' + str(round(dec,6)) + ' ' + str(round(lon,6)) + ' ' + str(round(lat,6)) + ' -113.4333' elip_txt = elip_txt + str(round(ra,6)) + ' ' + str(round(dec,6)) + ' ' + str(round(lon,6)) + ' ' + str(round(lat,6)) + ' ' + str(pa)
elip_txt = elip_txt + '\n' elip_txt = elip_txt + '\n'
# for i in np.arange(0,num,1): # for i in np.arange(0,num,1):
...@@ -124,10 +152,11 @@ def producePointingList2(out = '' , center = [60,-40], radius = 5, survey_file = ...@@ -124,10 +152,11 @@ def producePointingList2(out = '' , center = [60,-40], radius = 5, survey_file =
for p,p_ in zip(points[ids1][ids2][ids3][ids4],c_equtor[ids1][ids2][ids3][ids4]): for p,p_ in zip(points[ids1][ids2][ids3][ids4],c_equtor[ids1][ids2][ids3][ids4]):
ra = (p_.ra*u.degree).value ra = (p_.ra*u.degree).value
dec = (p_.dec*u.degree).value dec = (p_.dec*u.degree).value
pa = getobsPA(ra, dec) + 90
# print(ra, dec) # print(ra, dec)
lon = p[2] lon = p[2]
lat = p[1] lat = p[1]
elip_txt = elip_txt + str(round(ra,6)) + ' ' + str(round(dec,6)) + ' ' + str(round(lon,6)) + ' ' + str(round(lat,6)) + ' -113.4333' elip_txt = elip_txt + str(round(ra,6)) + ' ' + str(round(dec,6)) + ' ' + str(round(lon,6)) + ' ' + str(round(lat,6)) + ' ' + str(pa)
oTime = p[0] oTime = p[0]
satPos, sOrbitId =locateSat(time=oTime, OrbitData = orbitDat, startId = sOrbitId, orbDataLen = orbitDat.shape[0]) satPos, sOrbitId =locateSat(time=oTime, OrbitData = orbitDat, startId = sOrbitId, orbDataLen = orbitDat.shape[0])
...@@ -206,9 +235,10 @@ def producePointingList3(out = '' , center = [60,-40], radius = 5, survey_file = ...@@ -206,9 +235,10 @@ def producePointingList3(out = '' , center = [60,-40], radius = 5, survey_file =
ra = (p_.ra*u.degree).value ra = (p_.ra*u.degree).value
dec = (p_.dec*u.degree).value dec = (p_.dec*u.degree).value
# print(ra, dec) # print(ra, dec)
pa = getobsPA(ra, dec) + 90
lon = p[2] lon = p[2]
lat = p[1] lat = p[1]
elip_txt = elip_txt + str(round(ra,6)) + ' ' + str(round(dec,6)) + ' ' + str(round(lon,6)) + ' ' + str(round(lat,6)) + ' -113.4333' elip_txt = elip_txt + str(round(ra,6)) + ' ' + str(round(dec,6)) + ' ' + str(round(lon,6)) + ' ' + str(round(lat,6)) + ' ' + str(pa)
oTime = p[0] oTime = p[0]
satPos, sOrbitId =locateSat(time=oTime, OrbitData = orbitDat, startId = sOrbitId, orbDataLen = orbitDat.shape[0]) satPos, sOrbitId =locateSat(time=oTime, OrbitData = orbitDat, startId = sOrbitId, orbDataLen = orbitDat.shape[0])
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment