'Perform the fix operations from wcslib, and warn about any
changes it has made.
Parameters
translate_units : str, optional
Specify which potentially unsafe translations of
non-standard unit strings to perform.  By default,
performs none.
Although ``"S"`` is commonly used to represent seconds,
its translation to ``"s"`` is potentially unsafe since the
standard recognizes ``"S"`` formally as Siemens, however
rarely that may be used.  The same applies to ``"H"`` for
hours (Henry), and ``"D"`` for days (Debye).
This string controls what to do in such cases, and is
case-insensitive.
- If the string contains ``"s"``, translate ``"S"`` to
``"s"``.
- If the string contains ``"h"``, translate ``"H"`` to
``"h"``.
- If the string contains ``"d"``, translate ``"D"`` to
``"d"``.
Thus ``\'\'`` doesn\'t do any unsafe translations, whereas
``\'shd\'`` does all of them.
naxis : int array[naxis], optional
Image axis lengths.  If this array is set to zero or
``None``, then `~astropy.wcs.Wcsprm.cylfix` will not be
invoked.'

def fix(self, translate_units=u'', naxis=None):

    if (self.wcs is not None):
        self._fix_scamp()
        fixes = self.wcs.fix(translate_units, naxis)
        for (key, val) in six.iteritems(fixes):
            if (val != u'No    change'):
                warnings.warn(u"'{0}'    made    the    change    '{1}'.".format(key, val), FITSFixedWarning)
