Esempio n. 1
0
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)
Esempio n. 2
0
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
Esempio n. 3
0
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))