'Checks if this object is the same frame as the ``other`` object.
To be the same frame, two objects must be the same frame class and have
the same frame attributes.  Note that it does *not* matter what, if any,
data either object has.
Parameters
other : BaseCoordinateFrame
the other frame to check
Returns
isequiv : bool
True if the frames are the same, False if not.
Raises
TypeError
If ``other`` isn\'t a `BaseCoordinateFrame` or subclass.'

def is_equivalent_frame(self, other):

    if (self.__class__ == other.__class__):
        for frame_attr_name in self.get_frame_attr_names():
            if np.any((getattr(self, frame_attr_name) != getattr(other, frame_attr_name))):
                return False
        return True
    elif (not isinstance(other, BaseCoordinateFrame)):
        raise TypeError(u"Tried    to    do    is_equivalent_frame    on    something    that    isn't    a    frame")
    else:
        return False
