public void PrecessEquatorialTest(double alpha, double delta, double jd0, double jd, double expectedX, double expectedY)
        {
            AAS2DCoordinate precessed = AASPrecession.PrecessEquatorial(alpha, delta, jd0, jd);

            Assert.Equal(expectedX, precessed.X);
            Assert.Equal(expectedY, precessed.Y);
        }
        public void PrecessEclipticTest(double lambda, double beta, double jd0, double jd, double expectedX, double expectedY)
        {
            AAS2DCoordinate coordinates = AASPrecession.PrecessEcliptic(lambda, beta, jd0, jd);

            Assert.Equal(expectedX, coordinates.X);
            Assert.Equal(expectedY, coordinates.Y);
        }
        public void AdjustPositionUsingUniformProperMotionTest(double t, double alpha, double delta, double PMAlpha, double PMDelta, double expectedX, double expectedY)
        {
            AAS2DCoordinate pa = AASPrecession.AdjustPositionUsingUniformProperMotion(t, alpha, delta, PMAlpha, PMDelta);

            Assert.Equal(expectedX, pa.X);
            Assert.Equal(expectedY, pa.Y);
        }
        public void AdjustPositionUsingMotionInSpaceTest(double r, double deltaR, double t, double alpha, double delta, double pmAlpha, double pmDelta, double expectedX, double expectedY)
        {
            var pa = AASPrecession.AdjustPositionUsingMotionInSpace(r, deltaR, t, alpha, delta, pmAlpha, pmDelta);

            Assert.Equal(expectedX, pa.X);
            Assert.Equal(expectedY, pa.Y);
        }
        public void EquatorialPmToEclipticTest()
        {
            AAS2DCoordinate pm = AASPrecession.EquatorialPMToEcliptic(0, 0, 0, 1, 1, 23);

            Assert.Equal(1.3112359819417141, pm.X);
            Assert.Equal(0.52977372496316666, pm.Y);
        }
Пример #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ra">RA in hours</param>
        /// <param name="dec">declination in degrees</param>
        /// <param name="epoch">epoch in years AD</param>
        /// <returns>constellation abbreviation (3 letters), or '' on error</returns>
        public static Constellation GetConstellation(double ra, double dec, int epoch)
        {
            AASDate j1875  = new AASDate(1875, 1, 1, 12, 0, 0, true);
            AASDate jEpoch = new AASDate(epoch, 1, 1, 12, 0, 0, true);

            var coordinates = AASPrecession.PrecessEquatorial(ra, dec, jEpoch.Julian, j1875.Julian);

            ra  = coordinates.X;
            dec = coordinates.Y;


            var foundConstellationBoundary = Constellations.Boundaries.FirstOrDefault(boundary =>
                                                                                      !(dec < boundary.LowerDeclination ||
                                                                                        ra < boundary.LowerRightAscension ||
                                                                                        ra >= boundary.UpperRightAscension));

            if (foundConstellationBoundary != null)
            {
                return(Constellations.ConstellationsData.Single(c => c.Abbreviation == foundConstellationBoundary.ConstellationAbbreviation));
            }

            throw new NotFoundException($"Constellation not found for coordinates RA : {ra}, Dec : {dec}");
        }