예제 #1
0
    def __get_relative_prime_meridian(year):
        """
        
        - total progression = 100d42.6 + cumulative prog + leap progs
        - cumulative progression: delta(year-2001) * -0d14.31667
        - leap progression: (leap years elapsed) * 0d59.0
        :param year: observation year
        :return: angle of prime meridian
        """
        reference_rotation = Angle.from_string("100d42.6")
        # cumulative progression: delta(year-2001) * -0d14.31667
        annual_gha_decrement = Angle.from_string("-0d14.32")
        delta_year = year - Aries.REFERENCE_YEAR
        cumulative_progression = Angle.multiply(annual_gha_decrement,
                                                delta_year)

        # leap progression: (leap years elapsed) * 0d59.0
        daily_rotation = Angle.from_string("0d59.0")
        leap_years = math.floor((year - Aries.REFERENCE_YEAR) / 4)
        leap_progression = Angle.multiply(daily_rotation, leap_years)

        # total progression = 100d42.6 + cumulative prog + leap progs

        total_progression = Angle.add(reference_rotation,
                                      cumulative_progression)
        total_progression = Angle.add(total_progression, leap_progression)
        print("total progression" + total_progression.str)
        return total_progression