'Similar to `self.wcsprm.axis_types <astropy.wcs.Wcsprm.axis_types>`
but provides the information in a more Python-friendly format.
Returns
result : list of dicts
Returns a list of dictionaries, one for each axis, each
containing attributes about the type of that axis.
Each dictionary has the following keys:
- \'coordinate_type\':
- None: Non-specific coordinate type.
- \'stokes\': Stokes coordinate.
- \'celestial\': Celestial coordinate (including ``CUBEFACE``).
- \'spectral\': Spectral coordinate.
- \'scale\':
- \'linear\': Linear axis.
- \'quantized\': Quantized axis (``STOKES``, ``CUBEFACE``).
- \'non-linear celestial\': Non-linear celestial axis.
- \'non-linear spectral\': Non-linear spectral axis.
- \'logarithmic\': Logarithmic axis.
- \'tabular\': Tabular axis.
- \'group\'
- Group number, e.g. lookup table number
- \'number\'
- For celestial axes:
- 0: Longitude coordinate.
- 1: Latitude coordinate.
- 2: ``CUBEFACE`` number.
- For lookup tables:
- the axis number in a multidimensional table.
``CTYPEia`` in ``"4-3"`` form with unrecognized algorithm code will
generate an error.'

def get_axis_types(self):

    if (self.wcs is None):
        raise AttributeError(u'This    WCS    object    does    not    have    a    wcsprm    object.')
    coordinate_type_map = {0: None, 1: u'stokes', 2: u'celestial', 3: u'spectral'}
    scale_map = {0: u'linear', 1: u'quantized', 2: u'non-linear    celestial', 3: u'non-linear    spectral', 4: u'logarithmic', 5: u'tabular'}
    result = []
    for axis_type in self.wcs.axis_types:
        subresult = {}
        coordinate_type = ((axis_type // 1000) % 10)
        subresult[u'coordinate_type'] = coordinate_type_map[coordinate_type]
        scale = ((axis_type // 100) % 10)
        subresult[u'scale'] = scale_map[scale]
        group = ((axis_type // 10) % 10)
        subresult[u'group'] = group
        number = (axis_type % 10)
        subresult[u'number'] = number
        result.append(subresult)
    return result
