# Elements

class geoalchemy2.elements._SpatialElement(data, srid: int = -1, extended: bool | None = None)

  Bases: `object`

  The base class for public spatial elements.

  Parameters:

    - data – The first argument passed to the constructor is the data wrapped by the `_SpatialElement` object being constructed.

    - srid – An integer representing the spatial reference system. E.g. `4326`. Default value is `-1`, which means no/unknown reference system.

    - extended – A boolean indicating whether the extended format (EWKT or EWKB) is used. Default is `None`.

  data
  extended
  srid

class geoalchemy2.elements.WKTElement(data: str, srid: int = -1, extended: bool | None = None)

  Bases: `_SpatialElement`

  Instances of this class wrap a WKT or EWKT value.

  Usage examples:

      wkt_element_1 = WKTElement('POINT(5 45)')
      wkt_element_2 = WKTElement('POINT(5 45)', srid=4326)
      wkt_element_3 = WKTElement('SRID=4326;POINT(5 45)', extended=True)

  Note::

    This class uses `__slots__` to restrict its attributes and improve memory efficiency by preventing the creation of a dynamic `__dict__` for each instance. If you require dynamic attributes or support for weak references, use the `DynamicWKTElement` subclass, which provides these capabilities.

  SPLIT_WKT_PATTERN = re.compile('((SRID=\\d+) *; *)?([\\w ]+) *(\\([-\\d\\. ,\\(\\)eE]+\\))')
  as_ewkt() → WKTElement
  as_wkt() → WKTElement
  property desc: str

    This element’s description string.

  geom_from: str = 'ST_GeomFromText'
  geom_from_extended_version: str = 'ST_GeomFromEWKT'

class geoalchemy2.elements.WKBElement(data: str | bytes | memoryview, srid: int = -1, extended: bool | None = None)

  Bases: `_SpatialElement`

  Instances of this class wrap a WKB or EWKB value.

  Geometry values read from the database are converted to instances of this type. In most cases you won’t need to create `WKBElement` instances yourself.

  If `extended` is `True` and `srid` is `-1` at construction time then the SRID will be read from the EWKB data.

  Note: you can create `WKBElement` objects from Shapely geometries using the `geoalchemy2.shape.from_shape()` function.

  Note::

    This class uses `__slots__` to restrict its attributes and improve memory efficiency by preventing the creation of a dynamic `__dict__` for each instance. If you require dynamic attributes or support for weak references, use the `DynamicWKBElement` subclass, which provides these capabilities.

  as_ewkb() → WKBElement
  as_wkb() → WKBElement
  property desc: str

    This element’s description string.

  geom_from: str = 'ST_GeomFromWKB'
  geom_from_extended_version: str = 'ST_GeomFromEWKB'

class geoalchemy2.elements.RasterElement(data: str | bytes | memoryview)

  Bases: `_SpatialElement`

  Instances of this class wrap a `raster` value.

  Raster values read from the database are converted to instances of this type. In most cases you won’t need to create `RasterElement` instances yourself.

  Note::

    This class uses `__slots__` to restrict its attributes and improve memory efficiency by preventing the creation of a dynamic `__dict__` for each instance. If you require dynamic attributes or support for weak references, use the `DynamicRasterElement` subclass, which provides these capabilities.

  property desc: str

    This element’s description string.

class geoalchemy2.elements.CompositeElement(base, field, type_)

  Bases: `FunctionElement`

  Instances of this class wrap a Postgres composite type.