docs: def reproject(self, projection):
          """
          in-memory reprojection
  
          Parameters
          ----------
          projection: int, str or :osgeo:class:`osr.SpatialReference`
              the target CRS. See :func:`spatialist.auxil.crsConvert`.
  
          Returns
          -------
  
          """
          srs_out = crsConvert(projection, 'osr')
          
          if self.srs.IsSame(srs_out) == 0:
              
              # create the CoordinateTransformation
              coordTrans = osr.CoordinateTransformation(self.srs, srs_out)
              
              layername = self.layername
              geomType = self.geomType
              features = self.getfeatures()
              feat_def = features[0].GetDefnRef()
              fields = [feat_def.GetFieldDefn(x) for x in range(0, feat_def.GetFieldCount())]
              
              self.__init__()
              self.addlayer(layername, srs_out, geomType)
              self.layer.CreateFields(fields)
              
              for feature in features:
                  geom = feature.GetGeometryRef()
                  geom.Transform(coordTrans)
                  newfeature = feature.Clone()
                  newfeature.SetGeometry(geom)
                  self.layer.CreateFeature(newfeature)
                  newfeature = None
              self.init_features()