'Requires GDAL. Transform the geometry according to the given
transformation object, which may be an integer SRID, and WKT or
PROJ.4 string. By default, transform the geometry in-place and return
nothing. However if the `clone` keyword is set, don\'t modify the
geometry and return a transformed clone instead.'

def transform(self, ct, clone=False):

    srid = self.srid
    if (ct == srid):
        if clone:
            return self.clone()
        else:
            return
    if isinstance(ct, gdal.CoordTransform):
        srid = None
    elif ((srid is None) or (srid < 0)):
        raise GEOSException('Calling    transform()    with    no    SRID    set    is    not    supported')
    g = gdal.OGRGeometry(self._ogr_ptr(), srid)
    g.transform(ct)
    ptr = g._geos_ptr()
    if clone:
        return GEOSGeometry(ptr, srid=g.srid)
    if ptr:
        capi.destroy_geom(self.ptr)
        self.ptr = ptr
        self._post_init(g.srid)
    else:
        raise GEOSException('Transformed    WKB    was    invalid.')
