<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def urbext(self, year):
 """ Estimate the `urbext2000` parameter for a given year assuming a nation-wide urbanisation curve. Methodology source: eqn 5.5, report FD1919/TR :param year: Year to provide estimate for :type year: float :return: Urban extent parameter :rtype: float """


        # Decimal places increased to ensure year 2000 corresponds with 1
        urban_expansion = 0.7851 + 0.2124 * atan((year - 1967.5) / 20.331792998)
        try:
            return self.catchment.descriptors.urbext2000 * urban_expansion
        except TypeError:
            # Sometimes urbext2000 is not set, assume zero
            return 0