sky.py 文件源码

python
阅读 36 收藏 0 点赞 0 评论 0

项目:pynephoscope 作者: neXyon 项目源码 文件源码
def calculate(self):
        ephem_location = ephem.Observer()
        ephem_location.lat = self.location.latitude.to(u.rad) / u.rad
        ephem_location.lon = self.location.longitude.to(u.rad) / u.rad
        ephem_location.elevation = self.location.height / u.meter
        ephem_location.date = ephem.Date(self.time.datetime)

        if self.data is None:
            self.alt = Latitude([], unit=u.deg)
            self.az = Longitude([], unit=u.deg)
            self.names = Column([], dtype=np.str)
            self.vmag = Column([])
        else:
            ra = Longitude((self.data['RAh'], self.data['RAm'], self.data['RAs']), u.h)
            dec = Latitude((np.core.defchararray.add(self.data['DE-'], self.data['DEd'].astype(str)).astype(int), self.data['DEm'], self.data['DEs']), u.deg)
            c = SkyCoord(ra, dec, frame='icrs')
            altaz = c.transform_to(AltAz(obstime=self.time, location=self.location))
            self.alt = altaz.alt
            self.az = altaz.az

            self.names = self.data['Name']
            self.vmag = self.data['Vmag']

        for ephemeris in self.ephemerides:
            ephemeris.compute(ephem_location)
            self.vmag = self.vmag.insert(0, ephemeris.mag)
            self.alt = self.alt.insert(0, (ephemeris.alt.znorm * u.rad).to(u.deg))
            self.az = self.az.insert(0, (ephemeris.az * u.rad).to(u.deg))
            self.names = self.names.insert(0, ephemeris.name)

        return self.names, self.vmag, self.alt, self.az
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号