docs: def crsConvert(crsIn, crsOut):
      """
      convert between different types of spatial references
  
      Parameters
      ----------
      crsIn: int, str or :osgeo:class:`osr.SpatialReference`
          the input CRS
      crsOut: {'wkt', 'proj4', 'epsg', 'osr', 'opengis' or 'prettyWkt'}
          the output CRS type
  
      Returns
      -------
      int, str or :osgeo:class:`osr.SpatialReference`
          the output CRS
  
      Examples
      --------
      convert an integer EPSG code to PROJ4:
  
      >>> crsConvert(4326, 'proj4')
      '+proj=longlat +datum=WGS84 +no_defs '
  
      convert a PROJ4 string to an opengis URL:
  
      >>> crsConvert('+proj=longlat +datum=WGS84 +no_defs ', 'opengis')
      'http://www.opengis.net/def/crs/EPSG/0/4326'
  
      convert the opengis URL back to EPSG:
  
      >>> crsConvert('http://www.opengis.net/def/crs/EPSG/0/4326', 'epsg')
      4326
      
      convert an EPSG compound CRS (WGS84 horizontal + EGM96 vertical)
      
      >>> crsConvert('EPSG:4326+5773', 'proj4')
      '+proj=longlat +datum=WGS84 +geoidgrids=egm96_15.gtx +vunits=m +no_defs '
      """
      if isinstance(crsIn, osr.SpatialReference):
          srs = crsIn.Clone()
      else:
          srs = osr.SpatialReference()
          
          if isinstance(crsIn, int):
              crsIn = 'EPSG:{}'.format(crsIn)
          
          if isinstance(crsIn, str):
              try:
                  srs.SetFromUserInput(crsIn)
              except RuntimeError:
                  raise TypeError('crsIn not recognized; must be of type WKT, PROJ4 or EPSG')
          else:
              raise TypeError('crsIn must be of type int, str or osr.SpatialReference')
      if crsOut == 'wkt':
          return srs.ExportToWkt()
      elif crsOut == 'prettyWkt':
          return srs.ExportToPrettyWkt()
      elif crsOut == 'proj4':
          return srs.ExportToProj4()
      elif crsOut == 'epsg':
          srs.AutoIdentifyEPSG()
          return int(srs.GetAuthorityCode(None))
      elif crsOut == 'opengis':
          srs.AutoIdentifyEPSG()
          return 'http://www.opengis.net/def/crs/EPSG/0/{}'.format(srs.GetAuthorityCode(None))
      elif crsOut == 'osr':
          return srs
      else:
          raise ValueError('crsOut not recognized; must be either wkt, proj4, opengis or epsg')