示例#1
0
    def compute_lsrk(self):
        """ Computes the LSR in km/s

        uses the MJD, RA and DEC of observation to compute
        along with the telescope location. Requires pyslalib
        """
        ra = Angle(self.header[b'src_raj'], unit='hourangle')
        dec = Angle(self.header[b'src_dej'], unit='degree')
        mjdd = self.header[b'tstart']
        rarad = ra.to('radian').value
        dcrad = dec.to('radian').value
        last = self.compute_lst()
        tellat = np.deg2rad(self.coords[0])
        tellong = np.deg2rad(self.coords[1])

        # convert star position to vector
        starvect = s.sla_dcs2c(rarad, dcrad)

        # velocity component in ra,dec due to Earth rotation
        Rgeo = s.sla_rverot(tellat, rarad, dcrad, last)

        # get Barycentric and heliocentric velocity and position of the Earth.
        evp = s.sla_evp(mjdd, 2000.0)
        dvb = evp[0]  # barycentric velocity vector, in AU/sec
        dpb = evp[1]  # barycentric position vector, in AU
        dvh = evp[2]  # heliocentric velocity vector, in AU/sec
        dph = evp[3]  # heliocentric position vector, in AU

        # dot product of vector to object and heliocentric velocity
        # convert AU/sec to km/sec
        vcorhelio = -s.sla_dvdv(starvect, dvh) * 149.597870e6
        vcorbary = -s.sla_dvdv(starvect, dvb) * 149.597870e6

        # rvlsrd is velocity component in ra,dec direction due to the Sun's
        # motion with respect to the "dynamical" local standard of rest
        rvlsrd = s.sla_rvlsrd(rarad, dcrad)

        # rvlsrk is velocity component in ra,dec direction due to i
        # the Sun's motion w.r.t the "kinematic" local standard of rest
        rvlsrk = s.sla_rvlsrk(rarad, dcrad)

        # rvgalc is velocity component in ra,dec direction due to
        #the rotation of the Galaxy.
        rvgalc = s.sla_rvgalc(rarad, dcrad)
        totalhelio = Rgeo + vcorhelio
        totalbary = Rgeo + vcorbary
        totallsrk = totalhelio + rvlsrk
        totalgal = totalbary + rvlsrd + rvgalc

        return totallsrk
示例#2
0
    def rvel(self, mjdd, radeg, decdeg):
        global tellat, tellong, telelev

        last = self.hlst(mjdd)  # apparent LST in radians

        # convert ra,dec to radians
        rarad = radeg * math.pi / 180.0
        dcrad = decdeg * math.pi / 180.0

        # convert star position to vector
        starvect = s.sla_dcs2c(rarad, dcrad)

        # velocity component in ra,dec due to Earth rotation
        Rgeo = s.sla_rverot(tellat, rarad, dcrad, last)

        # get Barycentric and heliocentric velocity and position of the Earth.
        evp = s.sla_evp(mjdd, 2000.0)
        dvb = evp[0]  # barycentric velocity vector, in AU/sec
        dpb = evp[1]  # barycentric position vector, in AU
        dvh = evp[2]  # heliocentric velocity vector, in AU/sec
        dph = evp[3]  # heliocentric position vector, in AU

        # dot product of vector to object and heliocentric velocity
        # convert AU/sec to km/sec
        vcorhelio = -s.sla_dvdv(starvect, dvh) * 149.597870e6
        vcorbary = -s.sla_dvdv(starvect, dvb) * 149.597870e6

        # rvlsrd is velocity component in ra,dec direction due to the Sun's motion with
        # respect to the "dynamical" local standard of rest
        rvlsrd = s.sla_rvlsrd(rarad, dcrad)

        # rvlsrk is velocity component in ra,dec direction due to the Sun's motion with
        # respect to the "kinematic" local standard of rest
        rvlsrk = s.sla_rvlsrk(rarad, dcrad)

        # rvgalc is velocity component in ra,dec direction due to the rotation of the Galaxy.
        rvgalc = s.sla_rvgalc(rarad, dcrad)

        totalhelio = Rgeo + vcorhelio
        totalbary = Rgeo + vcorbary

        totallsrk = totalhelio + rvlsrk
        totalgal = totalbary + rvlsrd + rvgalc

        # ('UTHr', 'LST', 'Geo', 'Helio', 'Total Helio', 'LSRK', 'Galacto')
        #(hour,last*12.0/math.pi,Rgeo,vcorb,totalhelio,totallsrk,totalgal)

        # resulting velocities in km/sec
        return ((mjdd, last * 12.0 / math.pi, Rgeo, totalhelio, totalbary,
                 totallsrk, totalgal))