Example #1
0
        static public double NowLST(LatLon location)
        {
            var    nov    = new ASCOM.Astrometry.NOVAS.NOVAS31();
            var    ast    = new ASCOM.Astrometry.AstroUtils.AstroUtils();
            var    currJD = ast.JulianDateUT1(0);
            double lstNow = 0;
            var    res    = nov.SiderealTime(
                currJD, 0d, 0, GstType.GreenwichApparentSiderealTime, Method.EquinoxBased, Accuracy.Full, ref lstNow);

            if (res != 0)
            {
                throw new Exception("Error getting Local Apparent Sidereal time");
            }
            return(lstNow);
        }
Example #2
0
        private double CalculateSiderealTime()
        {
            double siderealTime = double.NaN;

            // Now using NOVAS 3.1
            using (var novas = new ASCOM.Astrometry.NOVAS.NOVAS31())
            {
                var jd = utilities.DateUTCToJulian(DateTime.UtcNow);
                novas.SiderealTime(jd, 0, novas.DeltaT(jd),
                                   ASCOM.Astrometry.GstType.GreenwichApparentSiderealTime,
                                   ASCOM.Astrometry.Method.EquinoxBased,
                                   ASCOM.Astrometry.Accuracy.Reduced, ref siderealTime);
            }
            // Allow for the longitude
            siderealTime += SiteLongitude / 360.0 * 24.0;

            // Reduce to the range 0 to 24 hours
            siderealTime = astroUtilities.ConditionRA(siderealTime);
            return(siderealTime);
        }
Example #3
0
        /// <summary>
        /// Calculates Greenwich Mean Sidereal time
        /// </summary>
        /// <returns>HourDouble format</returns>
        static public double NowLMST()
        {
            var nov = new ASCOM.Astrometry.NOVAS.NOVAS31();
            var ast = new ASCOM.Astrometry.AstroUtils.AstroUtils();

            var currJD = ast.JulianDateUT1(0);

            double gstNow = 0;
            var    res    = nov.SiderealTime(
                currJD, 0d, 0, GstType.GreenwichMeanSiderealTime, Method.EquinoxBased, Accuracy.Full, ref gstNow);

            if (res != 0)
            {
                throw new InvalidValueException("Error getting Greenwich Mean Sidereal time");
            }

            double lstNow = gstNow + Longitude / 15;

            lstNow = lstNow - (lstNow >= 24 ? 24 : 0);

            return(lstNow);
        }
Example #4
0
 public static double NowLST(LatLon location)
 {
     var nov = new ASCOM.Astrometry.NOVAS.NOVAS31();
     var ast = new ASCOM.Astrometry.AstroUtils.AstroUtils();
     var currJD = ast.JulianDateUT1(0);
     double lstNow = 0;
     var res = nov.SiderealTime(
         currJD, 0d, 0, GstType.GreenwichApparentSiderealTime, Method.EquinoxBased, Accuracy.Full, ref lstNow);
     if (res != 0) throw new Exception("Error getting Local Apparent Sidereal time");
     return lstNow;
 }