'Requires GDAL. Transforms the geometry according to the given
transformation object, which may be an integer SRID, and WKT or
PROJ.4 string. By default, the geometry is transformed in-place and
nothing is returned. However if the `clone` keyword is set, then this
geometry will not be modified and a transformed clone will be returned
instead.'

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

    srid = self.srid
    if (ct == srid):
        if clone:
            return self.clone()
        else:
            return
    if ((srid is None) or (srid < 0)):
        raise GEOSException(u'Calling    transform()    with    no    SRID    set    is    not    supported')
    if (not gdal.HAS_GDAL):
        raise GEOSException(u'GDAL    library    is    not    available    to    transform()    geometry.')
    g = self.ogr
    g.transform(ct)
    ptr = wkb_r().read(g.wkb)
    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(u'Transformed    WKB    was    invalid.')
