'Computes three dimensional separation between this coordinate
and another.
Parameters
other : `~astropy.coordinates.BaseCoordinateFrame`
The coordinate system to get the distance to.
Returns
sep : `~astropy.coordinates.Distance`
The real-space distance between these two coordinates.
Raises
ValueError
If this or the other coordinate do not have distances.'

def separation_3d(self, other):

    from .distances import Distance
    if issubclass(self.data.__class__, r.UnitSphericalRepresentation):
        raise ValueError(u'This    object    does    not    have    a    distance;    cannot    compute    3d    separation.')
    other_in_self_system = other.transform_to(self)
    if issubclass(other_in_self_system.__class__, r.UnitSphericalRepresentation):
        raise ValueError(u'The    other    object    does    not    have    a    distance;    cannot    compute    3d    separation.')
    self_car = self.data.without_differentials().represent_as(r.CartesianRepresentation)
    other_car = other_in_self_system.data.without_differentials().represent_as(r.CartesianRepresentation)
    return Distance((self_car - other_car).norm())
