def convert(coords, systems): rav = coords['lon'] / 15.0 decv = coords['lat'] plist = [novas.radec2vector(ra, dec, 1.0) for ra, dec in zip(rav, decv)] if systems['in'] == 'icrs': pass elif systems['in'] == 'fk5': plist = [novas.frame_tie(position, -1) for position in plist] elif systems['in'] == 'ecliptic': plist = [novas.ecl2equ_vec(T0, position, 2) for position in plist] else: return None if systems['out'] == 'icrs': pass elif systems['out'] == 'fk5': plist = [novas.frame_tie(position, 0) for position in plist] elif systems['out'] == 'ecliptic': plist = [novas.equ2ecl_vec(T0, position, 2) for position in plist] else: return None ra, dec = np.array([novas.vector2radec(position) for position in plist]).T return dict(lon=ra * 15.0, lat=dec)
def transform_celestial(coords, systems): rav = coords['lon'] / 15.0 decv = coords['lat'] plist = [novas.radec2vector(ra, dec, 1.0) for ra, dec in zip(rav, decv)] if systems['in'] == 'icrs': pass elif systems['in'] == 'fk5': plist = [novas.frame_tie(position, -1) for position in plist] elif systems['in'] == 'ecliptic': plist = [novas.ecl2equ_vec(T0, position, 2) for position in plist] if systems['out'] == 'icrs': pass elif systems['out'] == 'fk5': plist = [novas.frame_tie(position, 0) for position in plist] elif systems['out'] == 'ecliptic': plist = [novas.equ2ecl_vec(T0, position, 2) for position in plist] ra, dec = np.array([novas.vector2radec(position) for position in plist]).T out = Table() out['lon'] = ra * 15.0 out['lat'] = dec return out
for n in range(360): #分成360份,一份一度 #print(n) E_Tlength = 0 for i in range(3): O_T[i] = r * (O1_X[i] * math.cos(n * math.pi / 180) + O1_Y[i] * math.sin(n * math.pi / 180)) O1_T[i] = O1_O[i] + O_T[i] E_T[i] = O1_T[i] - O1_E[i] E_Tlength += E_T[i] * E_T[i] E_Tlength = math.sqrt(E_Tlength) #print(math.fabs(E_Tlength-re)) if math.fabs(E_Tlength - re) < 1e-8: #大概1.5km #print("哈哈哈") E_TT = novas.cel2ter(jd_ut1, 0.0, delta_t, x_pole, y_pole, E_T, 1, 1, 0) coor1 = novas.vector2radec(E_TT) if day_time(coor1[0] * 15.0, coor1[1], E_O4): lons.append(coor1[0] * 15.0) lats.append(coor1[1]) if len(lons) > 0: #print(len(lons)) #t=jdutc2bt(jd_utc-8/24) coor.append([lons, lats, jd_utc]) str1 = ' '.join(str(i) for i in lons) + "\n" f.write(str1) str1 = ' '.join(str(i) for i in lats) + "\n" f.write(str1) str1 = str(jd_utc) + "\n" f.write(str1) f.close() print(len(coor))