treetime/clock_tree.py
def convert_dates(self):
        '''
        This function converts the estimated "time_before_present" properties of all nodes
        to numerical dates stored in the "numdate" attribute. This date is further converted
        into a human readable date string in format %Y-%m-%d assuming the usual calendar.

        Returns
        -------
         None
            All manipulations are done in place on the tree

        '''
        from datetime import datetime, timedelta
        now = numeric_date()
        for node in self.tree.find_clades():
            years_bp = self.date2dist.to_years(node.time_before_present)
            if years_bp < 0 and self.real_dates:
                if not hasattr(node, "bad_branch") or node.bad_branch is False:
                    self.logger("ClockTree.convert_dates -- WARNING: The node is later than today, but it is not "
                        "marked as \"BAD\", which indicates the error in the "
                        "likelihood optimization.",4 , warn=True)
                else:
                    self.logger("ClockTree.convert_dates -- WARNING: node which is marked as \"BAD\" optimized "
                        "later than present day",4 , warn=True)

            node.numdate = now - years_bp

            # set the human-readable date
            year = np.floor(node.numdate)
            days = max(0,365.25 * (node.numdate - year)-1)
            try:  # datetime will only operate on dates after 1900
                n_date = datetime(year, 1, 1) + timedelta(days=days)
                node.date = datetime.strftime(n_date, "%Y-%m-%d")
            except:
                # this is the approximation not accounting for gap years etc
                n_date = datetime(1900, 1, 1) + timedelta(days=days)
                node.date = "%04d-%02d-%02d"%(year, n_date.month, n_date.day)
def convert_dates(self):
        '''
        This function converts the estimated "time_before_present" properties of all nodes
        to numerical dates stored in the "numdate" attribute. This date is further converted
        into a human readable date string in format %Y-%m-%d assuming the usual calendar.

        Returns
        -------
         None
            All manipulations are done in place on the tree

        '''
        from datetime import datetime, timedelta
        now = numeric_date()
        for node in self.tree.find_clades():
            years_bp = self.date2dist.to_years(node.time_before_present)
            if years_bp < 0 and self.real_dates:
                if not hasattr(node, "bad_branch") or node.bad_branch is False:
                    self.logger("ClockTree.convert_dates -- WARNING: The node is later than today, but it is not "
                        "marked as \"BAD\", which indicates the error in the "
                        "likelihood optimization.",4 , warn=True)
                else:
                    self.logger("ClockTree.convert_dates -- WARNING: node which is marked as \"BAD\" optimized "
                        "later than present day",4 , warn=True)

            node.numdate = now - years_bp

            # set the human-readable date
            year = np.floor(node.numdate)
            days = max(0,365.25 * (node.numdate - year)-1)
            try:  # datetime will only operate on dates after 1900
                n_date = datetime(year, 1, 1) + timedelta(days=days)
                node.date = datetime.strftime(n_date, "%Y-%m-%d")
            except:
                # this is the approximation not accounting for gap years etc
                n_date = datetime(1900, 1, 1) + timedelta(days=days)
                node.date = "%04d-%02d-%02d"%(year, n_date.month, n_date.day)
def convert_dates ( self ) : from datetime import datetime , timedelta now = numeric_date ( ) for node in self . tree . find_clades ( ) : years_bp = self . date2dist . to_years ( node . time_before_present ) if years_bp < 0 and self . real_dates : if not hasattr ( node , "bad_branch" ) or node . bad_branch is False : self . logger ( "ClockTree.convert_dates -- WARNING: The node is later than today, but it is not " "marked as \"BAD\", which indicates the error in the " "likelihood optimization." , 4 , warn = True ) else : self . logger ( "ClockTree.convert_dates -- WARNING: node which is marked as \"BAD\" optimized " "later than present day" , 4 , warn = True ) node . numdate = now - years_bp # set the human-readable date year = np . floor ( node . numdate ) days = max ( 0 , 365.25 * ( node . numdate - year ) - 1 ) try : # datetime will only operate on dates after 1900 n_date = datetime ( year , 1 , 1 ) + timedelta ( days = days ) node . date = datetime . strftime ( n_date , "%Y-%m-%d" ) except : # this is the approximation not accounting for gap years etc n_date = datetime ( 1900 , 1 , 1 ) + timedelta ( days = days ) node . date = "%04d-%02d-%02d" % ( year , n_date . month , n_date . day )
This function converts the estimated "time_before_present" properties of all nodes
        to numerical dates stored in the "numdate" attribute. This date is further converted
        into a human readable date string in format %Y-%m-%d assuming the usual calendar.

        Returns
        -------
         None
            All manipulations are done in place on the tree
This function converts the estimated time_before_present properties of all nodes to numerical dates stored in the numdate attribute . This date is further converted into a human readable date string in format %Y - %m - %d assuming the usual calendar .