def getAntitransitTime( body, location, date ): if isinstance( location, str ): location = getLocation( location ) if not isinstance( body, ephem.Body ) or not isinstance( location, RPNLocation ) or \ not isinstance( date, RPNDateTime ): raise ValueError( 'expected an astronomical object, a locaton and a date-time' ) location.observer.date = date.to( 'utc' ).format( ) location.observer.horizon = '0' ephemSetting = location.observer.next_setting( body ) setting = RPNDateTime.convertFromEphemDate( ephemSetting ).getLocalTime( ) rising = RPNDateTime.convertFromEphemDate( location.observer.next_rising( body, start=ephemSetting ) ).getLocalTime( ) return subtract( rising, setting )
def getPreviousSetting( body, location, date ): if isinstance( location, str ): location = getLocation( location ) if not isinstance( body, ephem.Body ) or not isinstance( location, RPNLocation ) or not isinstance( date, RPNDateTime ): raise ValueError( 'expected an astronomical object, a locaton and a date-time' ) old_horizon = location.observer.horizon location.observer.date = date.to( 'utc' ).format( ) location.observer.horizon = '0' result = RPNDateTime.convertFromEphemDate( location.observer.previous_setting( body ) ).getLocalTime( ) location.observer.horizon = old_horizon return result
def getNextDusk( location, date, horizon = -6 ): if isinstance( location, str ): location = getLocation( location ) if not isinstance( location, RPNLocation ) or not isinstance( date, RPNDateTime ): raise ValueError( 'expected locaton and date-time arguments' ) old_horizon = location.observer.horizon location.observer.date = date.to( 'utc' ).format( ) location.observer.horizon = str( horizon ) result = RPNDateTime.convertFromEphemDate( location.observer.next_setting( ephem.Sun( ), use_center=True ) ).getLocalTime( ) location.observer.horizon = old_horizon return result