def draw_annulus(self, center, inner_radius, outer_radius, array, value, mode="set"):
        """
        Draws an annulus of specified radius on the input array and fills it with specified value
        :param center: a tuple for the center of the annulus
        :type center: tuple (x,y)
        :param inner_radius: how many pixels in radius the interior empty circle is, where the annulus begins
        :type inner_radius: int
        :param outer_radius: how many pixels in radius the larger outer circle is, where the annulus ends
        :typde outer_radius: int
        :param array: image to draw annulus on
        :type array: size (m,n) numpy array
        :param value: what value to fill the annulus with
        :type value: float
        :param mode: if "set" will assign the circle interior value, if "add" will add the value to the circle interior,
            throws exception otherwise
        :type mode: string, either "set" or "add"
        :return: updates input array and then returns it with the annulus coordinates as a tuple
        """
        if mode == "add":
            self.draw_circle(center, outer_radius, array, value)
            self.draw_circle(center, inner_radius, array, -value)
        elif mode == "set":
            ri, ci, existing = self.draw_circle(center, inner_radius, array, -value)
            self.draw_circle(center, outer_radius, array, value)
            array[ri, ci] = existing
        else:
            raise ValueError("draw_annulus mode must be 'set' or 'add' but {} used".format(mode))
Draws an annulus of specified radius on the input array and fills it with specified value
        :param center: a tuple for the center of the annulus
        :type center: tuple (x,y)
        :param inner_radius: how many pixels in radius the interior empty circle is, where the annulus begins
        :type inner_radius: int
        :param outer_radius: how many pixels in radius the larger outer circle is, where the annulus ends
        :typde outer_radius: int
        :param array: image to draw annulus on
        :type array: size (m,n) numpy array
        :param value: what value to fill the annulus with
        :type value: float
        :param mode: if "set" will assign the circle interior value, if "add" will add the value to the circle interior,
            throws exception otherwise
        :type mode: string, either "set" or "add"
        :return: updates input array and then returns it with the annulus coordinates as a tuple